← ClaudeAtlas

cerebro-doctorlisted

Meta-audit of the skill system. Walks `{brain_root}/skills/` + `{brain_root}/AGENTS.md` and reports three classes of drift: (a) skills with no resolver row (unreachable), (b) AGENTS.md rows pointing at missing skills (orphan phrases), (c) DRY overlap — two skills claiming the same trigger substring. Exit code 0 = clean; non-zero = drift. Trigger on: "cerebro doctor", "check resolvable", "skill health check", "resolver audit", "DRY audit", "are my skills reachable".
cerebrocybersolutions/libro · ★ 0 · AI & Automation · score 75
Install: claude install-skill cerebrocybersolutions/libro
# skill-doctor Mechanical audit of your skill resolver system. Three checks, one Python script, no LLM in the loop. --- ## What it does 1. **Reachability** — every `{brain_root}/skills/<name>/SKILL.md` has at least one row in `{brain_root}/AGENTS.md` mapping a phrase to `<name>`. "Surgeon on staff but not in the hospital directory" — if a skill exists but nothing routes to it, it's invisible. 2. **Orphan phrases** — every AGENTS.md row points at a skill that actually exists (not archived, not typo'd). Catches stale rows after a skill retires. 3. **DRY overlap** — no two active skills claim the same trigger substring in their SKILL.md `description:` frontmatter. When overlap is legitimate, the fix is a discriminator row in AGENTS.md under "Known DRY pairs." When overlap is a bug, the fix is narrowing the SKILL.md description. --- ## How to run ```bash python3 {brain_root}/skills/cerebro-doctor/Scripts/check_resolvable.py ``` Optional flags: - `--root <path>` — override Brain root detection (default: walk up from script location) - `--format json` — machine-readable output for daily cron integration - `--quiet` — only print if there's drift Exit codes: - `0` — clean - `1` — reachability drift (unreachable skill or orphan phrase) - `2` — DRY overlap found - `3` — both --- ## Scope contract - **Reads:** `{brain_root}/skills/*/SKILL.md`, `{brain_root}/AGENTS.md`, `{brain_root}/skills/_archive/` (to disambiguate retired from missing) - **Writes:**