Automated triage system to move GitHub issues through standardized states.

Install

mkdir -p .claude/skills/github-triage && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11248" && unzip -o skill.zip -d .claude/skills/github-triage && rm skill.zip

Installs to .claude/skills/github-triage

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Triage GitHub issues through a configurable label-based state machine. Use when user wants to triage incoming issues, prepare issues for an autonomous agent, or move an issue between workflow states. Repo inferred from `git remote`; all GitHub calls go through `gh`.
266 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Triage incoming GitHub issues using a state machine
  • Map repository labels to abstract workflow states
  • Prepare issues for autonomous agent processing
  • Enforce mandatory AI disclaimers on all comments
  • Group open issues by triage status

How it works

It uses a state-machine approach to transition issues between labels like triage_pending and ready_for_agent, ensuring every interaction includes a mandatory AI disclaimer.

Inputs & outputs

You give it
GitHub issue URL or repository context
You get back
Labeled issue with updated state and AI disclaimer

When to use github-triage

  • Triage incoming issue reports
  • Prepare issues for agent processing
  • Standardize issue status transitions

About this skill

State-machine triage over GitHub issues and pull requests. Every comment posted carries an AI disclaimer. Label names are configurable; state semantics are not.

AI disclaimer (mandatory)

Every comment or new issue body posted during triage MUST begin with:

> *This was generated by AI during triage.*

No exceptions.

Label map (configure per project)

Bind ODIN's abstract state tokens to your repo's actual label names. Edit this block before first use; defaults match Matt Pocock's upstream convention.

category:
  bug:        "bug"             # something is broken
  enhancement:"enhancement"     # new feature or improvement
state:
  triage_pending:   "needs-triage"     # maintainer must evaluate
  awaiting_info:    "needs-info"       # waiting on reporter
  ready_for_agent:  "ready-for-agent"  # fully specified, autonomous-agent-suitable
  ready_for_human:  "ready-for-human"  # requires human judgment
  wont_fix:         "wontfix"          # closed, not actioned
include_pull_requests: false           # default off; set true to triage external pull requests alongside issues

Body uses the abstract tokens (triage_pending, ready_for_agent, etc.). Replace with your repo's labels at apply time.

Invariants

  • Every issue or pull request carries exactly one category label and one state label.
  • External pull requests are treated as issues with attached code and share the exact same roles, labels, and state machine. Discovery surfaces only external PRs (from forks or non-members); internal PRs are ignored.
  • Conflicting state labels = halt and ask the maintainer which is correct.
  • Maintainer can override any state directly; flag unusual transitions.

State machine

FromToTriggerEffect
unlabeledtriage_pendingskill (first look)applies label after presenting recommendation
unlabeledready_for_agentmaintainerpost agent brief, apply label
unlabeledready_for_humanmaintainerpost task summary, apply label
unlabeledwont_fixmaintainercomment + close
triage_pendingawaiting_infomaintainerpost triage notes capturing progress + reporter questions
triage_pendingready_for_agentmaintainergrilling complete; agent brief; apply label
triage_pendingready_for_humanmaintainergrilling complete; task summary; apply label
triage_pendingwont_fixmaintainercomment + close (or mark redundant/already-implemented)
awaiting_infotriage_pendingskill (reply seen)reporter replied; surface for re-evaluation

Workflows

Overview ("what needs my attention")

Group open issues (and external pull requests, if include_pull_requests: true) into three buckets and display oldest-first:

  1. Unlabeled: never triaged. When include_pull_requests is enabled, discover only external PRs (from forks or external contributors) alongside issues.
  2. triage_pending: needs evaluation or continuation.
  3. awaiting_info with new activity since the last triage-notes comment.

Triage a specific item

  1. Dispatch Explore agent to read full issue/PR + all comments + related code paths (including attached code/diff for PRs).
  2. Check for redundancy: verify whether the requested behavior or PR logic is already implemented in the codebase. If redundant or already satisfied, resolve to wont_fix (closed, not actioned) without polluting the out-of-scope knowledge base.
  3. Present category and state recommendations with reasoning.
  4. Verify the claim: for bugs, attempt reproduction (run repo tests, trace logic); for feature requests or PRs, verify the underlying claims against existing codebase behavior, tests, and diffs.
  5. If underspecified, do a focused domain-model pass: map entities and constraints before re-categorizing.
  6. Apply outcome per state.

awaiting_info comment template

The Triage Notes template (established-so-far / need-from-reporter) lives in references/awaiting-info-template.md — read it when transitioning an issue or pull request to awaiting_info; other transitions (ready_for_agent, ready_for_human, wont_fix) don't need it.

Parallel examples

TypeScript repo: label-map binds ready_for_agent → "agent-ready", awaiting_info → "blocked-on-reporter". State machine and prose unchanged.

Rust repo: label-map binds triage_pending → "S-needs-triage", wont_fix → "C-wont-fix" per Rust-project conventions. State machine and prose unchanged.

When not to use it

  • When state semantics need to deviate from the predefined machine

Limitations

  • State semantics are not configurable
  • Requires exactly one category and one state label per issue

How it compares

It automates the triage process through a configurable label map rather than requiring manual label management for every issue.

Compared to similar skills

github-triage side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
github-triage (this skill)03moNo flagsIntermediate
triage-issue16moReviewIntermediate
proof-of-work16moNo flagsIntermediate
checkpointing05moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

triage-issue

mysticaltech

Use when triaging a GitHub issue - analyzes issue, checks for duplicates, categorizes, and drafts response

12

proof-of-work

MadAppGang

Proof artifact generation patterns for task validation. Covers screenshots, test results, deployments, and confidence scoring.

10

checkpointing

arugo11

Run full session checkpointing from Codex without Claude dependencies. Collect git and CLI activity, generate checkpoint files, update session history, and analyze reusable skill patterns.

00

label-issue

chagong

Classify and label GitHub issues based on repository-specific labeling instructions. Use when (1) auto-labeling new issues, (2) classifying issue types (bug, feature, etc.), (3) adding priority or area labels, (4) applying consistent labeling rules. Triggers on requests like "label issue", "classify

00

resolve-conflicts

antinomyhq

Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.

81334

git-advanced-workflows

wshobson

Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.

1197

Search skills

Search the agent skills registry