obsidian-workout-export — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited obsidian-workout-export (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Convert workout session data into clean Obsidian-ready Markdown logs with body stats, session details, PRs, and notes.
obsidian-workout-export.Export logged workout sessions into Markdown files for an Obsidian WorkoutData/ folder.
Use this skill immediately when the user types owd in a chat that contains workout data.
Other triggers:
export workoutobsidian workoutsave workout to obsidianworkout to obsidianlog to obsidianAlways check the current conversation first. If the current chat already contains logged workout data such as exercises, sets, reps, weights, or body stats, use it directly instead of searching older history.
If the current chat does not contain workout data, search the most recent prior session using workout-related terms such as:
workout log sets repsleg press chest press fitnessDay 1 Day 2 upper lower workoutUse the date of the chat that contains the workout data as the filename date.
Pull every logged data point that is actually present.
Session info
Day 2: Lower AExercises
Body stats
PRs hit
Session notes and flags
Use the filename YYYY-MM-DD.md based on the date of the chat containing the workout data.
Recommended structure:
# Workout Log - [DAY NAME AND FOCUS]
**Date:** YYYY-MM-DD
**Program:** 15 Percent Body Fat Project
## Body Stats
| Metric | Value |
| --- | --- |
| Bodyweight | XXX lbs |
| Body Fat | XX.X% |
## Session - [Day X: Focus]
| Exercise | Weight | Sets | Reps | PR? |
| --- | --- | --- | --- | --- |
| Exercise Name | XXX lbs | X | X | yes or no |
## PRs Hit
- Exercise: XXX lbs / X reps
## Notes and Flags
- factual session notes, regressions, or flagsOmit sections with no data. If there are no PRs, either omit the section or state None this session.
Match the template to the session type instead of forcing everything into the strength table:
Keep column names consistent across files of the same type so Dataview queries work across the whole WorkoutData/ folder.
Add YAML frontmatter so notes are queryable:
---
date: YYYY-MM-DD
type: strength | ride | run | combined
focus: [day focus, e.g. Lower A]
duration: [minutes, if logged]
effort: [easy | moderate | hard, only if stated or clearly implied]
tags: [workout, plus activity tags like strength or cycling]
prs: [count, 0 if none]
---Only include fields the log supports. Add a one-line progression note at the end of the file when the session data shows a clear change from the last comparable session, and skip it otherwise.
Before producing the file, check whether this session was already exported in the current conversation. If the same date and session were exported before:
2026-06-10-lower-a.mdProduce the Markdown content directly unless the user specifically asks for a file to be created in a local repo or folder.
When you finish, confirm:
WorkoutData/ folderbodyweight or unlogged when appropriate.If the user is not sure how to use this skill, asks what it needs, or asks for examples:
Minimum useful input:
Example prompts:
Use obsidian-workout-export to turn this workout log into an Obsidian ready Markdown note.Export these strength and cycling notes into a clean workout entry for my Obsidian vault.Show me an example prompt for using this skill with a pasted workout session.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.