{
  "id": "weekly-fitness-summary",
  "slug": "weekly-fitness-summary",
  "name": "Weekly Fitness Summary",
  "tagline": "Your training week in one page, with one clear focus for next.",
  "description": "Totals your workouts, compares them with last week and your 4-week average, checks recovery, and tells you whether you're on track for your goal.",
  "category": "Health & Fitness",
  "platforms": [
    "Grok Bot",
    "Muse",
    "Dots"
  ],
  "schedule": "Weekly, Sunday 7:00 PM",
  "outputType": "report",
  "previewImage": "previews/weekly-fitness-summary.png",
  "installSteps": {
    "grokBot": {
      "label": "Grok Bot",
      "status": "verified",
      "steps": [
        "Copy skills/weekly-fitness-summary/SKILL.md (the whole file, including the --- header).",
        "Open a one-to-one chat with your Grok Bot and paste the prompt below, with the file where it says.",
        "When the Bot asks, connect: Strava, Garmin, Oura, or Whoop if your assistant offers a connector; otherwise upload an Apple Health or CSV export. It shows a connect card right in the chat.",
        "Try it once now: \"Run Weekly Fitness Summary.\"",
        "The routine shows in the Bot's info pane (click the Bot's name in the chat header) under Routines, where you can pause or edit it."
      ],
      "prompt": "Save the following as a skill called \"Weekly Fitness Summary\". Then create a routine that runs it every Sunday at 7:00 PM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n<paste SKILL.md here>",
      "note": "Skills and routines are saved by asking the Bot; no settings to dig through.",
      "promptFull": "Save the following as a skill called \"Weekly Fitness Summary\". Then create a routine that runs it every Sunday at 7:00 PM and posts the result here. Before the first run, ask me the setup questions in the skill and remember my answers.\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week \u00b7 {Mon D} \u2013 {Sun D}\n**{N} sessions \u00b7 {H} h {M} min \u00b7 {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval."
    },
    "muse": {
      "label": "Muse",
      "status": "partially-verified",
      "steps": [
        "Copy skills/weekly-fitness-summary/SKILL.md.",
        "Open Muse and paste the prompt below with the file where it says.",
        "Try it: \"Run Weekly Fitness Summary.\" Muse has no skill install for outside skills, so it follows the pasted instructions.",
        "Ask Muse to make it a recurring task every Sunday at 7:00 PM. It then shows under the Assistant icon > Upcoming.",
        "Muse Code (developer CLI): unzip downloads/weekly-fitness-summary.zip, run `muse skills validate ./weekly-fitness-summary` then `muse skills install ./weekly-fitness-summary --scope user`. Optional: add the BotPlaza connector (https://botplaza.lol/api/mcp) under mcpServers in ~/.config/muse/settings.json."
      ],
      "sourceUrl": "https://www.meta.com/help/superintelligence/1484325780075655/",
      "note": "Recurring tasks and Muse Code skill install are documented by Meta. Installing outside skills in the Muse app is not.",
      "prompt": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nIf you can save this as a skill, please do.",
      "promptFull": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week \u00b7 {Mon D} \u2013 {Sun D}\n**{N} sessions \u00b7 {H} h {M} min \u00b7 {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval.\n\nIf you can save this as a skill, please do."
    },
    "dots": {
      "label": "Dots",
      "status": "partially-verified",
      "steps": [
        "Copy skills/weekly-fitness-summary/SKILL.md.",
        "Paste the prompt below into your dot's conversation in ChatGPT, with the file where it says.",
        "Wait for the dot to confirm the schedule, time zone and end date.",
        "Optional: in ChatGPT, Plugins > + > Add custom MCP server with https://botplaza.lol/api/mcp (no authentication). Dots can use installed plugins, but OpenAI hasn't said whether that includes custom ones.",
        "Business, Enterprise, Healthcare and Edu workspaces can also upload downloads/weekly-fitness-summary.zip under Plugins > Skills > Create > Upload from your computer."
      ],
      "sourceUrl": "https://learn.chatgpt.com/docs/dots",
      "note": "Dots are available on ChatGPT Pro, Business Premium and Enterprise, and are still rolling out. Pasting instructions in and scheduled check-ins are documented.",
      "prompt": "Here are instructions for a task called \"Weekly Fitness Summary\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>\n\nCheck in every Sunday at 7:00 PM Eastern time for the next 3 months, and confirm the schedule back to me.",
      "promptFull": "Here are instructions for a task called \"Weekly Fitness Summary\". Take this on as an ongoing responsibility and follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week \u00b7 {Mon D} \u2013 {Sun D}\n**{N} sessions \u00b7 {H} h {M} min \u00b7 {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval.\n\nCheck in every Sunday at 7:00 PM Eastern time for the next 3 months, and confirm the schedule back to me."
    },
    "chatgpt": {
      "label": "ChatGPT",
      "status": "unverified",
      "verified": false,
      "steps": [
        "Download https://botplaza.lol/downloads/weekly-fitness-summary.zip (don't unzip).",
        "ChatGPT sidebar \u2192 Plugins \u2192 Skills tab \u2192 Create \u2192 Upload from your computer.",
        "Wait for the scan; if it says Needs Review, read it and approve.",
        "Use it with @weekly-fitness-summary or just ask.",
        "Ask ChatGPT to set a scheduled task that runs @weekly-fitness-summary at this cadence: every Sunday at 7:00 PM. Set the time in your own time zone."
      ],
      "sourceUrl": "https://help.openai.com/en/articles/20001066-skills-in-chatgpt",
      "note": "Business, Enterprise, Edu and Healthcare plans only. Other plans fall back to pasting the prompt.",
      "prompt": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week \u00b7 {Mon D} \u2013 {Sun D}\n**{N} sessions \u00b7 {H} h {M} min \u00b7 {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval."
    },
    "gemini": {
      "label": "Gemini",
      "status": "unverified",
      "verified": false,
      "steps": [
        "gemini.google.com \u2192 Customize \u2192 Skills \u2192 Create \u2192 Upload \u2192 pick the SKILL.md at https://botplaza.lol/skills/weekly-fitness-summary.md (or https://botplaza.lol/downloads/weekly-fitness-summary.zip).",
        "Review, then Create.",
        "Use it with /weekly-fitness-summary."
      ],
      "sourceUrl": "https://support.google.com/gemini/answer/17094296",
      "note": "Personal accounts 18+. Workspace users must recreate the skill in Workspace Studio.",
      "prompt": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n<paste SKILL.md here>",
      "promptFull": "Here are instructions for a task called \"Weekly Fitness Summary\". Follow them whenever I say \"Run Weekly Fitness Summary\". Ask me the setup questions first and remember my answers.\n\n---\nname: weekly-fitness-summary\ndescription: Use when the user asks how their training went this week, for a fitness or workout recap, progress toward a running, cycling, or step goal, or when a weekly fitness routine runs. Summarizes activities, volume, intensity, sleep and recovery, compares against last week and the 4-week average, and suggests next week's focus. Not medical advice.\nmetadata:\n  id: weekly-fitness-summary\n  version: \"1.0.0\"\n  author: BotPlaza\n---\n\n# Weekly Fitness Summary\n\n> Your training week in one page, with one clear focus for next.\n\n## What it does\n\nSee your week of training at a glance: what you did, how it compares, whether you're recovering, and one clear focus for next week.\n\n## When to use\n\n- \"How was my training this week\", \"weekly workout summary\", \"am I on track for my half marathon\".\n- A weekly routine (default: Sunday 7:00 PM).\n\n## Requires\n\nAt least one activity data source: Strava, Garmin Connect, Apple Health export, Google Fit, Oura, Whoop, or a CSV the user shares. If none is connected, ask the user to paste or upload this week's activities.\n\n## Schedule\n\nDefault: Weekly, Sunday 7:00 PM. Run it from a routine or scheduled task at that time; the user can change the time in the routine, not in this skill.\n\n## Inputs\n\n| Setting | Default | Notes |\n|---|---|---|\n| `goal` | none | E.g. \"sub-2:00 half marathon on Apr 12\", \"4 workouts a week\", \"10k steps a day\". |\n| `sports` | all logged | Toggle: run, ride, swim, strength, walk, yoga, other. |\n| `units` | metric | Or imperial. |\n| `metrics` | volume, time, intensity, sleep | Toggle: HR zones, pace or power, elevation, resting HR, HRV, steps. |\n| `coach_tone` | encouraging | `encouraging`, `neutral`, or `blunt`. |\n\n## Steps\n\n1. **Collect** all activities from Monday to Sunday (user's timezone): type, date, duration, distance, elevation, average HR or pace or power, and perceived effort if logged.\n2. **Collect recovery data** if available: nightly sleep, resting HR, HRV.\n3. **Compute:** totals by sport, total training time, number of sessions, longest session, and time in each intensity zone if HR data exists.\n4. **Compare** with last week and the 4-week average. Flag a week-over-week jump in volume above 10% to 15% as a load spike.\n5. **Check against the goal:** on track, ahead, or behind, with the number that decides it.\n6. **Suggest one focus** for next week, based on the data (e.g. \"Hold volume steady; your load jumped 28%\").\n7. **Write** in the format below. Celebrate real wins with numbers, not empty praise.\n\n## Output format\n\n```markdown\n# Your training week \u00b7 {Mon D} \u2013 {Sun D}\n**{N} sessions \u00b7 {H} h {M} min \u00b7 {distance}**\n\n| | This week | Last week | 4-wk avg |\n|---|---|---|---|\n\n## Highlights\n- {Best effort or milestone, with the number}\n\n## Recovery\n{Sleep average, resting HR trend, HRV trend, one line on what it suggests}\n\n## Goal check\n{Goal}: **{on track / ahead / behind}**. {The deciding number.}\n\n## Next week's focus\n{One sentence, one reason.}\n```\n\n## Edge cases\n\n- **Missing or duplicate activities** (watch and phone both logged): de-duplicate by start time and duration, and say so.\n- **Rest or sick week:** report it plainly, without guilt, and suggest an easy return.\n- **Pain, injury, chest pain, or dizziness mentioned:** don't coach through it. Recommend seeing a medical professional.\n\n## Boundaries\n\nThis is a training summary, not medical advice. Don't post to Strava or social accounts without approval."
    },
    "cli": {
      "label": "Skills CLI",
      "status": "verified",
      "steps": [
        "All agents: `npx skills add https://botplaza.lol --skill weekly-fitness-summary` (add `-a claude-code`, `-a codex`, or `-a cursor` to choose one).",
        "Claude Code marketplace: `/plugin marketplace add https://botplaza.lol/.claude-plugin/marketplace.json` then `/plugin install weekly-fitness-summary@botplaza`.",
        "Fallback, Claude Code: `curl -fsSL https://botplaza.lol/downloads/weekly-fitness-summary.zip -o s.zip && unzip s.zip -d ~/.claude/skills/`.",
        "Fallback, Codex and other .agents readers: `curl -fsSL https://botplaza.lol/downloads/weekly-fitness-summary.zip -o s.zip && unzip s.zip -d ~/.agents/skills/`.",
        "Fallback, Cursor project: `curl -fsSL https://botplaza.lol/downloads/weekly-fitness-summary.zip -o s.zip && unzip s.zip -d .cursor/skills/`."
      ],
      "sourceUrl": "https://www.skills.sh/docs",
      "note": "The skills CLI reads /.well-known/agent-skills/index.json and installs each SKILL.md. The zip fallback uses the existing downloads/<slug>.zip folder layout.",
      "prompt": "npx skills add https://botplaza.lol --skill weekly-fitness-summary",
      "promptFull": "npx skills add https://botplaza.lol --skill weekly-fitness-summary"
    }
  },
  "author": "BotPlaza",
  "tags": [
    "fitness",
    "running",
    "strava",
    "apple health",
    "training",
    "recovery"
  ],
  "featured": false,
  "longDescription": "Weekly Fitness Summary pulls your activities and recovery data and does the maths you'd never do yourself: volume by sport, week-over-week change, time in each heart rate zone, and how sleep and resting heart rate are trending. It flags load spikes before they become injuries, checks progress toward your race or habit goal, and gives you one focus for the week ahead. It is a training summary, not medical advice.",
  "customization": [
    {
      "key": "goal",
      "label": "Goal",
      "type": "text",
      "default": "",
      "question": "What are you training for?"
    },
    {
      "key": "sports",
      "label": "Sports",
      "type": "multi-toggle",
      "options": [
        "Run",
        "Ride",
        "Swim",
        "Strength",
        "Walk",
        "Yoga",
        "Other"
      ],
      "default": [
        "Run",
        "Ride",
        "Swim",
        "Strength",
        "Walk",
        "Yoga",
        "Other"
      ],
      "question": "Which sports do you do?"
    },
    {
      "key": "metrics",
      "label": "Metrics",
      "type": "multi-toggle",
      "options": [
        "Volume",
        "Time",
        "Intensity / HR zones",
        "Pace or power",
        "Elevation",
        "Sleep",
        "Resting HR",
        "HRV",
        "Steps"
      ],
      "default": [
        "Volume",
        "Time",
        "Intensity / HR zones",
        "Sleep"
      ],
      "question": "Which numbers do you care about?"
    },
    {
      "key": "units",
      "label": "Units",
      "type": "select",
      "options": [
        "Metric",
        "Imperial"
      ],
      "default": "Metric",
      "question": "Metric or imperial?"
    },
    {
      "key": "tone",
      "label": "Coach tone",
      "type": "select",
      "options": [
        "Encouraging",
        "Neutral",
        "Blunt"
      ],
      "default": "Encouraging",
      "question": "How should your coach sound?"
    }
  ],
  "whatYouGet": [
    "Totals by sport, compared with last week and your 4-week average",
    "Highlights with real numbers",
    "A recovery read from sleep, resting HR, and HRV",
    "An on-track check for your goal",
    "One focus for next week"
  ],
  "dataSources": [
    {
      "name": "Strava, Garmin, Apple Health export, Oura, Whoop, or CSV",
      "required": true
    }
  ],
  "setupTime": "5 minutes",
  "sampleOutput": "samples/weekly-fitness-summary.md",
  "skillFile": "skills/weekly-fitness-summary/SKILL.md",
  "version": "1.0.0",
  "license": "",
  "previewAlt": "A training-week summary: 42.3 km run, up 28% on last week, with sessions, long run, interval pace, a distance comparison and next week's advice.",
  "writesOrSends": "Read-only. Never posts to Strava or social accounts.",
  "audience": "people",
  "setup": [
    {
      "key": "goal",
      "question": "What are you training for?",
      "type": "text",
      "default": ""
    },
    {
      "key": "sports",
      "question": "Which sports do you do?",
      "type": "multi-toggle",
      "default": [
        "Run",
        "Ride",
        "Swim",
        "Strength",
        "Walk",
        "Yoga",
        "Other"
      ],
      "options": [
        "Run",
        "Ride",
        "Swim",
        "Strength",
        "Walk",
        "Yoga",
        "Other"
      ]
    },
    {
      "key": "metrics",
      "question": "Which numbers do you care about?",
      "type": "multi-toggle",
      "default": [
        "Volume",
        "Time",
        "Intensity / HR zones",
        "Sleep"
      ],
      "options": [
        "Volume",
        "Time",
        "Intensity / HR zones",
        "Pace or power",
        "Elevation",
        "Sleep",
        "Resting HR",
        "HRV",
        "Steps"
      ]
    },
    {
      "key": "units",
      "question": "Metric or imperial?",
      "type": "select",
      "default": "Metric",
      "options": [
        "Metric",
        "Imperial"
      ]
    },
    {
      "key": "tone",
      "question": "How should your coach sound?",
      "type": "select",
      "default": "Encouraging",
      "options": [
        "Encouraging",
        "Neutral",
        "Blunt"
      ]
    }
  ],
  "safety": {
    "dataAccess": [
      "Workouts, distance, pace, heart rate, sleep and recovery data from your chosen source"
    ],
    "writesOrSends": "Read-only. Never posts to Strava or social accounts.",
    "estCost": "Low: ~4 runs a month.",
    "costLevel": "light",
    "warnings": [
      "Health data is sensitive: connect only what you want summarized.",
      "Not medical advice. It suggests a training focus, not a diagnosis.",
      "It never posts to Strava or social accounts."
    ]
  },
  "checked": {
    "instructionOnly": true,
    "scripts": false,
    "runtimeFetch": false,
    "sha256": "04abe3f48a07d94e2cc7af9031e7794bc957cb892f3b7eca3b81446298d307a8",
    "checkedOn": "2026-10-31"
  },
  "urls": {
    "page": "https://botplaza.lol/skills/weekly-fitness-summary/",
    "markdown": "https://botplaza.lol/skills/weekly-fitness-summary.md",
    "skillMd": "https://botplaza.lol/skills/weekly-fitness-summary/SKILL.md",
    "json": "https://botplaza.lol/skills/weekly-fitness-summary.json",
    "zip": "https://botplaza.lol/downloads/weekly-fitness-summary.zip",
    "mcp": "https://botplaza.lol/api/mcp"
  }
}