| name | triage |
| description | Move issues and external PRs through a state machine of triage roles — categorise, verify, grill if needed, and write agent-ready briefs. |
| disable-model-invocation | true |
Triage
Issue tracker + label mapping should exist; run /zoo-setup-matt-pocock-skills if missing.
Every posted issue/PR/comment MUST start:
> *This was generated by AI during triage.*
If this repo treats external pull requests as a request surface (see issue-tracker config), triage covers them too: a PR is an issue with attached code — same roles, same states, same machine, with deltas marked "for a PR" below. Resolve bare #42 to issue or PR per tracker config.
Roles
Category: bug, enhancement.
State: needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix.
Rules:
- Each triaged issue/PR gets exactly one category + one state.
- State label conflict → ask maintainer.
- Flow: unlabeled →
needs-triage → other state.
needs-info returns to needs-triage after reporter reply.
- Maintainer may override.
For a PR, same states read against attached code: ready-for-agent = brief attached, agent takes next step on diff; ready-for-human = ready for merge.
Attention queue
Query tracker; show oldest first:
- Unlabeled.
needs-triage.
needs-info with reporter activity after triage notes.
Show counts + one-line summaries. Let maintainer pick.
Specific issue or PR
- Gather full body/comments/labels/author/dates; prior triage notes; relevant code/glossary/ADRs. For a PR, read the diff too. Two checks: (a) redundancy — search for existing implementation by domain concept; report where looked. If found,
wontfix (already-implemented). (b) prior rejection — read .out-of-scope/*.md matches.
- Recommend category + state with reasoning + codebase summary, including whether already implemented.
- Wait for direction.
- Verify the claim: bugs → reproduce from reporter steps; PRs → confirm diff does what it claims, run relevant tests/commands. Report result (confirmed/failed/insufficient detail — strong
needs-info signal).
- If underspecified, run the
/grilling and /domain-modeling skills together — grill into shape one question at a time, sharpening domain terms and updating CONTEXT.md/ADRs inline as decisions land.
Outcomes
ready-for-agent: post agent brief from AGENT-BRIEF.md.
ready-for-human: same; include why human needed.
needs-info: post triage notes template.
wontfix:
- Already implemented: point to where it lives; do NOT write to
.out-of-scope/.
- Bug rejected: comment + close.
- Enhancement rejected: update
.out-of-scope/, comment, close.
needs-triage: apply role; optional progress comment.
Quick override
- Trust maintainer.
- Confirm role/comment/close actions.
- Apply labels directly.
- Skip grilling.
- If
ready-for-agent without brief, ask whether to write one.
Needs-info template
## Triage Notes
**What we've established so far:**
- point 1
- point 2
**What we still need from you (@reporter):**
- question 1
- question 2
Rules: capture resolved info; ask specific/actionable questions; on resume, do not re-ask answered questions.
Complete
Call attempt_completion with:
- issues triaged (count, outcomes applied)
- status (complete / blocked with reason)
- recommended next command
Do NOT use ask_followup_question or write results as plain text without calling the tool.