triage
Skill2 starsChanged 3 months agoMITView on GitHub
Move local backlog issues through a triage state machine — read each open issue, sort it into the next canonical status (needs-triage → ready → blocked/done…), set its status frontmatter, and report the board. The triage roles/labels come from PROJECT.md. Operates on the local markdown issue tracker written by /to-issues. TRIGGER when: the user wants to triage the backlog, "what should I work on next", sort/label issues, groom the backlog, or move an issue to a new state. TRIGGER ALSO on the same request phrased as plain work, with this skill unnamed — "is this issue still blocked", "what's actually ready to grab", "the board is out of date" — when the target is the local issue tracker rather than one issue's implementation. DO NOT TRIGGER, above all, on close-out — "I implemented the plans, check everything is done, can I move the epic to done?" is /close-epic, not grooming. This skill looks FORWARD: it sorts work that has not happened yet. Also DO NOT TRIGGER when: the user wants to create issues from a plan (use /to-issues) or implement one (use /implement).
189 other projects use a version of this.
Adopted by
Most recently taken up by
- udecode/platetheir own version, first seen Nov 8, 2026
- vercel-labs/add-skilltheir own version, first seen Nov 8, 2026
- chrysogonus/power-agentstheir own version, first seen Nov 8, 2026
- ishandutta2007/Awesome-Claude-Skillstheir own version, first seen Nov 8, 2026
- Adelie-Squad/solosquadtheir own version, first seen Nov 8, 2026
- cloudflare/vinexttheir own version, first seen Nov 8, 2026
Used with
Projects with it also use writing-beats, setup-matt-pocock-skills and 10 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.
LesaniSkillwriting-beats
Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.
Also in 66 projects that use this
GoogleSkillsetup-matt-pocock-skills
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
Also in 167 projects that use this
liufeng1976Skillsetup-ts-deep-modules
Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.
Also in 42 projects that use this
SethGammonSkillascii-diagram
Generate perfectly aligned ASCII diagrams — architecture, flow, sequence, box-and-arrow. Uses a programmatic character-grid approach so alignment is guaranteed by math, not token prediction. Includes post-render verification.
Also in 4 projects that use this
simo97Skillmigrate-to-shoehorn
Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.
Also in 68 projects that use this
LesaniSkillwriting-shape
Take a markdown file of raw material and shape it into an article through a conversational session — drafting candidate openings, growing the piece paragraph by paragraph, arguing about format (lists, tables, callouts, quotes) at each step. Use when the user has a pile of notes, fragments, or a rough draft and wants help turning it into something publishable.
Also in 63 projects that use this
- +1 more from Lesani
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- mattpocock/skills★ 309ksame name
- withastro/astro★ 64ksame name
- vectorize-io/hindsight★ 60ksame name
- ogulcancelik/herdr★ 47ksame name
- herdrdev/herdr★ 47ksame name
- colinhacks/zod★ 44ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- vercel-labs/add-skill★ 39ksame name
- vercel-labs/skills★ 39ksame name
179 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.
In this repository48 other files it gives its agents.
- analystSkill
- api-designSkill
- arch-healthSkill
- audit-qualitySkill
- audit-securitySkill
- bootstrapSkill
- clean-mvpSkill
- close-epicSkill
- codebase-designSkill
- code-reviewSkill
- decomposeSkill
- deploySkill
- depsSkill
- diagnoseSkill
- discoverSkill
- distillSkill
- domain-modelSkill
- epic-statusSkill
- grillSkill
- grill-with-docsSkill
- handoffSkill
- ideaSkill
- implementSkill
- incidentSkill
- onboardSkill
- perfSkill
- preflightSkill
- prepareSkill
- prompt-masterSkill
- prototypeSkill
- refactorSkill
- retroSkill
- revisitSkill
- rolloutSkill
- scaffoldSkill
- select-techSkill
- spikeSkill
- sweepSkill
- tddSkill
- teardownSkill
- testSkill
- test-specSkill
- threat-modelSkill
- to-issuesSkill
- to-prdSkill
- update-kitSkill
- which-skillSkill
- writing-skillsSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 176 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Routing check before anything else: If the request is about work the user says they have *already finished* ("реализовал/implemented the …
- Very specific: line 43
Read .claude/PROJECT.md — the Issue tracker convention (local.
- Very specific: line 48
If no triage labels are defined yet, propose a sensible default state machine and ask the user to confirm before using it: needs-triage → …
- Very specific: line 51
If CONTEXT.md exists, read it so you reason about issues in the project's vocabulary.
- Very specific: line 83
When the next status is a genuine judgement call (is this *really* ready?
- Distinctive: line 118
Don't advance on vague acceptance: No path to "ready" for an issue whose done-condition isn't verifiable — send it back or split it.
- Distinctive: line 121
Labels from PROJECT.md: Use the project's canonical statuses.
“Common” is measured: kept by at least 6 in 10 of the 176 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
Triage: $ARGUMENTS
Walk the local backlog and move each issue to its correct triage status, so the board reflects reality and "what's next" has an obvious answer. Triage is a small state machine: an issue carries one status at a time and moves forward as it gets clarified, unblocked, or finished.
$ARGUMENTS optionally narrows scope — one issue id, or a status to sweep (e.g. needs-triage).
Empty = triage all open issues.
This skill carries only invariant logic. The issues directory and the triage labels (the
canonical status vocabulary) come from .claude/PROJECT.md.
Routing check before anything else. If the request is about work the user says they have
already finished ("реализовал/implemented the plans — check it's all done, can this go to
done?"), that is /close-epic, not triage: closing verifies what happened, triage sorts what
hasn't. This is the single most frequent misroute into this skill — 7 sessions, corpus
2026-07-31. Say which skill you are routing to and stop; do not groom the board instead.
Phase 0 — Load profile & the label set
- Read
.claude/PROJECT.md— the Issue tracker convention (local; the issues directory) and the triage labels: the canonical statuses and their order (set during/bootstrap). If missing orTEMPLATE, fall back to the rootCLAUDE.md(always in context) when it carries the issues directory and triage labels — note you're running without a kit profile; STOP →/bootstrapfirst only if neither has them.- If no triage labels are defined yet, propose a sensible default state machine and ask the user
to confirm before using it:
needs-triage → ready → in-progress → done, plusblocked(off to the side).
- If no triage labels are defined yet, propose a sensible default state machine and ask the user
to confirm before using it:
- If
CONTEXT.mdexists, read it so you reason about issues in the project's vocabulary.
Phase 1 — Read the board
Glob the issues directory and read each issue's frontmatter (id, title, status,
blocked_by). Build the current board: count by status, and resolve blocked_by — an issue whose
blockers are all done is unblocked and a candidate to advance.
Phase 2 — Triage each issue
Triage owns the grooming transitions — getting an issue ready to be worked. It does not
start or finish work: in-progress and done track work, which the user marks as it happens;
triage only reflects them on the board. Advance only when the entry condition holds:
| From | To | When (triage's job) |
needs-triage | ready | scope is clear, acceptance is verifiable, no unmet blockers |
needs-triage | blocked | depends on an unfinished issue or an external dependency |
blocked | ready | its blocked_by are now all done (or a blocker was removed → treat as unblocked) |
Work states — triage reflects, doesn't drive: ready → in-progress and in-progress → done
track work, not grooming — triage never starts or finishes work itself. Set in-progress when
an issue is picked up and done once its work is verified; the user marks this and triage
reconciles it onto the board (and the index) on the next pass. (/implement stamps the plan
file's status, not the issue's — so nothing else advances an issue to these states.)
Route-out (not a status): an issue that's too big or covers multiple capabilities goes
back to /to-issues to be split — don't force it to ready.
When the next status is a genuine judgement call (is this really ready? is it one slice or
three?), ask the user via AskUserQuestion — present the issue and the candidate move. Don't
silently advance an issue whose acceptance is vague; send it back to needs-triage or /to-issues
instead.
Phase 3 — Apply & report
- Set the
statusfrontmatter on each moved issue (Edit, frontmatter only — never rewrite the body). Update the status column in the index (<issues-dir>/00-index.md) if it exists. - Report the board:
## Triage — <scope>
| Status | Count | Issues |
|--------|-------|--------|
| ready | 3 | 0002, 0004, 0007 |
| blocked| 1 | 0005 (waits on 0004) |
| needs-triage | 2 | 0008, 0009 |
### Moved
- 0004: needs-triage → ready (scope clear, acceptance verifiable)
- 0003: blocked → ready (0001 is done)
### Recommended next
- ⭐ 0002 — <title> (ready, unblocked, highest value) → /prepare 0002 or /implement 0002Hard rules
- One status at a time. Each issue carries exactly one triage label; moving forward replaces it.
- Don't advance on vague acceptance. No path to "ready" for an issue whose done-condition isn't verifiable — send it back or split it.
- Frontmatter only. Triage edits the
statusfield, never the issue body. - Labels from PROJECT.md. Use the project's canonical statuses; don't invent ad-hoc ones.
- Local files only. Operates on the markdown backlog — no external tracker.
See also
/to-issues— creates the issues this skill sorts (and where an over-large issue gets split)./prepare//implement— pick areadyissue and plan/build it; mark the issuedoneonce the work is verified (triage reconciles it on the next pass —/implementonly stamps the plan file)./epic-status— progress over a wave-structured decomposition (one epic directory); triage grooms single issues, epic-status reads an epic's waves.
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.

