| name | triage |
| description | Triage GitHub issues by applying type, effort, priority, and area labels.
Runs in an isolated context to avoid polluting the main conversation with
issue details. Delegates to a specialized triage agent with label validation hooks.
|
| argument-hint | [unlabeled|all|N|N-M] |
| disable-model-invocation | true |
| context | fork |
| agent | triage-agent |
| allowed-tools | Bash(gh *), Read, Glob, Grep |
Triage GitHub Issues
Triage issues for this repository by applying appropriate labels.
Repository Context
- Current repo: !
gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null || echo "unknown"
- Open issues: !
gh issue list --state open --json number --jq 'length' 2>/dev/null || echo "?"
- Existing labels: !
gh label list --json name -q '.[].name' 2>/dev/null | head -20 || echo "none found"
Scope
Determine which issues to triage based on the arguments: $ARGUMENTS
| Argument | Behavior |
|---|
| (empty) | Only unlabeled issues (default) |
unlabeled | Only issues without any labels |
all | All open issues |
N | Specific issue (e.g., 67) |
N-M | Range of issues inclusive (e.g., 60-67) |
Process
-
Fetch available labels — run gh label list --json name,description to understand
the label taxonomy. Labels are organized into type, effort, priority, and area categories.
-
Fetch target issues — based on the scope above. For each issue, fetch the full body:
gh issue view {number} --json number,title,body,labels
-
For each issue:
-
Output a triage summary:
## Triage Summary
| Issue | Title | Labels Applied | Reasoning |
|-------|-------|----------------|-----------|
| #67 | ... | bug, effort/low, P1, core.config | ... |
**Totals:**
- Issues triaged: X
- Already labeled (skipped): Y
- By priority: P0(n), P1(n), P2(n), P3(n)
## Relationships Discovered
| Issues | Relationship | Notes |
|--------|--------------|-------|
| #61, #62 | Related | Both involve config/logging UX |
Rules
- Don't hardcode labels — always fetch current labels first, they may change
- Respect existing labels — don't remove labels, only add missing ones
- Check issue body — titles alone aren't enough context
- Use the codebase — if understanding a relationship requires seeing how modules connect, look
- When uncertain, note it — flag ambiguous issues in the summary rather than guessing