Summary
None of the 94 entries in commands/ contains a trigger clause. Skills nearly all say "Use when X"; commands are imperative one-liners ("List all configured hookify rules", "Sweep blocked epic issues"). That is natural for something typed by name — but commands and skills share one listing, so the consequence is systematic:
A command loses every semantic match to a skill covering the same job, and wins only on literal name match.
review-pr, orch-review, plan, multi-plan, harness-audit, project-init, cost-report and loop-start are effectively unreachable unless the user types the name.
Verify
cd commands && grep -Li 'use when\|use this skill\|trigger\|when the user' *.md | wc -l # → 94 of 94
Measured routing failures
Blind test: an agent given only the 401-entry listing text (307 skills + 94 commands) and 15 realistic prompts, choosing with no access to SKILL.md bodies. 5 prompts were controls; 3 came back fully clean, so the probe is sound. Results: 7 HIGH / 5 MEDIUM / 3 LOW.
1. The billing keyword points at the wrong skill.
Prompt: "This customer says they were charged twice — sort it out."
finance-billing-ops contains the literal phrase "duplicate-charge diagnosis", but is scoped to internal revenue/pricing truth. customer-billing-ops is the correct entry — and never says "duplicate charge". A keyword match lands wrong; only role-matching recovers. customer-billing-ops's own body confirms it owns "duplicate subscriptions, accidental charges, failed renewals".
2. Six entries claim "plan a feature", and a seventh overrides all of them.
plan, prp-plan, multi-plan, feature-dev, writing-plans, blueprint, orch-add-feature all match "help me plan this feature". None states a size, phase, or methodology boundary — except blueprint, which has an explicit floor ("DO NOT TRIGGER when… fewer than 3 tool calls") and is the model worth copying. Compounding: brainstorming asserts "You MUST use this before any creative work", so the listing claims the correct first load is none of the six.
Also: multi-plan's "multi" means multi-model, not multi-step — the description never expands it.
3. One symptom splits three ways.
Prompt: "My agent keeps hitting the max tool call limit and retrying forever."
agent-architecture-audit owns "tool discipline failures, hidden repair loops"; agent-introspection-debugging owns "instead of a retry"; loop-design-check owns "spinning and burning tokens". The prompt contains all three halves; no entry claims more than one.
Coverage gap found incidentally
"Find where user authentication happens in this codebase" has no answer in all 401 entries. The nearest two produce artifacts nobody asked for — code-tour creates .tour files, codebase-onboarding generates a guide + starter CLAUDE.md. Correct behavior (load nothing, grep) is achieved by omission rather than design.
What already works — the fix pattern is in-repo
These resolve their own collisions with a single clause naming the sibling, and are worth propagating:
orch-* commands — "Wrapper that kicks off the <name> skill"
orch-* skills — mutually exclusive one-liners ("behavior is broken" vs "behavior should change" vs "structure improves, behavior must not")
autonomous-loops, continuous-learning — explicit deprecation + redirect
loop-design-check — names the two skills it complements and the layer it adds
ponytail-audit — "Like ponytail-review, but scans the entire codebase instead of a diff"
ecc-recipes — carries DO-NOT-TRIGGER clauses naming its neighbours
Suggested fix
Add a Use when … clause to the ~25 commands whose job a skill also claims, using the orch-* wrapper form. Priority order: review-pr, orch-review, code-review, plan, multi-plan, project-init, harness-audit, cost-report.
Separately, 9 names exist as both a skill and a command. The five orch-* pairs handle it; ecc-guide, security-scan, plan-canvas, marketing-campaign say nothing about each other. ecc-guide is the worst case — neither half has a trigger clause.
Summary
None of the 94 entries in
commands/contains a trigger clause. Skills nearly all say "Use when X"; commands are imperative one-liners ("List all configured hookify rules", "Sweep blocked epic issues"). That is natural for something typed by name — but commands and skills share one listing, so the consequence is systematic:review-pr,orch-review,plan,multi-plan,harness-audit,project-init,cost-reportandloop-startare effectively unreachable unless the user types the name.Verify
Measured routing failures
Blind test: an agent given only the 401-entry listing text (307 skills + 94 commands) and 15 realistic prompts, choosing with no access to SKILL.md bodies. 5 prompts were controls; 3 came back fully clean, so the probe is sound. Results: 7 HIGH / 5 MEDIUM / 3 LOW.
1. The billing keyword points at the wrong skill.
Prompt: "This customer says they were charged twice — sort it out."
finance-billing-opscontains the literal phrase "duplicate-charge diagnosis", but is scoped to internal revenue/pricing truth.customer-billing-opsis the correct entry — and never says "duplicate charge". A keyword match lands wrong; only role-matching recovers.customer-billing-ops's own body confirms it owns "duplicate subscriptions, accidental charges, failed renewals".2. Six entries claim "plan a feature", and a seventh overrides all of them.
plan,prp-plan,multi-plan,feature-dev,writing-plans,blueprint,orch-add-featureall match "help me plan this feature". None states a size, phase, or methodology boundary — exceptblueprint, which has an explicit floor ("DO NOT TRIGGER when… fewer than 3 tool calls") and is the model worth copying. Compounding:brainstormingasserts "You MUST use this before any creative work", so the listing claims the correct first load is none of the six.Also:
multi-plan's "multi" means multi-model, not multi-step — the description never expands it.3. One symptom splits three ways.
Prompt: "My agent keeps hitting the max tool call limit and retrying forever."
agent-architecture-auditowns "tool discipline failures, hidden repair loops";agent-introspection-debuggingowns "instead of a retry";loop-design-checkowns "spinning and burning tokens". The prompt contains all three halves; no entry claims more than one.Coverage gap found incidentally
"Find where user authentication happens in this codebase" has no answer in all 401 entries. The nearest two produce artifacts nobody asked for —
code-tourcreates.tourfiles,codebase-onboardinggenerates a guide + starter CLAUDE.md. Correct behavior (load nothing, grep) is achieved by omission rather than design.What already works — the fix pattern is in-repo
These resolve their own collisions with a single clause naming the sibling, and are worth propagating:
orch-*commands —"Wrapper that kicks off the <name> skill"orch-*skills — mutually exclusive one-liners ("behavior is broken" vs "behavior should change" vs "structure improves, behavior must not")autonomous-loops,continuous-learning— explicit deprecation + redirectloop-design-check— names the two skills it complements and the layer it addsponytail-audit— "Like ponytail-review, but scans the entire codebase instead of a diff"ecc-recipes— carries DO-NOT-TRIGGER clauses naming its neighboursSuggested fix
Add a
Use when …clause to the ~25 commands whose job a skill also claims, using theorch-*wrapper form. Priority order:review-pr,orch-review,code-review,plan,multi-plan,project-init,harness-audit,cost-report.Separately, 9 names exist as both a skill and a command. The five
orch-*pairs handle it;ecc-guide,security-scan,plan-canvas,marketing-campaignsay nothing about each other.ecc-guideis the worst case — neither half has a trigger clause.