From ai-brain-starter
Prescribes personalized daily longevity and fitness workouts from health metrics, sleep, cycle phase, labs, and emotional state. Tracks per-lift progressive overload, deloads every 4th week, logs RPE, and adds plans to Google Calendar.
npx claudepluginhub adelaidasofia/ai-brain-starterThis skill uses the workspace's default tool permissions.
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.
Tracks atomic habits via natural language logging (e.g., 'I meditated today'), streak tracking with 1-day forgiveness, WhatsApp reminders, and AI coaching with switchable personas.
Channels Naval Ravikant's philosophy to guide physical/mental health improvement, habit-building for exercise/diet/meditation, energy boosts, and health prioritization.
Conducts conversational interviews for daily journaling, identifies High-Rise emotional floors, and saves formatted entries to Obsidian notes. Invoke via /journal or check-ins.
Share bugs, ideas, or general feedback.
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).