triage

star 22.4k

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.

coleam00 By coleam00 schedule Updated 3/5/2026

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

  1. 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.

  2. Fetch target issues — based on the scope above. For each issue, fetch the full body:

    gh issue view {number} --json number,title,body,labels
    
  3. 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
  4. 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
Install via CLI
npx skills add https://github.com/coleam00/Archon --skill triage
Repository Details
star Stars 22,420
call_split Forks 3,386
navigation Branch main
article Path SKILL.md
More from Creator