name: github-triage description: “GitHub issue and PR triage across repos and orgs. Classifies, investigates, and drafts responses with approval gates. USE WHEN user says ’triage’, ’triage issues’, ’triage PRs’, ‘github triage’, or wants to process open issues/PRs across GitHub repositories.”
GitHubTriage
Structured triage of GitHub issues and PRs with two operating modes, three investigation depths, and approval gates before any visible action.
Modes
| Mode | Behavior |
|---|---|
| analyze | Read-only. Fetches, classifies, investigates. Produces a report. Never touches GitHub. |
| act | Interactive. Same analysis, then walks through proposed actions one by one with explicit user approval before each GitHub-visible action (comment, label, close). |
Default mode is analyze. User must explicitly request act mode.
Workflow Routing
| Workflow | Trigger | File |
|---|---|---|
| Triage | “triage”, “triage issues”, “triage PRs”, “github triage” | workflows/Triage.md |
| SingleIssue | “triage #123”, “analyze issue #N”, “look at this issue” | workflows/SingleIssue.md |
Depth Levels
| Depth | What it does | When to use |
|---|---|---|
| shallow | Read issue body + comments, classify, summarize | Quick scan of a large backlog |
| medium (default) | + search codebase for relevant files, error messages, stack traces | Standard triage |
| deep | + trace code paths, form root cause hypothesis with file:line refs, suggest fix | Focused investigation of a specific bug |
Repo Detection
| Invocation | Behavior |
|---|---|
| No args | Uses current repo (from gh repo view or git remote) |
| Explicit repos | "triage tektoncd/pipeline tektoncd/triggers" |
| Org sweep | "triage org:tektoncd" — searches all repos in org |
Label Taxonomy (CNCF/Kubernetes Convention)
The skill understands the standard label scheme used by Kubernetes-ecosystem projects (tektoncd, knative, openshift-pipelines, etc.):
Classification Labels
| Prefix | Labels | Meaning |
|---|---|---|
kind/ |
bug, feature, question, flake, cleanup, documentation, design, api-change, failing-test |
What type of issue this is |
priority/ |
critical-urgent, important-soon, important-longterm, backlog, awaiting-more-evidence |
How urgent |
area/ |
api, testing, test-infra, dependency, yamls |
Which subsystem |
triage/ |
needs-information, unresolved, duplicate, support |
Triage status |
lifecycle/ |
active, frozen, stale, rotten |
Issue lifecycle |
Discovery
At runtime, the skill fetches available labels with gh label list to verify which labels actually exist on the target repo before suggesting any.
Parallel Processing with Subagents
For multi-issue triage, the skill delegates per-issue investigation via pi’s subagent tool in parallel mode.
Agent Selection by Depth
| Depth | Agent | Model | Use |
|---|---|---|---|
| shallow | No subagent (or github-triage-analyzer for light search) |
haiku | Orchestrator classifies from title/body/labels directly |
| medium | github-triage-analyzer |
sonnet | Grep codebase, identify relevant files, summarize |
| deep | github-triage-deep |
opus | Trace code paths, root cause analysis, suggest fixes |
Parallel Limits
Default pi subagent limits: 8 tasks per parallel call, 4 concurrent (configurable in ~/.pi/agent/extensions/subagent/index.ts). For large triage runs:
- ≤8 items to investigate: single parallel batch
- >8 items: split into batches of 8, run sequentially
Each subagent:
- Receives one issue/PR with its metadata
- Performs investigation at the requested depth
- Returns structured findings (classification, relevant code, draft response)
The orchestrator aggregates results into a triage report.
Examples
Example 1: Analyze mode (default)
User: "triage tektoncd/pipeline"
→ Fetches open issues + PRs
→ Classifies each by kind, priority
→ Investigates at medium depth (parallel subagents)
→ Produces triage report with recommendations
→ No GitHub actions taken
Example 2: Act mode with approval
User: "triage tektoncd/pipeline --act"
→ Same analysis as above
→ For each proposed action, asks:
"Label #9438 as kind/bug priority/important-soon? [y/n]"
"Post this comment on #9423? [y/n]" (shows draft)
→ Only executes approved actions
Example 3: Single issue, deep investigation
User: "analyze issue tektoncd/pipeline#9438 --deep"
→ Reads issue + comments
→ Clones/checks out repo, searches codebase
→ Traces relevant code paths
→ Produces root cause hypothesis with file:line references
→ Suggests fix approach
Example 4: Org sweep, shallow
User: "triage org:tektoncd --shallow"
→ Finds all repos with open issues in tektoncd org
→ Quick classification pass (no codebase search)
→ Produces priority-sorted list across all repos