github-triage
Skill0 starsChanged 5 months agoMITView on GitHub
Use when the user types triage or asks to triage GitHub issues, PRs, queues, CI, blockers, risk, proof, next actions, or autonomous GitHub maintainer work.
9 other projects use a version of this.
Adopted by
Most recently taken up by
- code-yeongyu/oh-my-openagenttheir own version, first seen Nov 5, 2026
- AlvaroVFon/skillstheir own version, first seen Nov 1, 2026
- UtsavBalar1231/oh-my-claudeagenttheir own version, first seen Oct 12, 2026
- NISTALTALSON/essential-claude-skillstheir own version, first seen Oct 11, 2026
- freerouting/freeroutingtheir own version, first seen Oct 8, 2026
- code-yeongyu/oh-my-opencodetheir own version, first seen Oct 8, 2026
Used with
Projects with it also use improve-codebase-architecture and tdd.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
GoogleSkillimprove-codebase-architecture
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
Also in 3 projects that use this
GoogleSkilltdd
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
Also in 3 projects that use this
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- code-yeongyu/oh-my-opencode★ 71ksame name
- code-yeongyu/oh-my-openagent★ 71ksame name
- freerouting/freerouting★ 2.2ksame name
- qhuang20/shazam★ 4same name
- UtsavBalar1231/oh-my-claudeagent★ 3same name
- AlvaroVFon/skills★ 2same name
- witi-projects/Skills★ 2same name
- NISTALTALSON/essential-claude-skills★ 1same name
- yunseo-kim/agent-toolbox★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- diagnoseSkill
- terse-commitSkill
- workflow-graduationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. 0 are common, 18 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
18
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use this skill when the user types triage, asks about GitHub issues/PRs/queues, or says do work autonomously, keep going, or fix what you …
- Very specific: line 27
Default (current repo): If cwd is a git repo with a GitHub remote, triage only that project unless the user says broad, all, everything, or …
- Distinctive: line 31
No remote: If the local project has no GitHub remote, say triage is N/A and offer to create/push a repo first.
- Distinctive: line 55
Before starting work inside any local project:
- Distinctive: line 64
If not on the default branch (main or repo default), stop and ask unless the user already authorized work on that branch.
- Distinctive: line 72
If pull fails, stop and report.
- Distinctive: line 76
Read in order when present:
- Distinctive: line 82
Use these as product-fit source of truth before judging autonomous fit.
- Distinctive: line 93
Before acting on any item, read all comments.
- Distinctive: line 105
Only comment, close, merge, rerun, or patch with strong evidence.
- Distinctive: line 191
Read issue/PR, related code, docs, CI, and product-fit files.
- Distinctive: line 195
Refactor: prefer clean bounded refactor when it is the better fix.
- Distinctive: line 198
Run review: Bugbot or security-review subagent for non-trivial changes.
- Distinctive: line 199
Ensure CI green; good PR description/changelog.
- Distinctive: line 203
Do not end with dirty files or unpushed fixes unless blocked.
- Very specific: line 216
Test the final candidate through the changed user path with real built artifact and real service/device/OS as applicable.
- Very specific: line 219
If creds/hardware unavailable, finish code/tests/CI, then stop and ask with a decision brief.
- Very specific: line 224
Never ask the maintainer to land/delete/approve with only a URL.
- Distinctive: line 226
Every decision request must include:
- Distinctive: line 236
If autonomous work remains, do that first — report as active, not premature decision.
- Very specific: line 290
When the user asks to act, inspect selected items with gh, rerun/fix CI when authorized, comment/close/merge only with evidence, and report …
- Distinctive: line 294
Check only the exact expected environment variable.
- Distinctive: line 295
Never broadly enumerate secrets or print values.
- Distinctive: line 296
Ask the user only after targeted env check fails or interactive unlock is required.
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
GitHub Triage
Use this skill when the user types triage, asks about GitHub issues/PRs/queues, or says do work autonomously, keep going, or fix what you can on GitHub.
Triage means maintainer-facing item cards: URL, what each issue/PR is about, why it matters, author trust, fit, risk, proof/test state, blockers, and next action. Never return only queue numbers or opaque refs.
Output is URL-first: every surfaced issue/PR/repo item must include its full GitHub URL in the first line or first sentence for that item.
Adapted from steipete/agent-scripts; gh-only triage workflow.
Modes
| Mode | Triggers | Permission |
| Triage | triage, queue summary, next actions | Read-only analysis; no edits |
| Autonomous | do work autonomously, keep going, fix what you can on GitHub | Implement + verify locally; push/merge/close only when explicitly authorized |
Triage alone is not permission to mutate GitHub or local repos.
Scope
Default (current repo): If cwd is a git repo with a GitHub remote, triage only that project unless the user says broad, all, everything, or names multiple repos.
Broad: Scan all repos visible to gh (owned, collaborator, org — including private when token allows).
No remote: If the local project has no GitHub remote, say triage is N/A and offer to create/push a repo first.
Setup
Verify gh auth:
gh auth statusResolve current repo:
repo=$(gh repo view --json nameWithOwner --jq .nameWithOwner 2>/dev/null || true)
if [ -z "$repo" ]; then
url=$(git remote get-url origin 2>/dev/null || true)
repo=$(printf '%s\n' "$url" |
sed -E 's#^git@github.com:##; s#^https://github.com/##; s#\.git$##')
fi
printf '%s\n' "$repo"Local Repo Gate
Before starting work inside any local project:
git status --short --branch
git branch --show-currentProceed only when the worktree is clean. If dirty, stop and ask the user what to do. Do not stash, commit, reset, restore, or clean without explicit direction.
If not on the default branch (main or repo default), stop and ask unless the user already authorized work on that branch.
For autonomous work that needs latest main:
git pull --ff-onlyIf pull fails, stop and report.
Product Fit
Read in order when present:
VISION.mdREADME.mdAGENTS.md/CLAUDE.md
Use these as product-fit source of truth before judging autonomous fit.
Current-Project Triage
gh issue list --repo "$repo" --state open --limit 50 \
--json number,title,author,labels,createdAt,updatedAt,url
gh pr list --repo "$repo" --state open --limit 50 \
--json number,title,author,isDraft,reviewDecision,mergeStateStatus,createdAt,updatedAt,urlBefore acting on any item, read all comments. Maintainer comments are authoritative — they override bot labels and ordinary triage judgment. If the maintainer says it looks good, needs changes, is superseded, or is not wanted, follow that.
For small queues (about 10 open items or fewer), inspect all items. For larger queues, inspect the top priority slice and say what was not expanded.
gh issue view <n> --repo "$repo" \
--json number,title,author,body,comments,labels,createdAt,updatedAt,url
gh pr view <n> --repo "$repo" \
--json number,title,author,body,comments,files,commits,isDraft,reviewDecision,mergeStateStatus,statusCheckRollup,createdAt,updatedAt,url
gh pr diff <n> --repo "$repo" --patchOnly comment, close, merge, rerun, or patch with strong evidence.
Broad Queue Scan (gh-only)
List repos with open work, sorted by PR count then issues:
gh repo list --limit 200 --json nameWithOwner,issues,pullRequests,isPrivate,updatedAt \
--jq '[.[] | select(.issues.totalCount > 0 or .pullRequests.totalCount > 0)]
| sort_by(-.pullRequests.totalCount, -.issues.totalCount)
| .[] | {repo: .nameWithOwner, issues: .issues.totalCount, prs: .pullRequests.totalCount, private: .isPrivate}'Detail pass for top repos:
gh issue list --repo <owner/name> --state open --limit 50 --json number,title,author,url,updatedAt
gh pr list --repo <owner/name> --state open --limit 50 --json number,title,author,isDraft,url,updatedAt
gh run list --repo <owner/name> --limit 10For mergeable or suspicious PRs:
gh pr view <n> --repo <owner/name> --json number,title,state,author,isDraft,mergeStateStatus,reviewDecision,statusCheckRollup,updatedAt,url
gh pr diff <n> --repo <owner/name> --patch
gh run list --repo <owner/name> --branch <branch> --limit 10Triage Output
Return three buckets:
- Autonomous candidates: fixable/landable without more product input — URL, why it qualifies, required verification, confidence. Selection for review, not permission to start unless the user also asked for autonomous execution.
- Needs maintainer: blocked on product direction, credentials/access, live proof unavailable, security/privacy judgment, or maintainer comment requesting changes.
- Defer/close/supersede: stale, duplicate, lower-quality, or overlapping items.
For plausible autonomous candidates on risky PRs (security, broad diff, new account), optionally spawn a Task subagent for trust/feasibility review before presenting.
Item Evaluation
Classify each item:
| Type | Requirements |
bug | Repro/log/failing test/current-main proof; root cause before fix |
feature | E2E test plan; state missing creds/access explicitly |
dependency | Package group, semver risk, failing checks, split recommendation |
security | High priority; careful code-path proof; no merge on rationale alone |
docs/internal | Lower risk; note user-visible relevance |
Judge: Fit (good/mixed/poor), Risk (low/medium/high), Proof (CI/repro/E2E/missing), Blocker, Next action.
Trust Signals
For non-maintainer items you recommend acting on, include author trust:
./scripts/github-activity.sh --repo <owner/repo> --global <login>Trust changes review depth, not correctness. Do not treat trust as proof.
Permission Ladder
Separate permissions explicitly:
| Permission | What it allows |
| Triage / monitor | Read queue, CI, diffs — no edits |
| Autonomous implement | Local changes, tests, live proof |
| Push | Push branch / update PR |
| CI fix | Rerun workflows, repair CI failures |
| Merge/close | Merge PR, close issue, comment as land proof |
| Release | Version bump, tag, publish |
Without required permission, stop at the last authorized boundary and report the exact next action needed.
The user saying land it, merge, or push counts as explicit authorization for that action.
Autonomous Work Mode
When the user authorizes autonomous work, do not stop after a queue summary or one local patch. Process the eligible queue sequentially, one item at a time, until no safe autonomous item remains, each item is landed/closed/deferred with proof, or a blocker requires the user.
For each item:
- Read issue/PR, related code, docs, CI, and product-fit files; use official docs when facts may be stale.
- Decide autonomous fit:
- Go: performance (unless complexity spikes); bugfixes with repro; small UI/docs; narrow test/CI fixes; low-risk deps.
- Ask first: new features, product choices, broad behavior changes, security without proof, live-provider work without creds, anything not E2E testable.
- Refactor: prefer clean bounded refactor when it is the better fix.
- Implement or fix PR in the best maintainable way. Prefer updating contributor PR when writable; preserve credit.
- Live proof on the real boundary (device/audio, browser, API with real creds when available). If access missing, stop before claiming done.
- Run review: Bugbot or security-review subagent for non-trivial changes; address actionable findings.
- Ensure CI green; good PR description/changelog. If push authorized, push. If merge authorized, land with proof comment.
- Post PR comment with exactly how it was tested: commands, live proof, CI state, landed commit, caveats.
- Return to default branch,
git pull --ff-only, verify clean worktree, then next item.
Do not end with dirty files or unpushed fixes unless blocked. If blocked, state exact blocker, branch/status, proof gathered, and decision needed.
Integrate — do not duplicate:
- PR merge-ready loop →
a PR babysit automation (see agent-loop-runner) - CI failures →
gh-fix-ciwhen available - Done claims → verification-before-completion
- Commits →
your commit message conventions
Live Proof Gate
Live proof is required before merge/close, not optional polish.
- Test the final candidate through the changed user path with real built artifact and real service/device/OS as applicable.
- Mocks, fixtures, and CI supplement but do not replace live proof for runtime changes.
- Redact secrets; keep concrete evidence (command, behavior, response class, state transition).
- If creds/hardware unavailable, finish code/tests/CI, then stop and ask with a decision brief.
- Docs/CI/test-only changes: use closest built-artifact or workflow proof; state why no external boundary applies.
Owner Decision Brief
Never ask the maintainer to land/delete/approve with only a URL.
Every decision request must include:
- Full canonical clickable URL and title
- Plain-language what changes and who benefits
- Why the decision is needed now
- Completed proof: repro, live test, tests, review, CI, mergeability
- Tradeoffs, residual risks, scope concerns
- Recommendation and rationale
- Exact choices and what each does
If autonomous work remains, do that first — report as active, not premature decision.
Triage Heuristics
Prioritize: green/near-green CI PRs; reproducible bugs; security/release/auth/CI/data-loss; dependency/docs with clear path.
Deprioritize: archived repos (unless asked); old broad features without repro; provider PRs needing unavailable API keys; generated churn without user problem.
Output Shape
Current-project triage:
Repo: owner/name
Source: gh list/view/diff/checks, local source/tests where inspected
Autonomous candidates:
- https://github.com/owner/repo/pull/123 — title
What: one-line summary.
Type/Fit/Risk: bug; good; low because ...
Trust: @login; acct date; repo/global activity; known/unknown/bot.
Proof: CI/repro/test/e2e state.
Blocker: none / ...
Next: exact action.
Needs maintainer:
- https://github.com/owner/repo/issues/124 — ...
Defer/close:
- https://github.com/owner/repo/issues/125 — ...
Skipped:
- <why>Broad scan:
Owners/repos scanned: <summary>
Source: gh repo list + gh detail for selected repos
Top queues:
- owner/repo: X issues, Y PRs; why it matters; next action
Autonomous candidates:
- <URL-first items>
Needs maintainer:
- <URL-first items>
Skipped:
- archived/no access/etc.When the user asks to act, inspect selected items with gh, rerun/fix CI when authorized, comment/close/merge only with evidence, and report exact commands/proof.
Credential Access
- Check only the exact expected environment variable; use only when already exported.
- Never broadly enumerate secrets or print values.
- Ask the user only after targeted env check fails or interactive unlock is required.
- Report presence, access path, and exact missing approval — never send credentials between threads.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

