Move issues on the project issue tracker through the triage roles of a small state machine.
Every comment or issue posted to the issue tracker during triage mustbegin with this disclaimer:
> *这是在分类期间由 AI 生成的。*
Reference documentation
- AGENT-BRIEF.md— how to write durable agent briefs
- OUT-OF-SCOPE.md——
.out-of-scope/how the knowledge base works
Roles
Twocategoriesof roles:
bug— something is brokenenhancement— a new feature or improvement
Fivestatesof roles:
needs-triage— maintainer needs to evaluateneeds-info— waiting for the reporter to provide more informationready-for-agent— fully specified, ready for an AFK agent to pick upready-for-human— needs human implementationwontfix— will not be acted on
Every triaged issue should carry exactly one category role and one state role. If the state roles conflict, flag it and ask the maintainer before doing anything else.
These are the canonical role names—the actual label strings used in the issue tracker may differ. The mapping should already have been provided to you—if not, run /setup-matt-pocock-skills。
State transitions: an unlabeled issue usually first goes to needs-triage; from there it moves to needs-info、ready-for-agent、ready-for-human or wontfix. Once the reporter replies,needs-info returns to needs-triage. The maintainer can override at any time—flag transitions that look unusual and ask before continuing.
Invocation
The maintainer invokes /triage and describes what they want in natural language. Interpret the request and act. Examples:
- "show anything that needs attention"
- "let's look at #42"
- "move #42 to ready-for-agent"
- "what's ready for an agent to pick up?"
Show what needs attention
Query the issue tracker and show three buckets, oldest first:
- Unlabeled— never triaged.
needs-triage— evaluation in progress.needs-infoand has reporter activity since the last triage note— needs re-evaluation.
Show counts and a one-line summary for each issue. Let the maintainer choose.
Triage a specific issue
-
Gather context. Read the full issue (body, comments, labels, reporter, dates). Parse any prior triage notes so you don't re-ask questions that have already been resolved. Explore the codebase using the project's domain glossary, respecting the ADRs for that area. Read
.out-of-scope/*.mdand show any prior rejections similar to this issue. -
Recommend. Tell the maintainer your category and state recommendation with reasoning, plus a brief codebase summary relevant to the issue. Wait for instructions.
-
Reproduce (bugs only). Before any grilling, try to reproduce: read the reporter's steps, trace the relevant code, run tests or commands. Report what happened—successful reproduction with the code path, failed reproduction, or insufficient detail (a strong
needs-infosignal). Confirmed reproductions make the agent brief stronger. -
Grill (if needed). If the issue needs fleshing out, run
/grill-with-docssession. -
Apply the result:
ready-for-agent— post the agent brief comment (AGENT-BRIEF.md)。ready-for-human— same structure as the agent brief, but explain why it cannot be delegated (judgment calls, external access, design decisions, manual testing).needs-info— post the triage note (template below).wontfix(bug) — explain politely, then close.wontfix(enhancement) — write to.out-of-scope/, link to it from the comment, then close (OUT-OF-SCOPE.md)。needs-triage— apply the role. If there is partial progress, optionally comment.
Quick status override
If the maintainer says "move #42 to ready-for-agent", trust them and apply the role directly. Confirm what you are about to do (role change, comment, close), then act. Skip grilling. If moving to ready-for-agentwithout a grilling session, ask whether they want an agent brief written.
Needs-info template
## 分类笔记
**到目前为止我们已确定的:**
- 点 1
- 点 2
**我们仍然需要从你(@reporter)那里得到的:**
- 问题 1
- 问题 2
Capture everything resolved during grilling under "Determined so far" so that work is not lost. Questions must be specific and actionable, not "please provide more information".
Resume a previous session
If previous triage notes exist on the issue, read them, check whether the reporter has answered any outstanding questions, and present the updated picture before continuing. Do not re-ask questions that have already been resolved.