Skill Interference — Why Your Tenth Install Is Weaker Than Your First
Every skill in our directory is evaluated as if it were the only one installed. Nobody uses them that way. This post is about what changes when you install ten.
We score every skill in isolation: one SKILL.md, one rubric, one simulated session. That's the right way to compare them — but it's not how they're used. A real user has a loadout: a dozen skills across documents, code, and research, all live at once. And loadouts fail in ways individual skills never do.
We can't score interference directly — we don't see user sessions. But we see the residue: skill descriptions that collide, capability claims that overlap, defaults that contradict. Here are the four interference patterns, and the rules that avoid them.
Pattern 1: Trigger collisions
Two skills claim the same trigger. The classic case in our directory: code-review (9.3) and code-reviewer (9.4) — both fire on "review this code," with different methodologies (changes-since-a-point vs. diff-and-file analysis). The agent picks one, and neither skill author intended that.
The rule: per job type, install one trigger-owner. If two skills both claim "review my code," keep the one whose methodology matches how you actually work, and remove the other. Ambiguity at trigger time is where loadouts go wrong first.
Pattern 2: Layered overlaps that look like alternatives
hyperframes (8.9) and its nine specialized siblings are a family — core, CLI, animation, media — covered separately. The router skill plus the specialists is a designed hierarchy: install the family or don't. The failure is treating family members as alternatives ("I'll just install hyperframes-animation, I don't need core") — the specialists assume the contract skill is loaded.
Compare with the Office trio — docx (9.7), xlsx (9.8), pptx (9.7) — which are true alternatives in the sense that they don't reference each other, and true complements in that their domains don't overlap. That's the cleaner shape.
The rule: families install whole. If a skill's description references a sibling, the sibling is a dependency, not an option.
Pattern 3: Contradictory defaults
Two skills that each encode a "standard" that disagrees. We see this most between writing-adjacent skills: a tone skill that enforces concise defaults versus a brand skill that enforces elaborate ones. Each is fine alone; installed together, the agent satisfies whichever fired last, and your output oscillates.
The rule: defaults should come from one skill per output type. One voice/style owner for prose, one formatting owner per document type. Everything else in the loadout should be capability (what to make), not policy (how it should read).
Pattern 4: The stale skill
Skills that reference moving targets — model IDs, API versions, CLI flags — decay. claude-api (9.8) is the reference skill for the Anthropic SDK, and it's excellent because its author maintains it; a snapshot of the same file from six months ago would score materially lower on content quality. Our dynamic testing writeup covers how we catch this on our side; on your side, the fix is simpler.
The rule: for anything version-sensitive, check the skill's updated_at before trusting model IDs or API shapes. In our directory the date is on every skill page. A 9.8 from last year may be a 7.5 today.
The loadout checklist
- One trigger-owner per job type
- Families installed whole
- One policy-owner per output type
- Version-sensitive skills checked against their update date
That's four rules, and in our experience they eliminate most loadout failures before they happen. For the security side of assembling a set — which skills deserve what access — see the secure loadout guide.
Where to start
If you're building a loadout from scratch: the top of the leaderboard is sorted by score, but score is a property of the skill, not the set. Pick your job types first, then take the best trigger-owner for each. Ten well-chosen skills beat forty installed on spec — which is, fittingly, the same lesson as the interview-skill pattern: know what you want before you let the agent guess.
