
Triage
- 373 installs
- 1 repo stars
- Updated May 26, 2026
- camacho/ai-skills
triage is a Claude Code skill that routes GitHub issues through a labeled state machine, writes agent briefs for AFK implementers, and maintains an out-of-scope knowledge base for rejected enhancements.
About
triage is a camacho/ai-skills workflow for moving issue tracker tickets through a structured state machine with two category roles (bug and enhancement) and five state roles: needs-triage, needs-info, ready-for-agent, ready-for-human, and wontfix. Every triage comment must start with a disclaimer that it was generated by AI during triage. For ready-for-agent issues, triage posts structured agent briefs with context, scope, acceptance criteria, relevant file entry points, and constraints; for bugs it attempts reproduction before grilling reporters with /grill-me when installed. Rejected enhancements get documented in .out-of-scope/*.md files to prevent re-litigation. Developers reach for triage when maintaining an open-source or product backlog, preparing issues for autonomous agents, or batch-reviewing incoming bug and feature reports.
- Issue intake state machine
- Priority and severity classification
- Label and ownership assignment
- Backlog grooming rituals
- AFK-ready triage handoffs
Triage by the numbers
- 373 all-time installs (skills.sh)
- Ranked #824 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/camacho/ai-skills --skill triageAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 373 |
|---|---|
| repo stars | ★ 1 |
| Last updated | May 26, 2026 |
| Repository | camacho/ai-skills ↗ |
How do you triage GitHub issues for AI agents?
Route incoming bugs, feature requests, and support signals through a triage state machine to prioritize, label, and assign work efficiently.
Who is it for?
Maintainers routing GitHub issue backlogs who want labeled state-machine triage and AFK-ready agent briefs with reproduction notes.
Skip if: Teams without an issue tracker or who only need one-off bug fixes without workflow labels should skip formal triage automation.
When should I use this skill?
The developer asks to triage issues, review incoming bugs, move a ticket to ready-for-agent, or prepare an AFK agent brief on GitHub.
What you get
Labeled issues, agent brief comments, needs-info triage notes, and out-of-scope markdown files for rejected enhancements
- Labeled triaged issues
- Agent brief or needs-info comments
- Out-of-scope documentation for wontfix items
By the numbers
- Defines 5 state roles and 2 category roles in its triage state machine
- Requires an AI-generated disclaimer on every triage comment and issue
Files
Triage
Move issues on the project issue tracker through a small state machine of triage roles.
Every comment or issue posted to the issue tracker during triage must start with this disclaimer:
> *This was generated by AI during triage.*Reference docs
Agent Briefs
An agent brief is a structured comment posted to an issue that gives an AFK agent everything it needs to implement the fix or feature without human hand-holding. A good agent brief contains:
- Context: why this issue matters, relevant background, links to related issues or ADRs
- Scope: exactly what needs to change — no more, no less
- Acceptance criteria: a checklist of verifiable conditions that define "done"
- Relevant files: key files or modules to read first (not an exhaustive list — just the entry points)
- Constraints: things the agent must NOT do (e.g., don't refactor unrelated code, don't change the public API)
Keep briefs tight. An agent brief is not a tutorial — it is a specification. Assume the agent can read code; don't transcribe the codebase into the brief.
Out-of-Scope Knowledge Base
The .out-of-scope/ directory is a knowledge base of rejected features. Each file is a short markdown document explaining why a particular enhancement was declined. The pattern:
- When closing a
wontfixenhancement, write a file to.out-of-scope/<slug>.mddocumenting the request and the rationale for rejection. - Link to that file from the issue closing comment so future reporters can find the reasoning.
- When triaging a new issue, read
.out-of-scope/*.mdand surface any prior rejection that resembles the current issue — this prevents re-litigating decided questions.
Each .out-of-scope/ file should contain: a one-line summary of the feature request, the date it was declined, the rationale (technical, product, or strategic), and links to the original issue(s).
Roles
Two category roles:
bug— something is brokenenhancement— new feature or improvement
Five state roles:
needs-triage— maintainer needs to evaluateneeds-info— waiting on reporter for more informationready-for-agent— fully specified, ready for an AFK agentready-for-human— needs human implementationwontfix— will not be actioned
Every triaged issue should carry exactly one category role and one state role. If state roles conflict, flag it and ask the maintainer before doing anything else.
These are canonical role names — the actual label strings used in the issue tracker may differ. Check the project's AGENTS.md or existing issue labels to find the mapping.
State transitions: an unlabeled issue normally goes to needs-triage first; from there it moves to needs-info, ready-for-agent, ready-for-human, or wontfix. needs-info returns to needs-triage once the reporter replies. The maintainer can override at any time — flag transitions that look unusual and ask before proceeding.
Invocation
The maintainer invokes /triage and describes what they want in natural language. Interpret the request and act. Examples:
- "Show me anything that needs my attention"
- "Let's look at #42"
- "Move #42 to ready-for-agent"
- "What's ready for agents to pick up?"
Show what needs attention
Query the issue tracker and present three buckets, oldest first:
1. Unlabeled — never triaged. 2. `needs-triage` — evaluation in progress. 3. `needs-info` with reporter activity since the last triage notes — needs re-evaluation.
Show counts and a one-line summary per issue. Let the maintainer pick.
Triage a specific issue
1. Gather context. Read the full issue (body, comments, labels, reporter, dates). Parse any prior triage notes so you don't re-ask resolved questions. Explore the codebase using the project's domain glossary, respecting ADRs in the area. Read .out-of-scope/*.md and surface any prior rejection that resembles this issue.
2. Recommend. Tell the maintainer your category and state recommendation with reasoning, plus a brief codebase summary relevant to the issue. Wait for direction.
3. Reproduce (bugs only). Before any grilling, attempt reproduction: read the reporter's steps, trace the relevant code, run tests or commands. Report what happened — successful repro with code path, failed repro, or insufficient detail (a strong needs-info signal). A confirmed repro makes a much stronger agent brief.
4. Grill (if needed). If the issue needs fleshing out, use a grilling skill if available: invoke /grill-me if it is installed, or ask probing questions directly if no grilling skill is available.
5. Apply the outcome:
ready-for-agent— post an agent brief comment (see Agent Briefs section above).ready-for-human— same structure as an agent brief, but note why it can't be delegated (judgment calls, external access, design decisions, manual testing).needs-info— post triage notes (template below).wontfix(bug) — polite explanation, then close.wontfix(enhancement) — write to.out-of-scope/, link to it from a comment, then close (see Out-of-Scope Knowledge Base section above).needs-triage— apply the role. Optional comment if there's partial progress.
Quick state override
If the maintainer says "move #42 to ready-for-agent", trust them and apply the role directly. Confirm what you're about to do (role changes, comment, close), then act. Skip grilling. If moving to ready-for-agent without a grilling session, ask whether they want to write an agent brief.
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 2Capture everything resolved during grilling under "established so far" so the work isn't lost. Questions must be specific and actionable, not "please provide more info".
Resuming a previous session
If prior triage notes exist on the issue, read them, check whether the reporter has answered any outstanding questions, and present an updated picture before continuing. Don't re-ask resolved questions.
Related skills
How it compares
Pick triage over generic to-issues skills when you need labeled state transitions, reproduction steps, and AFK agent briefs—not just bulk issue creation.
FAQ
What roles does triage apply to issues?
triage assigns one category role (bug or enhancement) and one state role among needs-triage, needs-info, ready-for-agent, ready-for-human, and wontfix. Conflicting state labels are flagged before changes proceed.
What goes in a triage agent brief?
A triage agent brief includes context, exact scope, verifiable acceptance criteria, key file entry points—not a full codebase transcript—and constraints such as avoiding unrelated refactors or public API changes.
How does triage handle rejected enhancements?
triage writes a .out-of-scope/<slug>.md file with the request summary, decline date, rationale, and original issue links, then closes the ticket and surfaces prior rejections when similar issues reappear.