Skip to content
Back to skills

Triage

ASecurity

Verify an open GitHub issue or PR against the current code and act on the verdict: close or comment with a factual proof, or report work that is still valid. Use when the user asks to triage, verify, check, handle, or clean up an issue, a PR, or the tracker.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 24, 2026
toolsgobashgit

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add bengous/claude-code-plugins --skill triage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Triage?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Triage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bengous-triage/badge)](https://www.skillsdirectory.com/skills/bengous-triage)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: triage
description: "Verify an open GitHub issue or PR against the current code and act on the verdict: close or comment with a factual proof, or report work that is still valid. Use when the user asks to triage, verify, check, handle, or clean up an issue, a PR, or the tracker."
argument-hint: "[--dry-run] [number|url]"
disable-model-invocation: true
allowed-tools: Bash(gh issue:*), Bash(gh pr:*), Bash(git log:*), Bash(git show:*), Bash(git diff:*), Read, Grep, Glob
---

# Triage

Decide the fate of one issue or PR from the current code. Never state something about code you did not read this session.

## Target

`$ARGUMENTS`

- `--dry-run`: verify and report, post nothing; the comment text that step 6 would post is printed.
- A URL with `/pull/` is a PR, with `/issues/` an issue.
- A bare number: `gh issue view <n> --json url`; a `/pull/` URL means it is a PR.
- Empty: run `gh issue list --limit 30` and `gh pr list --limit 30`, show both lists, ask which one to triage.

## Protocol

1. **Fetch.**
   - Issue: `gh issue view <n> --json title,body,state,labels,comments,url`
   - PR: `gh pr view <n> --json title,body,state,baseRefName,headRefName,mergeable,reviewDecision,statusCheckRollup,comments,url,additions,deletions` and `gh pr diff <n> --stat`

   Closed already: report it and stop.

2. **Extract the claims.** The problem, every file, symbol, or error named, expected versus actual, the reproduction if given, the open questions in the comments.

3. **Verify each claim.** Glob and Grep to locate, Read to confirm. `git log --oneline -20 -- <file>` finds a fix that landed without a link. For a PR, also check: does it apply to the current base (`mergeable`), do the checks pass, does the code it changes still exist on the base, has a competing change landed since.

4. **Verdict.** One word, with the proof next to it.

   | Issue | PR |
   |---|---|
   | `valid`: confirmed in the code, root cause named | `mergeable`: applies, checks pass, still wanted |
   | `fixed`: name the commit | `needs-rebase`: conflicts or stale base |
   | `outdated`: the code it describes is gone or changed | `superseded`: name the commit or PR that landed instead |
   | `duplicate`: of #N | `stale`: an open question with no answer, give the date |
   | `unclear`: what is missing to verify | `unclear`: what is missing to verify |

5. **Report** in this shape.

   ```
   ## #<n> <title>
   Verdict: <word>
   Proof: <anchor or commit>, <anchor or commit>
   Action: <closed as <reason> | commented | none>
   ```

6. **Execute** the action the verdict fixes. No question: the skill runs only on an explicit call, so the caller has already chosen the effect, and a caller that wants a look first passes `--dry-run`.

   | Verdict | Action |
   |---|---|
   | `fixed` | `gh issue close <n> --reason completed --comment "<text>"` |
   | `duplicate` | `gh issue close <n> --reason duplicate --comment "<text>"` |
   | `outdated`, `superseded`, `stale` | `gh issue close <n> --reason "not planned" --comment "<text>"` or `gh pr close <n> --comment "<text>"` |
   | `unclear` | `gh issue comment <n> --body "<text>"` with the missing information named; stays open |
   | `valid`, `mergeable`, `needs-rebase` | none; the report is the deliverable, implementing is a separate request |

## Comments

A comment states facts only: what was verified, the commit, issue, or PR that settles it, what would reopen it. For a superseded PR, name the integrating commit and what of the PR it carries. No thanks, no boilerplate, no invitation to contribute.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.