# Fitness Insights

> Analyze Strava-derived fitness notes that already exist in an Obsidian vault, then generate deeper dashboards, proxy training-load metrics, trend reports, and visual summaries. Use when the user wants post-sync analysis of existing workout notes rather than fetching new data from Strava.

- Skill: `zxt6991-source/fitness-insights` (Agent Skill, multi-file: 12 files)
- Install (CLI): `npx skillmds@latest add zxt6991-source/fitness-insights`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zxt6991-source/fitness-insights/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zxt6991-source (https://skillmd.com/u/zxt6991-source)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zxt6991-source/fitness-insights

---


# Fitness Insights

Use the bundled wrapper script to run the local analysis CLI:

```bash
scripts/run_fitness_insights.sh --help
```

This skill is for the second step of the workflow: the vault already contains activity notes, and the user now wants richer analysis and visualization on top of that note set.

## When To Use It

Use this skill when the user wants to:

- analyze workout notes already written into Obsidian
- regenerate advanced dashboards after a new `fitness-agent` sync
- inspect recent load, consistency, monotony, or ACWR-style proxy metrics
- create visual trend notes from note-level fitness data
- review data quality, stream coverage, and running-efficiency proxies

Do not use this skill to authenticate with Strava or fetch activities. Use `fitness-agent` first for ingest and sync, then use `fitness-insights` for post-sync analysis.

## Workflow

1. Confirm the vault already has notes under `Fitness/Strava/Activities/` or another configured root.
2. Run the refresh command to scan existing notes and compute summary metrics.
3. Write the generated `.base` file and Markdown reports into `Insights/`.
4. Surface the exact paths that were written so the user can open them in Obsidian.
5. Explain that the load and efficiency numbers are heuristic proxies derived from note-level fields, not medical or lab-grade metrics.

## Command

Refresh the insights package from the configured vault:

```bash
scripts/run_fitness_insights.sh analyze refresh
```

Override the vault path or root folder when needed:

```bash
scripts/run_fitness_insights.sh \
  --vault-path "/path/to/YourVault" \
  --root-folder "Fitness/Strava" \
  analyze refresh \
  --weeks 16
```

## Outputs

The skill writes these artifacts under the configured root folder:

- `Insights/Fitness Insights.base`
- `Insights/Fitness Insights.md`
- `Insights/Fitness Snapshot.md`
- `Insights/Training Trends.md`

These files are built from existing activity notes and can be regenerated safely at any time.

## Guardrails

- Treat ACWR, monotony, strain, and efficiency as planning proxies only.
- Stop and report configuration or parsing errors instead of guessing missing vault paths.
- Default to `~/.fitness-agent/config.json` when the user does not provide overrides.
- Prefer regenerating the analysis package rather than editing generated reports by hand.
- Be explicit that this skill depends on the frontmatter produced by `fitness-agent`.

## Trigger Examples

- `$fitness-insights 重新分析我 vault 里的运动笔记并生成新的可视化`
- `$fitness-insights 基于现有 Obsidian 数据做训练负荷和趋势分析`
- `$fitness-insights 刷新最近 16 周的训练趋势图`

## Resources

- `fitness_insights.py`: self-contained CLI entrypoint packaged with the skill.
- `src/fitness_insights/`: parser, analysis engine, and output generators.
- `scripts/run_fitness_insights.sh`: stable wrapper for local execution.
- `references/metrics.md`: metric definitions and scientific caution language.

