#2051
How does skill trigger resolution work when multiple skills match the same query?
When several installed skills have overlapping trigger conditions (e.g., two skills whose descriptions both mention "review my draft" or "analyze this PR"), how does the model decide which one to invoke?
The spec covers the description field and trigger matching at a high level, but I haven't found guidance on resolution behavior when multiple skills are candidates for the same request. Specifically:
- Is it purely description-similarity-based, or does the model see all candidate descriptions and pick one?
- Is there any precedence (e.g., official skills over community skills, or install order)?
- Can two overlapping skills both get invoked for the same query, or is it strictly one-winner?
- Is there a recommended pattern for disambiguating — e.g., putting explicit "do NOT use for X" negative triggers in the description?
The practical concern: as the number of installed skills grows into the dozens, overlap becomes inevitable, and without clear resolution semantics it's hard to predict which skill fires. A short section in the docs covering multi-match behavior would be very useful.
If this is already documented and I missed it, a link would be appreciated.
The only precedence the docs describe is for skills that share a name: enterprise over personal over project, and plugin skills never clash because they're namespaced
plugin:skill(https://code.claude.com/docs/en/skills#resolve-skills-that-share-a-name). I haven't found anything documented on negative triggers for skills; it's an author convention. What actually settles an overlap is the baseline loop in the same page ("Evaluate and iterate on a skill"): run the ambiguous prompts in fresh sessions with one of the two set to "off" inskillOverrides, and compare which one fires.