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.
npx skills add mycelium-hq/ai-brain-starter --skill health-doctorgit clone --depth 1 https://github.com/mycelium-hq/ai-brain-starterWrote 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.
[](https://agentmods.dev/skills/mycelium-hq/ai-brain-starter/health-doctor)<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.
<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>- NVIDIA SkillSpector warn
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
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.
| Model | Per session | Once 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 |
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 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.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.
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.
- 12d ago First seen · 162 lines · 93 tokens per session scan B dba7dbc95f99
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.
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…
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.
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".
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…
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 ".
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".