# Triage

> Move issues and external PRs through triage roles — categorise, verify, grill if needed, write agent-ready briefs.

- Skill: `yugasun/triage` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add yugasun/triage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yugasun/triage/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: yugasun (https://skillmd.com/u/yugasun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yugasun/triage

---


# Triage

State machine for issues (and external PRs if configured in `docs/agents/issue-tracker.md`). Every tracker comment starts with:

> *This was generated by AI during triage.*

Run `/aiops-setup` if triage label mapping is missing.

## Roles

**Category:** `bug` | `enhancement`

**State:** `needs-triage` | `needs-info` | `ready-for-agent` | `ready-for-human` | `wontfix`

One category + one state per item. Label strings may differ — use `docs/agents/triage-labels.md`.

Brief format: [AGENT-BRIEF.md](AGENT-BRIEF.md). Rejections KB: [OUT-OF-SCOPE.md](OUT-OF-SCOPE.md).

## Invocation

Natural language: "what needs attention", "triage #42", "move #42 to ready-for-agent".

## Show attention

Buckets (oldest first): unlabeled, `needs-triage`, `needs-info` with new reporter activity. Tag `[PR]` vs `[issue]` when PRs are in scope.

## Triage one item

1. **Gather** — body, comments, labels, diff (PR). Check `.out-of-scope/` for prior rejections; search codebase for existing implementation.
2. **Recommend** category + state; wait for maintainer.
3. **Verify** — reproduce bug or validate PR claims before grilling.
4. **Grill if needed** — `/grilling` + `/domain-modeling`, update CONTEXT/ADRs inline.
5. **Apply outcome:**
   - `ready-for-agent` / `ready-for-human` — post brief
   - `needs-info` — triage notes (established + questions for reporter)
   - `wontfix` — already implemented (point to code) | rejected bug (close) | rejected enhancement (`.out-of-scope/` then close)

## Quick override

"Move #N to ready-for-agent" — apply directly after confirm; skip grill unless brief missing.

