From ai-brain-starter
Issues daily personalized workout prescriptions based on health metrics (recovery, sleep, cycle, labs) and emotional state. Tracks progressive overload, programs deloads, and drops plans into Google Calendar.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-brain-starter:coachThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
/coach, /coach today, /coach week, /coach profile, /coach logDo NOT use for:
/ingest-health or /health-setup)health_status, health_metric_series)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.
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
---
/coach todayThe flow:
Load profile from <vault>/Meta/coach-profile.yaml. If missing, run profile setup.
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.
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.
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).
Render the workout using the template below. Cite why_today verbatim.
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.
Surface the prescription to the user in chat.
## 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.]
Other fitness coaches ignore emotional state. Ours doesn't. Reading today's journal frontmatter for floor / floor_level lets us:
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."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.
/coach weekEvery Sunday (or when user asks):
health_coach_recent_prescriptions(days=7).health_weekly_rollup(this_week_start).days_per_week (rest days fill the rest), one deload week every 4th.profile.calendar_drop: true, write 7 calendar events at the user's preferred time./coach monthEvery 4 weeks:
health_coach_summary(days=28) for completion rate + workout-type distribution + average RPE + top-set progress per lift.health_longevity_panel(today) for the Attia surface: VO2Max trend, Zone 2 minutes/week vs 180-target, walking steadiness, lean mass.health_long_window for YoY persistent-asymmetry on HRV / sleep / steps.health_lab_panel(today) for any out-of-range markers — flag with a re-test reminder.health_recommended_labs() if useful)./coach logAfter a workout, the user runs /coach log (or just tells the chat "I finished today's workout"). The skill:
health_coach_recent_prescriptions(days=1).lift_actuals_json array and call:
health_coach_log_completion(prescription_id="<id>", rpe=<int>, notes="<text>", lift_actuals_json="<json>")
Direct, motivating, no fluff. Match the user's language (English / Spanish).
If google-workspace MCP is connected and calendar_drop: true:
preferred_workout_clock with title [Workout type]: [duration]min · [body focus] and the full workout block in the description.🏋️ [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."
Once the user runs /coach successfully, suggest setting up a scheduled task via /schedule:
preferred_workout_clock - 30 min/coach today with the user's profile so the workout is in their calendar before they wake up/health-setup.<vault>/Meta/coach-profile.yaml — local-only, never committed if vault is in git (the user controls).calendar_drop: true AND google-workspace MCP is connected, in which case the workout is in their own Google Calendar (their account, their data).npx claudepluginhub mycelium-hq/ai-brain-starter --plugin ai-brain-starterRuns a conversational morning routine combining consciousness check, body movement, priority ranking, daily intention, and calendar review. Pairs with /journal at night.
Channels Naval Ravikant's philosophy to guide physical/mental health improvement, habit-building for exercise/diet/meditation, energy boosts, and health prioritization.
Applies exercise science knowledge to program design, periodization, biomechanics, injury prevention, and evidence-based training methodology.