main

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:

  1. Receives one issue/PR with its metadata
  2. Performs investigation at the requested depth
  3. 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