agentleFS
UtsavBalar1231UtsavBalar1231/oh-my-claudeagent/skills/github-triage/SKILL.md

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

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.
  • GoogleSkill

    improve-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

  • GoogleSkill

    tdd

    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

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
  1. Very specific:

    Use gh issue list, gh issue view, gh pr list, gh pr view, gh repo view and gh api --method GET.

    line 16
  2. Very specific:

    Leave bodies and comments for the workers, because control characters in them can break a large listing.

    line 35
  3. Distinctive:

    Use the title, labels, author and PR fields, without opening the item.

    line 39
  4. Very specific:

    Read every issue-*.md and pr-*.md report in {OUTDIR}, then write {OUTDIR}/SUMMARY.md with:

    line 97

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 500

Leave 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.

TypeSignals
ISSUE_BUGA bug label or [Bug] or Bug: in the title, or a title describing broken behavior, even one phrased as a question
ISSUE_FEATUREAn enhancement label, or [Feature], [RFE], [Enhancement], Feature Request or Proposal in the title
ISSUE_QUESTIONA question or discussion label, or [Question] or [Discussion] in the title, with no defect reported
ISSUE_OTHERNone of those
PR_BUGFIXA title starting with fix, a branch containing fix/ or bugfix/, or a bug label
PR_OTHERAny 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.
TypeFind outHeadlineSections
ISSUE_QUESTIONWhat is being asked, and the answer from the codeStatus: ANSWERED, PARTIAL or UNANSWERABLEFindings, with citations. Draft reply
ISSUE_BUGExpected and actual behavior, the steps to reproduce, and the code path. Decide whether the defect is realVerdict: CONFIRMED_BUG, NOT_A_BUG or NEEDS_INVESTIGATIONCause, or proof that the behavior is correct, cited to exact lines. For a real bug, the change needed. Severity with the reason
ISSUE_FEATUREWhether it already exists in whole or in part, and how much work it would beAlready exists: FULLY, PARTLY or NOWhere it exists, cited to file and function. Effort: small, medium, large or redesign. Files a change would touch
ISSUE_OTHERWhat it is really about, and whether a maintainer needs to lookBest fit: question, bug, feature, discussion, meta or stale. Needs attention: yes or noFindings, with citations. Suggested label
PR_BUGFIXWhat 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 conflictsMerge safe: YES, or NO with the conditions it failsEach condition with its state. The bug and the fix, both cited. What could go wrong after merging
PR_OTHERWhat it does, and how it fits the projectSubtype: feature, refactor, docs, chore, test or other. Risk: low, medium or high, with the reasonSummary 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.