using-skills
Route by intent. Every name below is an entry in skills-lock.json, the
installed roster, so a name here always resolves on this machine.
The kernel routing index in ~/.claude/CLAUDE.md binds first. When the kernel
names a trigger — delegation, done/stuck claims, unclear acceptance, retries,
loop-shaped work, code changes, output shape — its route wins. A few of those
skills still get a row below so that every lock name resolves in one place; the
row is a lookup, not a second opinion.
Two hops maximum: using-skills → domain router → member. Never route back
here from inside a domain router. Read the live SKILL.md before acting;
never act from memory of an old roster.
Mode column: Skill() = model-invocable · manual = read its SKILL.md
inline or use its slash command · via-router = enter through the router named.
Hop 1: domain routers
| Router |
Enter it when |
Mode |
using-design-skills |
Anything visual: web page, app screen, HTML deliverable, chart, artifact, motion, plus module and API interface design |
Skill() |
using-workflows |
Loop-shaped work: audit, consensus, triage, plan→build, lifecycle. Owns the 13 recipes in ~/.claude/workflows/; this file does not list them |
Skill() |
using-tmux-agent-tools |
Running a CLI as a tmux worker, or deciding inline versus worker |
Skill() |
Shape an idea before building
| I need to… |
Skill |
Mode |
| explore intent before any creative work (mandatory gate) |
brainstorming |
Skill() |
| diverge in parallel under different cognitive frames |
adhd |
Skill() |
| stress-test a plan or decision in frontier rounds |
grilling |
Skill() |
| pick a flow when the situation is fuzzy or cross-domain |
ask-nova |
manual |
| surface the map/territory gap in unfamiliar territory |
unknowns-discovery |
Skill() |
| build a throwaway prototype to answer a design question |
prototype |
Skill() |
| chart work too big for one session as decision tickets |
wayfinder |
manual |
| re-pitch a message that did not land |
wait-what |
manual |
Write and change code
| I need to… |
Skill |
Mode |
| keep coding discipline: surgical diffs, stated assumptions |
karpathy-guidelines |
Skill() |
| tidy just-written code without changing behavior |
simplify |
Skill() |
| restructure code: extract, rename, break up a god function |
refactor |
Skill() |
| find deepening opportunities across a whole codebase |
improve-codebase-architecture |
manual |
| design a deep module interface |
codebase-design |
Skill() |
| build or sharpen the domain model, CONTEXT.md, an ADR |
domain-modeling |
Skill() |
| build features test-first |
tdd |
Skill() |
| plan test coverage, manual cases, regression suites |
qa-test-planner |
Skill() |
replace as assertions with shoehorn in tests |
migrate-to-shoehorn |
Skill() |
Diagnose and verify
| I need to… |
Skill |
Mode |
| diagnose a hard bug or performance regression inline |
diagnosing-bugs |
Skill() |
| review a diff defect-first, read-only, every finding |
defect-first-review |
Skill() |
| check that work is actually done before claiming it |
verification-before-completion |
Skill() |
| review UI code against Web Interface Guidelines |
web-design-guidelines |
Skill() |
Delegate and orchestrate
| I need to… |
Skill |
Mode |
| write any worker brief (GOAL/ACCEPTANCE/REPORT) |
delegation-templates |
Skill() |
| drive tmux workers: mechanics and wrappers |
tmux-agent-tools |
via-router |
| plan and run an explicitly orchestrated agent workflow |
codex-dynamic-workflows |
via-router |
Read the outside world
| I need to… |
Skill |
Mode |
| read a pasted URL as clean markdown |
defuddle |
Skill() |
| read, fill, merge, or produce a PDF |
pdf |
Skill() |
| investigate a question against primary sources, write it up |
research |
Skill() |
| drive a browser: navigate, fill forms, screenshot |
agent-browser |
Skill() |
| drive an iOS, Android, macOS, or TV app |
agent-device |
Skill() |
| read or drive the Grok Bot macOS app (bots, folders, transcripts) |
using-grok-bot-app |
Skill() |
Write for people to read
| I need to… |
Skill |
Mode |
| turn a fuzzy subject into a finished deliverable (entry point) |
writing-artifacts |
Skill() |
| write in-repo software docs: README, API, tutorial |
documentation-writing |
Skill() |
| mine raw fragments before any structure |
writing-fragments |
manual |
| shape raw material into an article paragraph by paragraph |
writing-shape |
manual |
| assemble material into a journey of beats |
writing-beats |
manual |
| remove AI writing patterns from any prose |
stop-slop |
Skill() |
Visual and HTML output (all through using-design-skills)
Listed so a name resolves, not as a bypass. The router picks the owner.
| Skill |
Owns |
impeccable |
Default authority for product UI: dashboards, forms, app shells, polish, critique |
design-taste-frontend |
Landing pages, portfolios, marketing sites, full redesigns |
high-end-visual-design |
Agency-grade type, spacing, shadow, animation specifics |
apple-design |
Springs, gestures, interruptible motion |
hallmark |
Anti-slop greenfield pages, audits, design extraction from a URL or screenshot |
html |
Self-contained HTML reports, explainers, comparisons, decks |
html-diagram |
One-off or interactive diagrams where motion carries meaning |
html-plan |
Plan pages close to the user's own wording |
diagram-design |
House-style typed diagrams, mermaid and draw.io, PNG/SVG export |
data-report |
CSV, Excel, or JSON into a visual report page |
imagegen-frontend-web |
Website design references, one image per concept |
imagegen-frontend-mobile |
App-native mobile screen concepts and flows |
image-to-code |
Generate the design image first, then build to it |
Git, releases, dependencies
| I need to… |
Skill |
Mode |
| commit with a conventional message and staging |
git-commit |
Skill() |
| resolve an in-progress merge or rebase conflict |
resolving-merge-conflicts |
Skill() |
| audit and update npm or Bun dependencies |
update-deps |
manual |
| review a Renovate PR for supply-chain integrity |
review-renovate |
Skill() |
Session and fleet upkeep
| I need to… |
Skill |
Mode |
| hand off to a fresh session |
session-handoff |
Skill() |
| curate shared Codex memory, or submit findings to it |
shared-memory-intake |
Skill() |
| create, edit, or eval a skill |
skill-creator |
Skill() |
| move issues and external PRs through triage roles |
triage |
manual |
| generate a bash wizard for steps only a human can do |
wizard |
Skill() |
Repo-specific
pierre-guard (guards the @pierre/diffs integration) and
release-plannotator (release notes, version bumps) apply inside the
Plannotator repo only.
Not in this map
Plugin skills live with their plugins, not in skills-lock.json: code-review,
code-simplifier, commit-commands, frontend-design, figma,
session-report, security-guidance, and the rest under
~/.claude/plugins/cache/. The active available-skills listing shows them.
Rules files (~/.agents/rules/*.md) are not skills; the kernel routes them.
Subagent exemption
A worker executing one assigned task does not enter this router. The dispatcher
already routed; the worker follows its brief.
Red flags
Naming one and proceeding anyway needs a stated reason.
- 「這只是小問題,不用 skill」: go direct when the domain is obvious, but do not
skip routing on substantial work.
- 「我記得那支 skill 的內容」: members change. Read the live
SKILL.md first.
- 「先做完再回頭套流程」: for loop-shaped or visual work the router picks the
process first. Retrofitting ships half-done work.
Freshness self-check
This map matches skills-lock.json at its last edit. When a name here does not
resolve, or the listing shows a skill this map omits, confirm before trusting it:
diff <(rg -o '`[a-z][a-z0-9-]+`' ~/.agents/skills/using-skills/SKILL.md | tr -d '`' | sort -u) \
<(jq -r '.skills|keys[]' ~/.agents/.skill-lock.json | sort)
Names in the left column only are stale references or prose. Names in the right
column only are installed skills this map has not placed yet.
Nothing fits
Not loop-shaped, not visual, no intent above: check the active available-skills
listing, then work inline. A new recurring intent goes to the user as a proposal
for a skill or recipe. Never improvise a router inline.
1---2name: using-skills3description: Which skill owns this task. Invoke BEFORE doing by hand any of: merge or rebase conflict, .pdf read or fill, Renovate or dependabot PR, release notes or changelog, test plan or QA cases, dependency upgrade, architecture improvement, second-model review, docs writing, commit message, greenfield page, prose cleanup, 「有沒有 skill」, 「用哪個」 — or any task not named in the kernel routing index. Even a 1% chance a skill covers it means invoke this first; it costs one read.4---56# using-skills78Route by intent. Every name below is an entry in `skills-lock.json`, the9installed roster, so a name here always resolves on this machine.1011The kernel routing index in `~/.claude/CLAUDE.md` binds first. When the kernel12names a trigger — delegation, done/stuck claims, unclear acceptance, retries,13loop-shaped work, code changes, output shape — its route wins. A few of those14skills still get a row below so that every lock name resolves in one place; the15row is a lookup, not a second opinion.1617Two hops maximum: `using-skills` → domain router → member. Never route back18here from inside a domain router. Read the live `SKILL.md` before acting;19never act from memory of an old roster.2021**Mode column**: `Skill()` = model-invocable · `manual` = read its `SKILL.md`22inline or use its slash command · `via-router` = enter through the router named.2324## Hop 1: domain routers2526| Router | Enter it when | Mode |27|---|---|---|28| `using-design-skills` | Anything visual: web page, app screen, HTML deliverable, chart, artifact, motion, plus module and API interface design | Skill() |29| `using-workflows` | Loop-shaped work: audit, consensus, triage, plan→build, lifecycle. Owns the 13 recipes in `~/.claude/workflows/`; this file does not list them | Skill() |30| `using-tmux-agent-tools` | Running a CLI as a tmux worker, or deciding inline versus worker | Skill() |3132## Shape an idea before building3334| I need to… | Skill | Mode |35|---|---|---|36| explore intent before any creative work (mandatory gate) | `brainstorming` | Skill() |37| diverge in parallel under different cognitive frames | `adhd` | Skill() |38| stress-test a plan or decision in frontier rounds | `grilling` | Skill() |39| pick a flow when the situation is fuzzy or cross-domain | `ask-nova` | manual |40| surface the map/territory gap in unfamiliar territory | `unknowns-discovery` | Skill() |41| build a throwaway prototype to answer a design question | `prototype` | Skill() |42| chart work too big for one session as decision tickets | `wayfinder` | manual |43| re-pitch a message that did not land | `wait-what` | manual |4445## Write and change code4647| I need to… | Skill | Mode |48|---|---|---|49| keep coding discipline: surgical diffs, stated assumptions | `karpathy-guidelines` | Skill() |50| tidy just-written code without changing behavior | `simplify` | Skill() |51| restructure code: extract, rename, break up a god function | `refactor` | Skill() |52| find deepening opportunities across a whole codebase | `improve-codebase-architecture` | manual |53| design a deep module interface | `codebase-design` | Skill() |54| build or sharpen the domain model, CONTEXT.md, an ADR | `domain-modeling` | Skill() |55| build features test-first | `tdd` | Skill() |56| plan test coverage, manual cases, regression suites | `qa-test-planner` | Skill() |57| replace `as` assertions with shoehorn in tests | `migrate-to-shoehorn` | Skill() |5859## Diagnose and verify6061| I need to… | Skill | Mode |62|---|---|---|63| diagnose a hard bug or performance regression inline | `diagnosing-bugs` | Skill() |64| review a diff defect-first, read-only, every finding | `defect-first-review` | Skill() |65| check that work is actually done before claiming it | `verification-before-completion` | Skill() |66| review UI code against Web Interface Guidelines | `web-design-guidelines` | Skill() |6768## Delegate and orchestrate6970| I need to… | Skill | Mode |71|---|---|---|72| write any worker brief (GOAL/ACCEPTANCE/REPORT) | `delegation-templates` | Skill() |73| drive tmux workers: mechanics and wrappers | `tmux-agent-tools` | via-router |74| plan and run an explicitly orchestrated agent workflow | `codex-dynamic-workflows` | via-router |7576## Read the outside world7778| I need to… | Skill | Mode |79|---|---|---|80| read a pasted URL as clean markdown | `defuddle` | Skill() |81| read, fill, merge, or produce a PDF | `pdf` | Skill() |82| investigate a question against primary sources, write it up | `research` | Skill() |83| drive a browser: navigate, fill forms, screenshot | `agent-browser` | Skill() |84| drive an iOS, Android, macOS, or TV app | `agent-device` | Skill() |85| read or drive the Grok Bot macOS app (bots, folders, transcripts) | `using-grok-bot-app` | Skill() |8687## Write for people to read8889| I need to… | Skill | Mode |90|---|---|---|91| turn a fuzzy subject into a finished deliverable (entry point) | `writing-artifacts` | Skill() |92| write in-repo software docs: README, API, tutorial | `documentation-writing` | Skill() |93| mine raw fragments before any structure | `writing-fragments` | manual |94| shape raw material into an article paragraph by paragraph | `writing-shape` | manual |95| assemble material into a journey of beats | `writing-beats` | manual |96| remove AI writing patterns from any prose | `stop-slop` | Skill() |9798## Visual and HTML output (all through `using-design-skills`)99100Listed so a name resolves, not as a bypass. The router picks the owner.101102| Skill | Owns |103|---|---|104| `impeccable` | Default authority for product UI: dashboards, forms, app shells, polish, critique |105| `design-taste-frontend` | Landing pages, portfolios, marketing sites, full redesigns |106| `high-end-visual-design` | Agency-grade type, spacing, shadow, animation specifics |107| `apple-design` | Springs, gestures, interruptible motion |108| `hallmark` | Anti-slop greenfield pages, audits, design extraction from a URL or screenshot |109| `html` | Self-contained HTML reports, explainers, comparisons, decks |110| `html-diagram` | One-off or interactive diagrams where motion carries meaning |111| `html-plan` | Plan pages close to the user's own wording |112| `diagram-design` | House-style typed diagrams, mermaid and draw.io, PNG/SVG export |113| `data-report` | CSV, Excel, or JSON into a visual report page |114| `imagegen-frontend-web` | Website design references, one image per concept |115| `imagegen-frontend-mobile` | App-native mobile screen concepts and flows |116| `image-to-code` | Generate the design image first, then build to it |117118## Git, releases, dependencies119120| I need to… | Skill | Mode |121|---|---|---|122| commit with a conventional message and staging | `git-commit` | Skill() |123| resolve an in-progress merge or rebase conflict | `resolving-merge-conflicts` | Skill() |124| audit and update npm or Bun dependencies | `update-deps` | manual |125| review a Renovate PR for supply-chain integrity | `review-renovate` | Skill() |126127## Session and fleet upkeep128129| I need to… | Skill | Mode |130|---|---|---|131| hand off to a fresh session | `session-handoff` | Skill() |132| curate shared Codex memory, or submit findings to it | `shared-memory-intake` | Skill() |133| create, edit, or eval a skill | `skill-creator` | Skill() |134| move issues and external PRs through triage roles | `triage` | manual |135| generate a bash wizard for steps only a human can do | `wizard` | Skill() |136137## Repo-specific138139`pierre-guard` (guards the @pierre/diffs integration) and140`release-plannotator` (release notes, version bumps) apply inside the141Plannotator repo only.142143## Not in this map144145Plugin skills live with their plugins, not in `skills-lock.json`: `code-review`,146`code-simplifier`, `commit-commands`, `frontend-design`, `figma`,147`session-report`, `security-guidance`, and the rest under148`~/.claude/plugins/cache/`. The active available-skills listing shows them.149Rules files (`~/.agents/rules/*.md`) are not skills; the kernel routes them.150151## Subagent exemption152153A worker executing one assigned task does not enter this router. The dispatcher154already routed; the worker follows its brief.155156## Red flags157158Naming one and proceeding anyway needs a stated reason.159160- 「這只是小問題,不用 skill」: go direct when the domain is obvious, but do not161 skip routing on substantial work.162- 「我記得那支 skill 的內容」: members change. Read the live `SKILL.md` first.163- 「先做完再回頭套流程」: for loop-shaped or visual work the router picks the164 process first. Retrofitting ships half-done work.165166## Freshness self-check167168This map matches `skills-lock.json` at its last edit. When a name here does not169resolve, or the listing shows a skill this map omits, confirm before trusting it:170171```bash172diff <(rg -o '`[a-z][a-z0-9-]+`' ~/.agents/skills/using-skills/SKILL.md | tr -d '`' | sort -u) \173 <(jq -r '.skills|keys[]' ~/.agents/.skill-lock.json | sort)174```175176Names in the left column only are stale references or prose. Names in the right177column only are installed skills this map has not placed yet.178179## Nothing fits180181Not loop-shaped, not visual, no intent above: check the active available-skills182listing, then work inline. A new recurring intent goes to the user as a proposal183for a skill or recipe. Never improvise a router inline.