health-doctor

health-doctor is a skill for Claude Code from mycelium-hq/ai-brain-starter. It costs 93 tokens per session (2,032 once invoked), scanned B, original, MIT.

A health-system diagnostic for checking whether data imports and workout prescriptions are working. It checks sources such as Apple Health, Oura, Fitbit, and laboratory results.

In plain words
What is it for?
Use it to check the freshness of wearable and lab data, confirm recent prescriptions and completions, and investigate missing calendar workouts.
Why use it?
Health data and scheduled workouts can silently become outdated or fail to appear. It shows where the data flow or prescription process may have stopped.

Skill for Claude Code

Written for Claude Code: SessionStart hook event. Also seen: reads .claude/ paths.

Part of the ai-brain-starter plugin — 38 skills, 17 commands, 3 agents, 1 hook shipped together

Good fit Use it to check the freshness of wearable and lab data, confirm recent prescriptions and completions, and investigate missing calendar workouts.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/mycelium-hq/ai-brain-starter/health-doctor
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add mycelium-hq/ai-brain-starter --skill health-doctor
Clone the repo
git clone --depth 1 https://github.com/mycelium-hq/ai-brain-starter

Made for: Claude Code.

Or install ai-brain-starter, the plugin that ships this one along with the rest of its 38 skills, 17 commands, 3 agents, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for health-doctor

README.md
[![agentmods](https://agentmods.dev/badge/skills/mycelium-hq/ai-brain-starter/health-doctor/github.svg)](https://agentmods.dev/skills/mycelium-hq/ai-brain-starter/health-doctor)
Your own site
<a href="https://agentmods.dev/skills/mycelium-hq/ai-brain-starter/health-doctor"><img src="https://agentmods.dev/badge/skills/mycelium-hq/ai-brain-starter/health-doctor/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for health-doctor

Your own site · 80×15
<a href="https://agentmods.dev/skills/mycelium-hq/ai-brain-starter/health-doctor"><img src="https://agentmods.dev/badge/skills/mycelium-hq/ai-brain-starter/health-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,032 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Agent Snooping · line 41
    Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
    Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
  • high Agent Snooping · line 136
    Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
    Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00093 $0.02032
Opus 5 $0.00046 $0.01016
Sonnet 5 $0.00019 $0.00406
Haiku 4.5 $0.00009 $0.00203

Measured 12d ago against content hash dba7dbc95f99, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade B, and why

health-doctor scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

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 ass
skills/health-doctor/SKILL.md · 162 lines

How it starts

The opening of the file, as written. The whole thing — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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.py on 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.

Read the full file on GitHub · 162 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 162 lines · 93 tokens per session scan B dba7dbc95f99

Subscribe to this mod's changes

health-doctor is a skill published in the GitHub repository mycelium-hq/ai-brain-starter (36 stars, last pushed yesterday), licensed MIT. It adds 93 tokens to every session and 2,032 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

flow

Personal task and agent-session manager. CLI binary is flow (assumed on PATH) and stores metadata in /.flow/flow.db (SQLite). Use this skill when the user asks about their work, tasks, or projects in any natural phrasing — including but not limited to: "what's left", "what's remaining", "what's pending", "what do I…

Facets-cloud/flow · 316 tokens

daily-brief

Compose a morning briefing for the user by pulling today's calendar, open tasks, and relevant memory, then delivering a short prioritized summary over the primary chat channel. Use when the user asks for a daily brief, "what's on today", a standup, or sets up a scheduled morning digest.

TheSmokeDev/taskchad-os · 63 tokens

claudeai-sync

Pull new and changed claude.ai web conversations into an Obsidian vault, extract artifacts as first-class notes, concept-link them, and refresh the RAG index and dashboard. Idempotent: curated notes are never overwritten. Triggers: "/claudeai-sync", "pull claude.ai", "grab new claude.ai chats".

tonydzi/second-brain-starter-kit · 74 tokens

tg-slot

Free a membership slot so a Telegram account can join or create a group. Accounts have a hard ceiling on channels plus supergroups, and at the ceiling both creating and joining fail with an error that misleadingly blames the target chat. Finds the least-valuable current memberships, proposes what to leave, and retries…

tonydzi/second-brain-starter-kit · 87 tokens

gmail

Check, search or digest Gmail across several mailboxes over the owner's own OAuth connector, with no browser and near-zero tokens for the raw pull. Read-only by default: drafting and sending go through the outbound approval gate. Triggers: "/gmail", "check mail", "any important emails", "find the email about ".

tonydzi/second-brain-starter-kit · 69 tokens

tg-post

Publish a vetted post to one of your own Telegram channels or supergroups over the MCP connector rather than a browser, with the channel resolved strictly by id from a registry, rate-guarded and draft-first. It never posts to a chat matched by name similarity. Triggers: "/tg-post", "publish to the telegram channel".

tonydzi/second-brain-starter-kit · 70 tokens