pr-review
Skill17 starsChanged 3 months agoApache-2.0View on GitHub
Structured review of a pull request or the current diff - correctness, contract drift, security, missing tests, coverage gate - producing classified findings and a verdict. Use when the user asks to review a PR or diff, or as the self-review step of the story workflow.
195 other projects use a version of this.
Adopted by
Most recently taken up by
- static-web-server/static-web-servertheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- civitai/civitaitheir own version, first seen Nov 9, 2026
- harshitsinghbhandari/domain-expansiontheir own version, first seen Nov 8, 2026
- Azure/azure-sdk-toolstheir own version, first seen Nov 8, 2026
- databricks/clitheir own version, first seen Nov 8, 2026
Used with
Projects with it also use oss-pr, pr-automation and 10 more.
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.
CES-LtdSkilloss-pr
Use when creating a pull request, after committing changes, or when user invokes /oss-pr. Covers branch management, quality checks, commit, push, and PR creation.
Also in 3 projects that use this
CES-LtdSkillpr-automation
PR Automation Orchestrator: poll open PRs, check CI, run review, fix, and merge eligible PRs. Use when: (1) Invoked by daemon via scripts/pr-automation.sh, (2) User says "/pr-automation".
Also in 3 projects that use this
jtenniswoodSkillexpert-reset
Reimagine this repository from first principles using the current product and user experience as the target. Use when the user says "/expert-reset", asks how the project should be rebuilt if starting again, wants bold architecture or component-structure recommendations, or wants a research-only reset plan unconstrained by current implementation details.
Also in 3 projects that use this
jtenniswoodSkillupdates
Summarize user-facing project updates from the last 7 days, ordered by importance and written as one-sentence "Feature: description" entries. Use when the user says "/updates", asks what changed recently, or wants a concise list of recent features, device support, fixes that users will notice, or other product value.
Also in 3 projects that use this
openchamberSkillclack-cli-patterns
Use when creating or modifying OpenChamber CLI commands, prompts, terminal output, non-TTY behavior, `--quiet`, or `--json` behavior.
Also in 3 projects that use this
openchamberSkilldrag-to-reorder
Use when implementing or modifying OpenChamber sortable or drag-to-reorder behavior, especially `@dnd-kit`, touch/mobile interactions, variable-width items, or wrapping layouts.
Also in 3 projects that use this
- +6 more from openchamber
Other versions195 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 195
- Significant-Gravitas/AutoGPT★ 188ksame name
- pytorch/pytorch★ 105ksame name
- rtk-ai/rtk★ 86ksame name
- saadeghi/daisyui★ 43ksame name
- rustfs/rustfs★ 36ksame name
- dotnet/maui★ 23ksame name
- NVIDIA/Megatron-LM★ 18ksame name
- MiniMax-AI/skills★ 14ksame name
- btriapitsyn/openchamber★ 13ksame name
- openchamber/openchamber★ 13ksame name
185 more not listed
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 repository13 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- coverage-checkSkill
- create-prSkill
- delegate-backlogSkill
- dev-kit-setupSkill
- e2e-generateSkill
- figma-fetchSkill
- fix-prSkill
- follow-upsSkill
- issue-fetchSkill
- issue-updateSkill
- plan-backlogSkill
- plan-definitionSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 178 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Read the linked ticket's acceptance criteria — a diff can be flawless and still not do what the story asked.
- Distinctive: line 27
Maintainability: only issues that materially affect future changes — no style nitpicks a formatter or linter should catch.
- Distinctive: line 55
Every finding cites file and line.
- Distinctive: line 56
Do not pad: if the diff is clean, say so and approve — a review's value is its signal ratio.
- Distinctive: line 57
Never approve with unresolved blocking findings, and never report a criterion as met without seeing the code that implements it.
- Very specific: line 58
When invoked as the self-review step of the story workflow, hand the blocking findings to the fix-pr playbook (the pr-fixer subagent on …
“Common” is measured: kept by at least 6 in 10 of the 178 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
PR Review
Produce a high-signal review: findings a reviewer would act on, classified and ordered, ending in a clear verdict. The kit instructions (instructions/secure-coding.md, instructions/testing-standards.md) define what counts as blocking.
Scope the diff
- Reviewing an existing PR: fetch the diff and description from the configured host (
prHostin.claude/dev-kit.json). github:gh pr diff <pr>+gh pr view <pr>. bitbucket:GET /2.0/repositories/{ws}/{repo}/pullrequests/{id}/diffand/pullrequests/{id}(REST, token from env). gitlab:glab mr diff <id>+glab mr view <id>. - Reviewing the working tree (self-review before PR):
git diffagainst the base branch, including staged changes. - Read the linked ticket's acceptance criteria — a diff can be flawless and still not do what the story asked.
- Write the PR intent — one line on what this PR is for and what it deliberately leaves alone. It's the ruler for scope: a real defect inside the intent blocks; a valid concern outside it is a note or a follow-up, not a reason to expand the PR.
Review dimensions (in priority order)
- Acceptance criteria: does the change actually satisfy each criterion? List any criterion not covered.
- Correctness: behavioral regressions, broken edge cases, wrong logic. Read the code, don't skim the diff.
- Contract drift: routes, payloads, enums, schemas, validation, status codes — every side that depends on the contract updated together.
- Security: apply the checklist in
instructions/secure-coding.md(auth on new endpoints, secrets, input validation, data exposure). Any automatic-blocker present is a blocking finding. - Tests (adaptive — judge against the project's own setup, see
instructions/testing-standards.md): when the project has tests, every behavioral change has one that would fail without it and touched files stay at the project's bar (default ≥ 95%, no regression — runcoverage-checkif evidence is missing); when it does e2e, user-facing changes have e2e coverage with edge cases. A project with no test/e2e setup is not a blocking finding — flag it as a recommendation. Test-quality violations frominstructions/testing-standards.md(assertion-free tests, suppressions, deleted/renamed tests) are findings. - Performance regressions introduced here (blocking): algorithmic blowups over collections that grow with usage; N+1 queries or per-item network calls on a request path; unbounded result sets / memory / missing pagination; blocking work on a hot path; a new query filtering/joining on an unindexed column. Not this: micro-optimizations or "could be faster" with no mechanism.
- Duplication introduced by this PR (blocking): new code reimplementing logic already in the repo, or copy-paste between the files this PR adds — fix by reusing/extracting once. Not this: two blocks that merely look alike and are about to diverge; pre-existing duplication is a follow-up at most.
- Accessibility (conditional — evaluate only when the diff changes user-facing UI in a frontend stack: changed components/templates/JSX/HTML/CSS in a node/angular/react/vue-style project. Skip entirely for backend or non-UI diffs — no cost when it doesn't apply). Honors
a11yin.claude/dev-kit.json:auto(default — run on user-facing frontend diffs) ·required(blocking gate) ·off(never run). Check the high-value, low-effort basics on the changed markup only: images have meaningfulalt, form controls have associated labels, interactive elements have an accessible name, keyboard/focus works (no click-only handlers, visible focus), no obvious color-contrast failures, ARIA present where needed and not misused. If the repo already runs a11y tooling (axe-core,eslint-plugin-jsx-a11y, Lighthouse), use its output; never scaffold one. Target WCAG 2.2 level AA, and cite the specific Success Criterion in each finding (e.g. missingalt→ WCAG 1.1.1 (A), low contrast → WCAG 1.4.3 (AA)) so it's verifiable, not vague. Recommendation by default; blocking only whena11y: required. - Maintainability: only issues that materially affect future changes — no style nitpicks a formatter or linter should catch.
Adversarial check (proportional — do not double every review)
For high-stakes diffs only (auth/authorization, money, personal data, migrations, concurrency, anything hard to roll back), before the verdict take one targeted skeptical pass: pick the 1–2 conclusions most likely to be wrong and the 1–2 "looks fine" spots most likely to hide a defect, and actively try to break them (an edge input, a failure/timeout path, a race, a partial write). Routine or low-risk diffs get the normal single pass — this is a focused second look where being wrong is expensive, not a mandatory re-review.
Output format
## Review: <PR/diff identifier>
### Blocking
- [file:line] <finding> — <why it blocks, one line>
### Non-blocking
- [file:line] <suggestion>
### Questions
- <anything ambiguous that needs the author's intent>
### Verdict
APPROVE | REQUEST CHANGES — <one-line rationale>
Acceptance criteria: <met / partially met (which ones missing)>Rules
- Report first, publish only with consent. Findings are delivered in the conversation. Never submit a GitHub review verdict (approve / request changes) and never post comments on the PR without the user's explicit confirmation — show exactly what would be posted and wait. This applies doubly to PRs authored by other people.
- Every finding cites file and line. No finding without a concrete failure scenario or rule reference.
- Do not pad: if the diff is clean, say so and approve — a review's value is its signal ratio.
- Never approve with unresolved blocking findings, and never report a criterion as met without seeing the code that implements it.
- When invoked as the self-review step of the story workflow, hand the blocking findings to the
fix-prplaybook (thepr-fixersubagent on Claude Code) and re-review after the fixes.
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.

