{"skillsDir":"~/.claude/skills","judge":"jev","replay":"fixtures/recordings/doctor-probes.json","threshold":0.85,"composition":{"catalogSize":51,"excluded":[],"suites":[{"prefix":"better","members":["better-accessibility","better-colors","better-interface","better-layout","better-typography","better-ui","better-writing"]},{"prefix":"cloudflare","members":["cloudflare-email-service","cloudflare-one","cloudflare-one-migrations"]},{"prefix":"sandbox","members":["sandbox-migrate-to-next","sandbox-next","sandbox-sdk","sandbox-stable"]},{"prefix":"vercel","members":["vercel-cli-with-tokens","vercel-composition-patterns","vercel-react-best-practices","vercel-react-native-skills"]}],"standalone":33,"medianKeywords":32},"findings":[{"kind":"unroutable","skills":["deep-research"],"evidence":"~/.claude/skills/deep-research/SKILL.md has no description in its frontmatter","action":"add a description — the router skips skills without one (Claude Code falls back to the first line of the body)"},{"kind":"duplicate","skills":["better-ui","make-interfaces-feel-better"],"evidence":"near-verbatim descriptions — keyword Jaccard 0.62 (likely a rename of the same skill)","action":"uninstall better-ui (or add it to \"exclude\") — make-interfaces-feel-better carries the richer routing surface (57 vs 42 keywords); until then every task on this territory splits between them"},{"kind":"collision","skills":["better-ui","emil-design-eng","impeccable","make-interfaces-feel-better"],"evidence":"on a task squarely in better-ui's territory the router co-invokes make-interfaces-feel-better (0.97), emil-design-eng (0.95), impeccable (0.95) at t=0.85 — and the reverse probes agree","action":"these claim the same job — keep your favorite and add the others to \"exclude\" in .skillrouter.json"},{"kind":"overlap","skills":["impeccable","web-design-guidelines","apple-design"],"evidence":"impeccable fires on the home territory of web-design-guidelines (0.94), apple-design (0.89); on impeccable's own territory they stay silent — it intrudes, they stay scoped","action":"add a clause like \"Not for web-design-guidelines / apple-design-style work — defer to those skills\" to impeccable's description"},{"kind":"self-miss","skills":["animate","deploy-to-vercel","diagnosing-bugs","find-skills","model-routing","sandbox-migrate-to-next","sweep","wrangler"],"evidence":"on tasks built from their own descriptions the router scores them under t=0.85: animate (0.81), deploy-to-vercel (0.78), diagnosing-bugs (0.75), find-skills (0.68), model-routing (0.80), sandbox-migrate-to-next (0.78), sweep (0.68), wrangler (0.83) — the descriptions may not read as invokable triggers","action":"rewrite these descriptions to say when to USE the skill, then re-run the doctor (--only <ids>) — these probes drew no other conclusions"}]}