Github pr review
Skill megandmartin/agent-skills-repo/skills/builder-dev/github-pr-review
75 production-grade agent skills for Hermes Agent + Paperclip — research, write, organize, earn, and run an AI workforce. Every skill passes a QA gate with hard safety rails. Built by Gen AI Hub.
npx -y skills add megandmartin/agent-skills-repo --skill github-pr-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 15 days oldThe repository was created 15 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Review a GitHub pull request diff with a structured checklist — correctness, security, scope creep — and produce ready-to-post comments plus a clear approve / request-changes call. Use when the user says "review this PR", "check this diff", "should I merge this", "is this PR safe", or pastes a PR link/diff. Don't use for creating your own branch/commit/PR — use git-ship-flow.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.0 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
GitHub PR Review
Turns "looks fine I guess 🤷" into a real review. Reads the actual diff, runs a fixed checklist (correctness → security → scope), drafts comments the author can act on, and ends with an explicit verdict. A review that doesn't say approve or request-changes isn't finished.
When to Use
- User shares a PR URL, PR number, or a pasted diff and wants it reviewed.
- User asks "is this safe to merge?" — including PRs written by AI agents.
- User wants help writing review comments that are firm but kind.
- User received a review verdict on their own PR and wants help interpreting or responding to it.
- A quick pre-merge sanity pass on their own PR before asking a human teammate to look.
- Not for: making your own commits or opening a PR — use
git-ship-flow. Not for debugging a bug the PR claims to fix — usebug-triage-protocol.
Quick Reference
| Action | Command / Call |
|---|---|
| Fetch PR overview | gh pr view <number> --json title,body,files,additions,deletions |
| Get the full diff | gh pr diff <number> (no gh: curl -s https://patch-diff.githubusercontent.com/raw/<owner>/<repo>/pull/<n>.diff) |
| Check CI status | gh pr checks <number> |
| Grep diff for secrets | gh pr diff <number> | grep -nEi "(api[_-]?key|secret|password|token)\s*[:=]" |
| Post a comment | gh pr comment <number> --body "..." |
| Approve | gh pr review <number> --approve --body "..." |
| Request changes | gh pr review <number> --request-changes --body "..." |
Procedure
- Precheck —
command -v gh && gh auth status. Ifghis missing/unauthed, ask for the diff pasted or use the raw.diffURL; you can still review, just not post. - Context first — read the PR title/body and file list. Write one sentence: "This PR claims to X by touching Y." If you can't write that sentence, ask the author what the PR is for — that's finding #1.
- Correctness pass — read the diff hunk by hunk. Check: does the code do what the description says; edge cases (empty input, null/undefined, zero, error paths); anything removed that something else might still use; tests updated or a stated reason why not; CI green (
gh pr checks). - Security pass — grep the diff for secrets (table above); check new endpoints/queries for missing auth checks, user input reaching SQL/HTML/shell unescaped, new dependencies (are they needed? real packages?), loosened permissions or RLS/policy changes,
.envor config files in the diff. - Scope pass — flag changes unrelated to the stated goal: drive-by refactors, formatting churn burying real changes, "while I was here" features. Scope creep is a request-changes offense on its own when it hides risk.
- Draft comments — one comment per finding, formatted
file:line — [blocking|suggestion|question] — what + why + concrete fix. Blocking = correctness or security. Suggestion = better way, author's call. Question = you need info before verdict. - Verdict — apply the criteria strictly: Request changes if any blocking finding, any unrotated secret, or you can't tell what the PR does. Approve if zero blocking findings and CI is green (suggestions alone don't block). Comment-only if questions remain that change the verdict.
- Confirm before posting — show the user the full review (comments + verdict). Post to GitHub only on explicit yes; posting a review is a visible action on someone's work.
Output Template
## PR Review: #<n> — <title>
Claim: <one-sentence what/how>
CI: pass | fail | none
Diff size: +<add>/−<del> across <n> files (>400 lines changed → note "large PR, consider splitting")
### Findings
1. [BLOCKING] src/api/user.ts:42 — deletes without auth check — any logged-out call can… — fix: guard with session check
2. [SUGGESTION] …
3. [QUESTION] …
### Verdict: APPROVE ✅ | REQUEST CHANGES ❌
Because: <the one or two findings that decided it>
Pitfalls
- Reviewing the description instead of the diff — the body says "adds validation" but the diff doesn't. Recovery: every claim in the PR body gets located in the diff; unlocatable claims become QUESTION comments.
- Secret found in the diff — recovery: request changes immediately and tell the author the key must be rotated, not just removed — it's already in the branch history. Point them to
env-secrets-hygiene. - Huge PR, review fatigue — 1,500-line diffs get rubber-stamped after file 3. Recovery: review the riskiest files first (auth, payments, data writes), then honestly say "reviewed X of Y files closely" and ask for a split rather than fake-approving.
- Nitpick storm, no verdict — 12 style comments and no decision helps nobody. Recovery: max ~3 suggestions unless blocking; always end with an explicit approve/request-changes and the reason.
- AI-generated code that "looks right" — plausible code with invented APIs or packages. Recovery: spot-check that imported packages exist (
npm view <pkg> version) and called methods are real before approving.
Verification
- Read the actual diff, not just the PR description
- All three passes ran (correctness, security, scope) with at least a "clear" note each
- Secret-pattern grep ran on the diff
- Every comment names file + line and a concrete fix
- Review ends in an explicit verdict with the deciding reason
- Nothing posted to GitHub without the user's explicit confirmation
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most pr commit review skills give in ~1.4k tokens
Counted across 888 of the 1,342 authors here whose files we hold, read 2026-08-07
- Use conventional commits formatin 127 of 888, across 115 files
- Keep subject line under 72 charactersin 62 of 888, across 48 files
- Delete branches after mergein 51 of 888, across 38 files
- Use imperative mood in subject linein 51 of 888, across 42 files
- Use imperative mood in commit messagesin 44 of 888
- Verify directory is ignored before creating worktreein 43 of 888, across 12 files
- Generate a conventional commit messagein 43 of 888
- Add unignored worktree directories to gitignorein 42 of 888, across 10 files
- Make atomic commitsin 39 of 888, across 27 files
- Run tests before committingin 36 of 888, across 25 files
- Verify clean test baselinein 35 of 888, across 9 files
- Split unrelated changes into separate commitsin 35 of 888, across 30 files
Said here and by no other author read
- write a one-sentence claim of the pr
- check CI status
- run correctness, security, and scope passes
- draft one comment per finding
- include a concrete fix in each comment
- limit suggestions to three
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.