Github triage
Outline-Driven Development for Claude Code - 46 agents, 25+ skills, diagram-first methodology, AST-based editing, atomic commits.
npx -y skills add OutlineDriven/odin-claude-plugin --skill github-triageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Triage GitHub issues. Use when the user wants to triage incoming issues, prepare issues for an autonomous agent, or move an issue between workflow states.
SKILL.md
4.3 KB, 843 tokens by cl100k_base, as published. Nobody here has run it
State-machine triage over GitHub issues. 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
Body uses the abstract tokens (triage_pending, ready_for_agent, etc.). Replace with your repo's labels at apply time.
Invariants
- Every issue carries exactly one
categorylabel and onestatelabel. - Conflicting state labels = halt and ask the maintainer which is correct.
- Maintainer can override any state directly; flag unusual transitions.
State machine
| From | To | Trigger | Effect |
|---|---|---|---|
| unlabeled | triage_pending | skill (first look) | applies label after presenting recommendation |
| unlabeled | ready_for_agent | maintainer | post agent brief, apply label |
| unlabeled | ready_for_human | maintainer | post task summary, apply label |
| unlabeled | wont_fix | maintainer | comment + close |
| triage_pending | awaiting_info | maintainer | post triage notes capturing progress + reporter questions |
| triage_pending | ready_for_agent | maintainer | grilling complete; agent brief; apply label |
| triage_pending | ready_for_human | maintainer | grilling complete; task summary; apply label |
| triage_pending | wont_fix | maintainer | comment + close |
| awaiting_info | triage_pending | skill (reply seen) | reporter replied; surface for re-evaluation |
Workflows
Overview ("what needs my attention")
Group open issues into three buckets and display oldest-first:
- Unlabeled: never triaged.
triage_pending: needs evaluation or continuation.awaiting_infowith new activity since the last triage-notes comment.
Triage a specific issue
- Dispatch Explore agent to read full issue + all comments + related code paths.
- Present category and state recommendations with reasoning.
- For bugs: attempt reproduction. Run repo tests, trace logic.
- If underspecified, do a focused domain-model pass: map entities and constraints before re-categorizing.
- 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 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.
Gives 0 of the 12 instructions most debug triage skills give in 843 tokens
Counted across 839 of the 1,149 authors here whose files we hold, read 2026-08-06
- investigate root cause before proposing any fixin 102 of 839, across 65 files
- read error messages completelyin 90 of 839, across 48 files
- create a failing test case before fixingin 84 of 839, across 44 files
- reproduce the issue consistentlyin 82 of 839, across 40 files
- change one variable at a timein 82 of 839, across 42 files
- check recent changesin 74 of 839, across 35 files
- write the regression test before fixingin 74 of 839, across 36 files
- fix the root cause not the symptomin 60 of 839, across 43 files
- implement a single fix at a timein 59 of 839, across 20 files
- trace data flow backward to the sourcein 50 of 839, across 20 files
- remove all debug instrumentationin 49 of 839, across 13 files
- form a single hypothesisin 48 of 839, across 18 files
Said here and by no other author read
- Flag unusual state transitions
- Read the full issue and related code paths
- Map entities and constraints if the issue is underspecified
- Read the template file before transitioning to awaiting_info
- Post task summaries for ready_for_human transitions
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.