You have too many skills.
Three of them debug. Two do TDD. Three review code. The question stopped being can my agent do this a while ago — it is which of these four do I run, and in what order.
This skill answers that in one shot: an ordered chain, a one-line reason for each step that needs one, and an explicit list of what you do not run.
The failure mode it removes
Ask any agent which skill to use and it names every plausible one. A list of nine names is worse than no answer — you walk away holding the entire arbitration, which is the problem you came with.
## The chain /diagnosing-bugs → /freeze → /tdd → /code-review → /ship → /learn ## Why /diagnosing-bugs rather than /investigate: it refuses to theorise until a command goes red on this exact bug, and that refusal is the whole point once the first look has already failed. ## What you do not run -/investigate— the right default nine times out of ten, but built to move fast on a fresh lead, and this bug already survived that -/qa— finds bugs, does not diagnose them. You already have the bug.
The step that makes the difference is subtraction. Someone who arrives with a bug localised to the line has finished their diagnosis; handing them a debugger asks them to redo, in front of you, what they just did.
Install
git clone https://github.com/whichskill/whichskill ~/.claude/skills/which-skill bash ~/.claude/skills/which-skill/scripts/build-catalogue.sh
The second command is not optional. The router refuses to name a skill that is not in its catalogue, and that catalogue lists what is installed on your machine. It ships empty on purpose — shipping the author's would make the router confidently recommend commands you do not have. Run it again whenever you add or remove a pack.
Then, in any session: which skill do I run for this?
Scope, honestly
- The arbitration is opinionated, and it covers the packs it names.
- It does not know every skill in existence. A router that pretended to would send you to commands that do not exist.
- Where an arbitration is missing, it says so rather than guessing.