mycelium-hq/ai-brain-starter/health-doctor
Claude Code and agent skill by mycelium-hq/ai-brain-starter
- community
Checking that the SKILL.md file is still in the repository.
Use when the user runs /health doctor or /health status, asks whether the health auto-chain is working, when the last Oura, Fitbit, Apple Health, or labs sync happened, whether the coach prescribed today, why a workout or prescription didn't appear in the calendar, why wearable data looks stale or missing, whether an out-of-range lab marker needs a re-test, or wants to confirm health-mcp hook wiring after first-time setup.
Install
npx vskill@latest install mycelium-hq/ai-brain-starter/health-doctorSKILL.md
health-doctor
The substrate has 41 tools + 5 skills + 2 auto-trigger hooks. None of it matters if the chain breaks silently. This skill is the surface for verifying the system is actually running.
Run /health doctor whenever:
- It's been a few days since you saw a workout in your calendar
- You want to know if yesterday's wearable data actually made it in
- You want to see which lab markers need a re-test
- You're setting up the auto-chain for the first time and want to confirm the wiring
What it reports
Six sections, each with a green / yellow / red flag:
1. Data freshness
For each enabled source:
- Apple Health: hours since last
health_import_xml(yellow if > 14 days, red if > 28 days) - Oura: hours since last
health_import_oura(yellow if > 36h, red if > 7d) - Fitbit: hours since last
health_import_fitbit(yellow if > 36h, red if > 7d) - Labs: days since last
health_import_labs(yellow if any marker is > 180 days old or any out-of-range marker is > 90d without a re-test)
Pulled from the imports table via health_status().
2. Last prescription + completion
- Most recent prescription via
health_coach_recent_prescriptions(days=7) - Was it completed? (RPE + lift actuals logged via
/coach log) - Streak: how many days in a row had both a prescription AND a completion
- Missed days: prescriptions with no completion in the last 14 days
Yellow if completion rate < 60%. Red if completion rate < 40% or no prescriptions in 7 days.
3. Auto-trigger hooks installed
The default wired set is defined by hooks.json at the repo root (the file the installer actually writes into ~/.claude/settings.json, tested by services/health-mcp/tests/test_v05_hooks.py) — read it rather than assuming a fixed list, so this check can't drift from what installs. See docs/AUTOMATION.md for the full chain.
By default that's one hook:
coach-auto-prescribe-on-journal.pyon Stop (prescribes + backfills after /journal)
health-auto-sync.py (SessionStart wearable refresh) is opt-in, power-user only, and deliberately NOT wired by default — firing it on every SessionStart is wasteful for users with many sessions/day. Its absence from settings.json is expected, not a fault.
Red if the Stop hook (coach-auto-prescribe-on-journal.py) is not in settings.json. Yellow if the hook script file exists but isn't registered. Green if registered AND firing recently (check ~/.claude/hookify-blocks.log for the hook name in the last 48h). If health-auto-sync.py IS registered (the user opted in), report its freshness the same way, but never red for its absence.
4. Coach profile status
Reads <VAULT_ROOT>/Meta/coach-profile.yaml:
- Profile exists? Last updated?
calendar_drop: trueAND google-workspace MCP connected? (calendar drop won't fire otherwise)preferred_workout_clockset?days_per_weekreasonable forlevel?started_isoset? (used by deload-week computation)
Yellow if any field missing. Red if no profile at all.
5. Lab status flags
Run health_lab_panel(today, lookback_days=180) and surface ANY marker with status: low or status: high:
- Marker, value, range, status
- Days since last test for that marker
- WHY this marker matters (pull from
health_recommended_labs()) - Suggested re-test cadence (e.g. "re-test in 90 days after supplementation")
Yellow if any marker is out-of-range and last tested > 90 days ago. Red if any out-of-range marker is critical (low ferritin in menstruating users, elevated hs-CRP > 3.0, fasting insulin > 10, Vitamin D < 20).
6. Cycle phase + sleep regularity (women's substrate qualifier)
If menstrual flow records exist:
- Current phase + cycle day + irregularity flag from
health_cycle_context(today) - Cycle length variance over last 6 cycles
- Yellow if irregularity = "mild_irregular". Red if "irregular".
Plus health_sleep_regularity(last_14_days):
- Regularity score
- Bed-time stdev, wake-time stdev, mean sleep latency
- Yellow if regularity < 70. Red if < 50.
Output format
A markdown report with the six sections, each summarized to 3-5 lines with the flag, the data, and a one-line "what to do" if yellow or red.
Example:
Tools called
health_status()— top-level table counts + imports tablehealth_coach_recent_prescriptions(days=7)— prescriptions + completion statushealth_coach_summary(days=28)— completion ratehealth_lab_panel(today, lookback_days=180)— most recent labs per markerhealth_recommended_labs()— the WHY for any flagged markerhealth_cycle_context(today)— current phase + irregularityhealth_sleep_regularity(today-14, today)— bed/wake variance
Plus:
- Read
~/.claude/settings.jsonto verify hooks are registered - Read
~/.claude/hookify-blocks.logto verify hooks have fired recently - Read
<VAULT_ROOT>/Meta/coach-profile.yamlto verify profile state
When to surface unprompted
The hook system can surface specific flags WITHOUT the user running /health doctor explicitly:
- PostToolUse on any health-mcp call: if Apple Health is > 28 days stale, surface a one-line nudge ("Re-export Apple Health — last import 31 days ago")
- SessionStart: if any lab is out-of-range AND > 90 days old, surface re-test reminder
- Stop on coach-auto-prescribe: if today's prescription was created, surface the why_today line
These are hookify nudges, configured separately. The skill is the comprehensive surface; the nudges are the targeted catches.
Graceful failure
- health-mcp not registered → report "/health-setup first"
- DuckDB empty → report "/ingest-health first"
- No profile → report "/coach profile first"
- No journal entries → skip cycle / Floor sections silently
The doctor never blocks. It always returns a report, even if it's "this is what's missing to get started."
Voice
Direct. Color-coded flags (🟢 / 🟡 / 🔴) for fast scan. Each yellow / red has a specific "what to do" line, not a vague "consider reviewing." Reader should know exactly what to fix in 30 seconds of reading.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/health-doctor/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mycelium-hq/ai-brain-starter/health-doctor)