triage
Installation
SKILL.md
Contains Shell Commands
This skill contains shell command directives (!`command`) that may execute system commands. Review carefully before installing.
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,descriptionto 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:
- Read the title and full body carefully
- If needed, explore the codebase (
Glob,Grep,Read) to understand the affected code - Classify: one type, one effort, one priority, one or more areas
- Track relationships with other issues (duplicates, related, blocking)
- Apply labels:
gh issue edit {number} --add-label "type,effort/level,P#,area.domain" - Skip issues that already have complete labeling (type + effort + priority + area)
- For partially labeled issues, only add missing label categories
-
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