which-skill
Skill1 starsChanged 4 months agoMITView on GitHub
which-skill — quote-backed intent match over installed agent skills; recommend 2–3, never autoload. Use when asking which skill to use, how to pick a skill, what tool fits a job, or describing a task without naming a skill — including paraphrases that miss trigger words (color-blind UI → accessibility). Also use to run the paraphrase harness. Do not use when a skill is already named, or to search/install from the ecosystem (find-skills).
12 other projects use a version of this.
Adopted by
Most recently taken up by
- paureis/pau-skillstheir own version, first seen Nov 8, 2026
- leek/agent-skillstheir own version, first seen Nov 2, 2026
- aayushchugh/skillstheir own version, first seen Nov 1, 2026
- TanKaizokuO/claude-skillstheir own version, first seen Oct 20, 2026
- eyeix/skillstheir own version, first seen Oct 13, 2026
- mik2win/foureyestheir own version, first seen Oct 8, 2026
Used with
Projects with it also use resolving-merge-conflicts, to-issues and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
GoogleSkillresolving-merge-conflicts
Use when you need to resolve an in-progress git merge/rebase conflict.
Also in 3 projects that use this
GoogleSkillto-issues
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.
Also in 3 projects that use this
Google CloudSkilltriage
Gather context on a change or bug and plan the implementation.
Also in 4 projects that use this
- +7 more from google
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- evist0/okf-matt-skills★ 13same name
- officialunofficial/skills★ 7same name
- leek/agent-skills★ 5same name
- aayushchugh/skills★ 4same name
- icetomoyo/CodingSkills★ 4same name
- dhanji4U/skills★ 2same name
- mik2win/foureyes★ 2same name
- paureis/pau-skills★ 2same name
- risadams/ink-and-agency★ 2same name
- eyeix/skills★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 54
Prefer the in-context skill catalog (name + description).
- Very specific: line 55
If missing / thin / stale: scan skill roots and read each SKILL.md frontmatter only.
- Distinctive: line 71
Quote rule: every keep binds intent to a verbatim phrase from that skill's description.
- Distinctive: line 95
When the best match is weak, or paraphrase would work but the description is too narrow:
- Very specific: line 105
No local fit → offer bare help → find-skills only if they may want an uninstalled skill.
- Distinctive: line 114
Never invent a skill name absent from the loaded catalog
- Distinctive: line 115
Prefer specific over generic.
- Distinctive: line 119
When the user says "run paraphrase cases" / self-check / after editing this skill: load references/paraphrase-cases.md and score every case …
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
which-skill
Intent match, not keyword match.
Recommend-only · quote-backed · live-catalog.
Ranks already installed skills and stops at the recommendation. Never silently load or run another skill.
Not find-skills (ecosystem install). Not a hardcoded domain→skill table.
Demos: examples.md · Harness: references/paraphrase-cases.md
Steps
1. Gate — negative space
| Signal | Action |
| User already named a skill | Stop — router not needed |
| Trivial one-shot, no specialized workflow | No skill needed — just do the task |
| Needs a skill that is clearly not installed | Hand off to find-skills |
Done when: you exited with a clear reason, or you proceed knowing a local skill may exist.
2. Extract intent
One sentence: job (outcome) · object (artifact) · constraints.
Pick altitude:
| Altitude | Meaning |
| atomic | One skill |
| combo | 2–3 skills in sequence |
| flow | Multi-session pipeline (only if those skills are installed) |
Done when: a restatement without the user's wording still picks the same family and altitude.
3. Load the live catalog
Single source of truth = this session's descriptions. No memorized tables.
- Prefer the in-context skill catalog (
name+description). - If missing / thin / stale: scan skill roots and read each
SKILL.mdfrontmatter only. Paths: references/scan-roots.md. Follow symlinks; skip broken; optionally reportreachable / broken. - Skip
which-skill,skill-router, and non-actionable meta docs.
Done when: you have {name, description} for every reachable install — not a memory guess.
4. Semantic rank (quote-backed)
Score against the intent sentence (not surface keywords):
| Axis | Strong | Weak |
| Job | description's action = outcome | same domain, different action |
| Object | right artifact kind | adjacent domain only |
| Scope | altitude matches | too broad or too narrow |
- Paraphrase test: phrasing would miss the skill's triggers, intent still matches → still a hit.
- Quote rule: every keep binds intent to a verbatim phrase from that skill's description. No "sounds related."
Return top 2–3. Combos count toward the cap. Specific beats generic; atomic beats flow when one skill suffices.
Done when: each candidate has intent ↔ quote; altitude is decided.
5. Present (recommend-only)
Reply in the user's language. Do not open or run a recommended skill until they confirm.
**{name}** — {one-line what it does}
- Quote: "{verbatim from description}"
- Why: {intent ↔ that quote}
- Altitude: atomic | combo step N | flow
- Invoke: {how to attach — wait for OK}Weak but paraphrase-solid → still recommend, then step 6.
Done when: 2–3 picks with quotes, or an explicit no-match / no-skill-needed path. No catalog dump. No autoload.
6. Description feedback (weak / empty only)
When the best match is weak, or paraphrase would work but the description is too narrow:
Description feedback for `{name}`:
- Missed paraphrase: "{user phrasing}"
- Suggested trigger branch: "{one Use when… clause}"At most one feedback block. For skill authors — optional for the user.
No local fit → offer bare help → find-skills only if they may want an uninstalled skill.
Done when: feedback emitted for a real gap, or skipped because quotes were strong.
Hard rules
- Recommend-only — never autoload another skill
- Quote-backed — no quote → no recommend
- Live catalog — never hardcode domain→skill maps
- Never invent a skill name absent from the loaded catalog
- Prefer specific over generic; atomic over flow when one skill suffices
Paraphrase harness
When the user says "run paraphrase cases" / self-check / after editing this skill: load references/paraphrase-cases.md and score every case against the current catalog.
Done when: each case is hit | miss | skipped-not-installed + name + quote used.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

