github-triage
Skill3 starsChanged 32 days agoMITView on GitHub
Use to triage open GitHub issues and PRs in parallel, read-only, one executor per item (\"triage issues\", \"review open PRs\").
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
- 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
- TonkaToyXL/cursor-agent-skillstheir own version, first seen Jun 14, 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
- AlvaroVFon/skills★ 2same name
- witi-projects/Skills★ 2same name
- NISTALTALSON/essential-claude-skills★ 1same name
- yunseo-kim/agent-toolbox★ 1same name
- TonkaToyXL/cursor-agent-skills★ 0same 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 repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- hooks/AGENTS.mdAGENTS.md
- opencode/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- servers/AGENTS.mdAGENTS.md
- skills/AGENTS.mdAGENTS.md
- statusline/AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- tests/AGENTS.mdAGENTS.md
- analyzerSkill
- build-fixerSkill
- consolidate-memorySkill
- debuggingSkill
- git-masterSkill
- handoffSkill
- init-deepSkill
- omca-setupSkill
- planSkill
- refactorSkill
- remove-ai-slopsSkill
- reviewerSkill
- start-workSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Use gh issue list, gh issue view, gh pr list, gh pr view, gh repo view and gh api --method GET.
- Very specific: line 35
Leave bodies and comments for the workers, because control characters in them can break a large listing.
- Distinctive: line 39
Use the title, labels, author and PR fields, without opening the item.
- Very specific: line 97
Read every issue-*.md and pr-*.md report in {OUTDIR}, then write {OUTDIR}/SUMMARY.md with:
“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
Go through a repository's open issues and pull requests and tell the maintainer what each one needs. The maintainer makes every decision, so a triage run changes nothing on GitHub or in the repository. The only files it writes are reports under .omca/scratch/github-triage-{datetime}/ in the project root.
Read-only commands
Use gh issue list, gh issue view, gh pr list, gh pr view, gh repo view and gh api --method GET. Any command that merges, closes, edits, comments on, labels or reviews an item is out, as is gh api with a method that writes. Workers do not run git checkout or git fetch.
Citations
A claim about code cites a GitHub permalink pinned to a commit SHA: https://github.com/{REPO}/blob/{SHA}/path/to/file.py#L42. A link through a branch name does not count, since the line it points at moves. A claim with no such link is marked UNVERIFIED.
1. Choose the output directory
Set {OUTDIR} to the absolute path <project root>/.omca/scratch/github-triage-<datetime>, with <datetime> as YYYYMMDD-HHMMSS. When the session gives only the date, add a short word of your own so two runs in one day stay apart. The Write tool creates the directory with the first report, and OMCA's server keeps .omca/ out of commits. Tell the user the path now.
2. Fetch metadata
With no repo argument, gh repo view --json nameWithOwner -q .nameWithOwner gives {REPO}. Honor --issues-only and --prs-only.
gh issue list --repo {REPO} --json number,title,labels,author,createdAt,updatedAt,state --state open --limit 500
gh pr list --repo {REPO} --json number,title,labels,author,createdAt,updatedAt,state,baseRefName,headRefName,isDraft,mergeable,reviewDecision,statusCheckRollup --state open --limit 500Leave bodies and comments for the workers, because control characters in them can break a large listing. A listing of exactly 500 means there may be more: continue with --search "created:<LAST_CREATED_AT" until one comes back short.
3. Classify from metadata
Use the title, labels, author and PR fields, without opening the item.
| Type | Signals |
ISSUE_BUG | A bug label or [Bug] or Bug: in the title, or a title describing broken behavior, even one phrased as a question |
ISSUE_FEATURE | An enhancement label, or [Feature], [RFE], [Enhancement], Feature Request or Proposal in the title |
ISSUE_QUESTION | A question or discussion label, or [Question] or [Discussion] in the title, with no defect reported |
ISSUE_OTHER | None of those |
PR_BUGFIX | A title starting with fix, a branch containing fix/ or bugfix/, or a bug label |
PR_OTHER | Any other pull request |
4. Bound the run
The session has no limit on total subagents, and batches of five stay under the concurrent one (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS, 20 by default). What limits a run is time and this conversation's context, since each finished worker's result lands here. Choose how many items to take from the user's stated scope, or else from the size of the list against the context you have left.
When the list is longer than that, take the most recently updated items and write the rest to {OUTDIR}/SKIPPED.md, one line each with number, type, title and updatedAt. State both counts in SUMMARY.md and in your final message. A partial run is fine as long as it says it is partial.
5. Run one worker per item
Spawn oh-my-claudeagent:executor for each item, up to five in a message. Each result arrives in a task notification, usually in a later turn, or directly if the platform ran that worker in the foreground. Start the next batch, read reports or write the summary only once the current batch has reported. While a batch runs, do work that does not overlap it; with none left, end the turn once. Never send repeated holding messages, and never respawn an item because its result is still on the way.
Fill in this brief for each worker:
Triage {issue or PR} #{number} of {REPO}: "{title}" by {author}.
{For a PR: {headRefName} into {baseRefName}, draft {isDraft}, mergeable {mergeable}, review {reviewDecision}, checks {summary of statusCheckRollup}.}
This is read-only. Run only gh view commands and `gh api --method GET`, plus local search and Read. No git checkout or git fetch. Change nothing on GitHub or in the repository, and write nothing except your report.
Get the details first.
Issue: gh issue view {number} --repo {REPO} --json body,comments
PR: gh pr view {number} --repo {REPO} --json body,files,reviews,comments,statusCheckRollup,reviewDecision
and gh api --method GET repos/{REPO}/pulls/{number}/files
Search code with ast_search for syntax (a signature, a call site, an import) and rg for literal text, then Read what you find. Cite each claim about code with a permalink pinned to a commit SHA, or mark it UNVERIFIED.
{The "Find out" cell for this type}
Write {OUTDIR}/{issue or pr}-{number}.md:
# {Issue or PR} #{number}: {title}
**Type:** {type}
{The "Headline" cell for this type}
{The "Sections" cell for this type, each as a ## heading}
## Next step
What a maintainer should do. Draft any reply for them to post; never post it yourself.| Type | Find out | Headline | Sections |
ISSUE_QUESTION | What is being asked, and the answer from the code | Status: ANSWERED, PARTIAL or UNANSWERABLE | Findings, with citations. Draft reply |
ISSUE_BUG | Expected and actual behavior, the steps to reproduce, and the code path. Decide whether the defect is real | Verdict: CONFIRMED_BUG, NOT_A_BUG or NEEDS_INVESTIGATION | Cause, or proof that the behavior is correct, cited to exact lines. For a real bug, the change needed. Severity with the reason |
ISSUE_FEATURE | Whether it already exists in whole or in part, and how much work it would be | Already exists: FULLY, PARTLY or NO | Where it exists, cited to file and function. Effort: small, medium, large or redesign. Files a change would touch |
ISSUE_OTHER | What it is really about, and whether a maintainer needs to look | Best fit: question, bug, feature, discussion, meta or stale. Needs attention: yes or no | Findings, with citations. Suggested label |
PR_BUGFIX | What it fixes, and whether it is safe to merge. It is safe only if checks all pass, the review is approved, the fix is plainly right for a plain bug, nothing breaks or shifts architecture, it is not a draft, and it has no conflicts | Merge safe: YES, or NO with the conditions it fails | Each condition with its state. The bug and the fix, both cited. What could go wrong after merging |
PR_OTHER | What it does, and how it fits the project | Subtype: feature, refactor, docs, chore, test or other. Risk: low, medium or high, with the reason | Summary in two or three sentences. Checks, review, conflicts and draft state. Whether it fits the project's direction, with evidence |
6. Summarize
Read every issue-*.md and pr-*.md report in {OUTDIR}, then write {OUTDIR}/SUMMARY.md with:
- the repository, the date, the directory, and how many items were triaged and skipped
- a table of issues (number, title, type, verdict, next step) and a table of pull requests (number, title, type, merge safe, next step)
- the items a maintainer should look at first, one line each
- counts of confirmed bugs, answerable questions, merge-safe pull requests and items waiting on a human decision
Give the user the directory path when you finish.
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.

