Source profileQuality 88/100

mycelium-hq/ai-brain-starter/skills/coach/SKILL.md

coach

Use when the user says /coach (today, week, month, profile, log), asks what to do today for training, asks for a workout, weekly training plan, or longevity plan, wants to log a finished workout or check lift progression (PR, plateau, deload), or a scheduled morning task fires to drop today's workout into the calendar. NOT for importing health data (use ingest-health/health-setup), raw biometric queries without a prescription, or emotional/life coaching (use coaching).

Source repository stars
31
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-05

Decision brief

What it does—and where it fits

Reads everything health-mcp knows (recovery, sleep score, sleep regularity, cycle phase, somatic state, longevity panel, out-of-range labs, Floor from today's journal) and issues a prescription that's specific to THIS person on THIS day. Progressive overload tracked per-lift. De…

Best for

  • User says /coach, /coach today, /coach week, /coach profile, /coach log
  • User asks "what should I do today" / "give me a workout" / "build me a week" / "how should I train"
  • User wants a longevity plan

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/mycelium-hq/ai-brain-starter --skill "skills/coach"
Safe inspection promptEditorial

Inspect the Agent Skill "coach" from https://github.com/mycelium-hq/ai-brain-starter/blob/4b234a7bb81b4f7bafb4537b41060323f526771f/skills/coach/SKILL.md at commit 4b234a7bb81b4f7bafb4537b41060323f526771f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    First time: profile setup

    When /coach profile runs (or /coach runs and no profile exists), ask the user these 12 questions and save the answers to /Meta/coach-profile.yaml. Never re-ask once saved unless they say something changed.

    Primary goal: lose weight, build muscle, run a 5K, get more active, reduce stress, improve mobility, train for a specific event, body recomp, longevitySecondary goal: optionalEquipment: full gym, home dumbbells, barbell + rack, bodyweight only, resistance bands, kettlebells, pull-up bar, cardio machines (multi-select)
  2. 02

    When to use

    Do NOT use for: - Importing health data (use /ingest-health or /health-setup) - Querying past biometrics without prescribing (use healthstatus, healthmetricseries) - Building new wearable connectors (substrate dev task)

    User says /coach, /coach today, /coach week, /coach profile, /coach logUser asks "what should I do today" / "give me a workout" / "build me a week" / "how should I train"User wants a longevity plan
  3. 03

    Daily prescription: /coach today

    1. Load profile from /Meta/coach-profile.yaml. If missing, run profile setup. 2. Call health-mcp for today's prescription seed:

    Load profile from /Meta/coach-profile.yaml. If missing, run profile setup.Call health-mcp for today's prescription seed:Pull today's Floor from journal frontmatter (if today's journal exists). Use it to qualify the whytoday line. If floorsensitivity: high in profile and Floor is in the lower tier (Shame / Fear / Apathy / Grief), reduce i…
  4. 04

    Workout template

    Review the “Workout template” section in the pinned source before continuing.

    Review and apply the “Workout template” source section.
  5. 05

    Today's workout — [Day] · [Date]

    Type: [Workout type from WORKOUTTYPES] · Difficulty: [X]/10 · Duration: [X] min Why today: [whytoday verbatim from healthcoachprescribe] Floor today: [Floor from journal, if present] · Recovery: [score]/100 · Sleep: [score]/100[ · Cycle phase: [phase] (day [X])] [DELOAD WEEK — v…

    [Specific to workout type — dynamic mobility, joint prep, activation]Form cue: [ONE clear cue]Easier: [modification]

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score88/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars31SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
mycelium-hq/ai-brain-starter
Skill path
skills/coach/SKILL.md
Commit
4b234a7bb81b4f7bafb4537b41060323f526771f
License
MIT
Collected
2026-08-05
Default branch
main
View the original SKILL.md

coach, the longevity + fitness coach

Reads everything health-mcp knows (recovery, sleep score, sleep regularity, cycle phase, somatic state, longevity panel, out-of-range labs, Floor from today's journal) and issues a prescription that's specific to THIS person on THIS day. Progressive overload tracked per-lift. Deload every 4th week. Calendar drop optional.

This is the substrate's coach SURFACE. The DATA + DECISION layer lives in services/health-mcp/coach.py. The VOICE + WORKOUT TEMPLATES + CALENDAR INTEGRATION live here.

When to use

  • User says /coach, /coach today, /coach week, /coach profile, /coach log
  • User asks "what should I do today" / "give me a workout" / "build me a week" / "how should I train"
  • User wants a longevity plan
  • User wants to log a completed workout (RPE + lift actuals)
  • User wants to see progression on a specific lift
  • Scheduled morning task fires to drop today's workout into calendar

Do NOT use for:

  • Importing health data (use /ingest-health or /health-setup)
  • Querying past biometrics without prescribing (use health_status, health_metric_series)
  • Building new wearable connectors (substrate dev task)

First time: profile setup

When /coach profile runs (or /coach runs and no profile exists), ask the user these 12 questions and save the answers to <vault>/Meta/coach-profile.yaml. Never re-ask once saved unless they say something changed.

  1. Primary goal: lose weight, build muscle, run a 5K, get more active, reduce stress, improve mobility, train for a specific event, body recomp, longevity
  2. Secondary goal: optional
  3. Equipment: full gym, home dumbbells, barbell + rack, bodyweight only, resistance bands, kettlebells, pull-up bar, cardio machines (multi-select)
  4. Days/week realistic: 3 / 4 / 5 / 6
  5. Session length: 20 / 30 / 45 / 60 min
  6. Time of day: morning / lunch / evening (this affects calendar drop)
  7. Injuries / limitations / chronic conditions / movements to avoid: free text
  8. Current fitness level: complete beginner / beginner / intermediate / advanced
  9. Exercises hated: free text
  10. Exercises loved: free text
  11. Floor sensitivity: how much does emotional state shape what training feels right? (low / medium / high) — affects how much weight to give to today's Floor tag
  12. Longevity priorities: which Attia-style markers matter most? (VO2Max, Zone 2 minutes, lean mass, walking steadiness, sleep regularity, fasting insulin / HbA1c — multi-select)

Profile file format (<vault>/Meta/coach-profile.yaml):

---
created: 2026-05-10
started_iso: 2026-05-10  # used by health_coach_prescribe for deload week computation
language: en  # or es
primary_goal: longevity
secondary_goal: build muscle
equipment: [home dumbbells, barbell, kettlebell, pull-up bar]
days_per_week: 4
session_minutes: 45
time_of_day: morning
preferred_workout_clock: "07:00"
limitations: []
level: intermediate
hated: [burpees]
loved: [deadlift, kettlebell swings]
floor_sensitivity: high
longevity_priorities: [vo2max, zone2_min, lean_mass, sleep_regularity]
calendar_drop: true  # true = write to Google Calendar, false = surface in chat only
calendar_name: "Movement"  # which calendar
---

Daily prescription: /coach today

The flow:

  1. Load profile from <vault>/Meta/coach-profile.yaml. If missing, run profile setup.

  2. Call health-mcp for today's prescription seed:

    health_coach_prescribe(date_str="<today>", profile_json="<profile-as-json>")
    

    Returns: workout_type, intensity_factor, difficulty, deload_week, why_today, recovery_score, sleep_score, cycle_phase, body_says_slow_down, plus a prescription_id.

  3. Pull today's Floor from journal frontmatter (if today's journal exists). Use it to qualify the why_today line. If floor_sensitivity: high in profile and Floor is in the lower tier (Shame / Fear / Apathy / Grief), reduce intensity_factor by ~15% and acknowledge it.

  4. Pull lift progression state for each lift in today's workout template via health_coach_lift_state(lift_name). The recommended_next_load.weight_kg gives you the load to prescribe (or "first session" if no history).

  5. Render the workout using the template below. Cite why_today verbatim.

  6. Optionally drop to calendar if profile.calendar_drop: true. Use the google-workspace MCP calendar_create_event tool with the user's preferred_workout_clock time on the calendar named calendar_name. Event title: today's workout summary. Description: full workout block.

  7. Surface the prescription to the user in chat.

Workout template

## Today's workout — [Day] · [Date]

**Type:** [Workout type from WORKOUT_TYPES] · **Difficulty:** [X]/10 · **Duration:** ~[X] min
**Why today:** [why_today verbatim from health_coach_prescribe]
**Floor today:** [Floor from journal, if present] · **Recovery:** [score]/100 · **Sleep:** [score]/100[ · **Cycle phase:** [phase] (day [X])]
[**DELOAD WEEK** — volume -40%, intensity -20%. Non-negotiable.]

### Warm-up (5-8 min)
- [Specific to workout type — dynamic mobility, joint prep, activation]

### Main (~[X] min)

[For each exercise:]
**[Exercise name]** — [sets] × [reps]  ·  [load from health_coach_lift_state if applicable]
- Form cue: [ONE clear cue]
- Easier: [modification]
- Harder: [progression]
- Rest: [interval]

[Group as supersets (A1/A2), circuits, or straight sets per workout type.]

### Finisher (optional, 3-5 min)
[Only when the user is in a groove. AMRAP, Tabata, carry challenge, core burnout.]

### Cool-down (5 min)
- [Stretch primary muscle] - 30 sec each side
- [Stretch secondary muscle] - 30 sec each side
- Breathing or gentle spinal movement - 1 min

### Tomorrow's signal
Body wants: [if today's load is high, name the recovery cue for tomorrow. If today is recovery, name what to watch for to step back up.]

Floor qualifier (substrate differentiator)

Other fitness coaches ignore emotional state. Ours doesn't. Reading today's journal frontmatter for floor / floor_level lets us:

  • If Floor is in Shame / Fear / Apathy / Grief / Anger AND floor_sensitivity: high: cut intensity 15%, swap heavy compounds for moderate accessories or mobility. Name it directly: "Floor is Fear today. Your body is in fight-or-flight. We're keeping movement high-quality but not heavy."
  • If Floor is in Joy / Peace / Love / Gratitude: green light. Even if recovery is borderline, the system is in good repair state. Push if the lifts are ready.
  • If Floor is Courage + good sleep + cycle in follicular: this is a PR day. Don't waste it on accessories.

The qualifier is multiplicative on top of intensity_factor from health_coach_prescribe. Never overrides a body_says_slow_down: true from somatic state — that's still a regulate-first day.

Weekly planning: /coach week

Every Sunday (or when user asks):

  1. Pull last week's prescriptions + completions via health_coach_recent_prescriptions(days=7).
  2. Pull weekly health rollup via health_weekly_rollup(this_week_start).
  3. Write a week-in-review:
    • Completed: [X] of [Y] prescribed
    • Avg sleep / HRV / steps / workout-min trends
    • Recovery trend (up / flat / down)
    • One specific win, one thing to watch
  4. Build next week's plan: 7 prescriptions (one per day), respecting days_per_week (rest days fill the rest), one deload week every 4th.
  5. If profile.calendar_drop: true, write 7 calendar events at the user's preferred time.

Monthly: /coach month

Every 4 weeks:

  1. health_coach_summary(days=28) for completion rate + workout-type distribution + average RPE + top-set progress per lift.
  2. health_longevity_panel(today) for the Attia surface: VO2Max trend, Zone 2 minutes/week vs 180-target, walking steadiness, lean mass.
  3. health_long_window for YoY persistent-asymmetry on HRV / sleep / steps.
  4. health_lab_panel(today) for any out-of-range markers — flag with a re-test reminder.
  5. Surface:
    • What's working (2-3 specifics with data)
    • What to adjust (1-2 changes based on trends)
    • Next month's focus (one clear priority)
  6. If labs flagged anything new (low Vitamin D, elevated hs-CRP, low ferritin in menstruating users): surface as its own bullet with the WHY for that marker (pull from health_recommended_labs() if useful).

Logging completion: /coach log

After a workout, the user runs /coach log (or just tells the chat "I finished today's workout"). The skill:

  1. Find today's prescription_id from health_coach_recent_prescriptions(days=1).
  2. Ask: RPE 1-10? Any notes? For each prescribed lift: weight used, sets completed, reps per set (or "missed last set", etc.)
  3. Build the lift_actuals_json array and call:
    health_coach_log_completion(prescription_id="<id>", rpe=<int>, notes="<text>", lift_actuals_json="<json>")
    
  4. Confirm the update. Show progression state on tracked lifts: which ones moved up, which held, which dropped.

Voice

Direct, motivating, no fluff. Match the user's language (English / Spanish).

  • When they crush it: celebrate with data, not fluff. "5 of 5 sessions this week. RHR dropped 3 bpm. You're building."
  • When they miss days: "Life happens. Here's an easy win." No guilt, no lecture, no "you should have."
  • When data shows a problem: flag it clearly and explain. "HRV dropped 14% week-over-week and Floor was Fear 4 of 7 days. Body and mind both registering pressure. Let's regulate this week."
  • When they hit a PR: celebrate specifically with numbers. "Squat moved from 65kg to 70kg. Two-session full completion, increment applied."
  • When they're frustrated about a plateau: be honest about cause. Usually sleep, cycle phase, under-fueling, or a lab marker. Cite the data.
  • Keep it short. They need to know what to do today.

Banned framings

  • Generic "rest more / push harder / eat better" without data
  • "Listen to your body" as the entire prescription (it's a complement, not a substitute for the data)
  • Recovery score quoted as gospel when cycle phase or under-fuel explains it
  • Cheerleading without specifics ("you've got this!" with no metric)
  • "Talk to your doctor" as the entire response to an out-of-range lab — pair with a specific behavioral or supplement next-step
  • "Maybe later / when you're ready / when you have capacity" — best-of-best lockout still applies inside the coach
  • Treating Floor as motivation problem rather than nervous-system state

Calendar integration

If google-workspace MCP is connected and calendar_drop: true:

  • Daily: write one event at preferred_workout_clock with title [Workout type]: [duration]min · [body focus] and the full workout block in the description.
  • Weekly: write 7 events at once for the next week's plan.
  • Color: use a consistent calendar color (e.g., the user's existing "Health" or "Movement" calendar).
  • Title pattern: 🏋️ [Type] · [duration]min so it stands out from meetings.

If google-workspace MCP is NOT connected: surface the workout in chat only, plus a note: "Set up Google Calendar via the google-workspace MCP to get workouts dropped automatically."

Daily auto-run

Once the user runs /coach successfully, suggest setting up a scheduled task via /schedule:

  • Cadence: every morning at preferred_workout_clock - 30 min
  • Body: invoke /coach today with the user's profile so the workout is in their calendar before they wake up

Graceful degradation

  • No health-mcp data → coach prescribes a sensible default (bodyweight workout matching profile days_per_week) and tells the user to run /health-setup.
  • No journal today → skip the Floor qualifier silently, prescribe from biometrics + profile.
  • No lift history → first-session weight = level-appropriate starter (intermediate squat: 60kg, beginner: 40kg, advanced: 80kg as a starting suggestion the user can override).
  • No cycle data → skip the phase qualifier (still works for users who don't track or aren't menstruating).

Privacy

  • Profile lives at <vault>/Meta/coach-profile.yaml — local-only, never committed if vault is in git (the user controls).
  • No prescription is shared anywhere unless calendar_drop: true AND google-workspace MCP is connected, in which case the workout is in their own Google Calendar (their account, their data).
  • The coach never sends anything to Anthropic or third parties beyond what the user already does via their existing tools.