ProjectsCase study
claude-skill-router — Skill router plugin for Claude Code
A Claude Code plugin: write a prompt as usual, add `/route`, and the router picks the best 1 to 5 of your installed skills, shows which ones it loads and why, does the work with them, checks each part and ends with the skills worth running next. In 18 headless test sessions on a machine with about 400 installed skills, 18 of 18 picks matched the skills an experienced user would load by hand.
- Claude Code
- Agent Skills
- Python
- Markdown
Why
- Claude Code cannot show every skill: past the listing budget, the least-used skills appear by name only and are never picked automatically
- Similar skills compete, and nothing says which one fits the job or needs an API key you do not have
- `/route` is explicit: when you type it, the router loads the skills itself
How it works
- Once: `/route build` finds every skill (global, project, plugins, built-ins) and parallel agents write one catalog line per skill: USE, NOT, NEXT and NEEDS
- Every call: the router reads your own rules, then only the 1 to 3 catalog categories that match, and loads the fewest skills that cover the whole request
- It asks first before any step that sends messages, deploys, deletes data, spends credits or writes to production
- An end check marks each part done, partial or blocked, with a file:line or test result as evidence
- Every reply ends with Next skills, each with a moment to run it (now, before commit, before push, after deploy)
Details
- Your own rules in `~/.claude/router.md` beat the catalog's picks; `/route refresh` syncs the catalog after installs
- Each call logs one line to a local `usage.jsonl`, and a report shows which loaded skills the work really used
- Python 3 standard library only; the catalog lives in `~/.claude/route-catalog/`, outside the plugin