review-pr
Skill1k starsChanged 11 days agoMITView on GitHub
Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general overall comment plus inline comments for each real finding. Use when: asked to review, check, or give feedback on a pull request, given a PR URL/number, or asked to review the PR for the current branch.
We split this skill into the rules it gives an agent
16 rules. 0 are common, 9 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 178 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
If they already match, proceed directly.
- Very specific: line 29
If they differ, state exactly what differs (branch name and/or commit sha) and ask for explicit permission before doing anything: git fetch …
- Very specific: line 36
If an issue is found, read it in full — including its comments — with issue_read (or gh issue view <number> --json title,body,comments) to …
- Distinctive: line 37
If no issue is found, proceed in issue-less mode: derive the spec from the PR title and description only.
- Very specific: line 50
When the change is user-visible, was documentation updated accordingly — the package README.md, docs/, and/or the website content under …
- Distinctive: line 56
Run steps 6 and 7 in parallel, in a single message — they are independent.
- Distinctive: line 73
No findings is a valid, complete outcome: If nothing survives step 8, submit the general comment alone.
- Distinctive: line 79
Never enter retry loops with shell commands when authorization or authentication failures are detected.
- Very specific: line 80
Treat errors such as 401, 403, Bad credentials, Requires authentication, Resource not accessible by integration, permission denied, or not …
- Very specific: line 82
Always include the full computed review — general comment plus every inline comment with its file:line and suggestion — in the response so …
- Distinctive: line 83
Do not keep attempting alternative shell-based GitHub flows after an auth failure has been detected.
- Very specific: line 126
Write every text with the writing-style skill.
- Distinctive: line 129
Always show a preview and obtain explicit confirmation before posting the review.
- Distinctive: line 130
Never check out the PR branch, or discard local changes, without explicit permission.
- Very specific: line 131
Prefer GitHub MCP tools for all supported operations.
- Distinctive: line 132
If no problems are found, do not manufacture any — a general-comment-only review is a complete, valid result.
“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
Review Pull Request
When to use this skill
Use this skill when you need to review a GitHub pull request in this repository — checking whether it fulfils the issue it addresses, whether the code itself is correct and well tested, and whether it respects the repository's architecture — and to publish that review as a single GitHub pull request review with a general comment and per-finding inline comments.
Inputs
Provide (all optional; a sensible default applies):
pr_urlorpr_number: a full GitHub pull request URL, or a bare number in this repository. If omitted, the skill looks up the open pull request for the current branch.
Procedure
- Resolve the target PR. Accept a full PR URL, a bare number, or nothing.
- A full URL fully identifies owner/repo/number.
- A bare number is assumed to belong to this repository's
originremote (javierbrea/eslint-plugin-boundaries). - With no argument, find the current branch and look up the open pull request for it (prefer a GitHub MCP tool such as
pull_request_read/list_pull_requests; fall back togh pr view --json url,number). If none exists, tell the user and stop. - Fetch the PR's metadata, changed files and diff, and existing review comments (prefer
pull_request_read).
- Sync the local checkout. Compare the current branch and its
HEADcommit against the PR's head ref and head commit sha.- If they already match, proceed directly.
- If they differ, state exactly what differs (branch name and/or commit sha) and ask for explicit permission before doing anything:
git fetch origin <headRef>then checkout. If the working tree has uncommitted changes, warn about that first and never discard local work without confirmation. - If the user declines the checkout, continue in GitHub-only mode: review using the PR's diff and file contents fetched over the GitHub API/MCP instead of the local working tree. Remember this for the final report — local checks such as running tests or lint cannot be performed in this mode.
- Discover the related issue, to obtain the functional specification the change is meant to satisfy. Try in order:
- A
closes #<number>/fixes #<number>/resolves #<number>reference (or GitHub's own linked-issues field) in the PR body. - A number in the PR's source branch name (for example
477infix/477/migration-guide-links). - A
(#<number>)token in the commits on the branch (this repository's commit convention is<type>(#<number>): <description>). - If an issue is found, read it in full — including its comments — with
issue_read(orgh issue view <number> --json title,body,comments) to build the functional spec. - If no issue is found, proceed in issue-less mode: derive the spec from the PR title and description only.
- A
- Gather review context.
- The diff of the PR against its base branch, and the full list of changed files.
- The PR's existing review comments and conversation — do not raise a finding that has already been raised by someone else; note where you agree/disagree with an existing unresolved comment instead.
- The base branch's relevant
AGENTS.mdfile(s) for any package touched by the diff (see this repository'sCLAUDE.mdlayering: read a project's ownAGENTS.mdbefore reviewing a change there).
- Perspective 1 — functional review against the issue (perform this yourself, do not delegate). Using the spec built in step 3:
- Does the change actually implement what the issue describes? Note missing cases, deviations, or behaviour the issue calls for that the diff does not deliver.
- Are there functional problems beyond the issue's literal scope (regressions, edge cases, broken assumptions)?
- Does the PR description accurately describe what the diff does?
- Were tests added or updated for the new/changed behaviour?
- Does the PR have the
CHANGELOG.mdentry required by.agents/rules/changelog-and-versioning.md, and, if it bumps a version, does the bump follow it? - When the change is user-visible, was documentation updated accordingly — the package
README.md,docs/**, and/or the website content underpackages/website/docs/**(per.agents/rules/docs-authoring.md)? Flag it only when the issue or diff implies user-visible behaviour actually changed.
- Perspective 2 — delegate to the
reviewersubagent for code correctness, quality, and test coverage. Give it: the PR number and title, the base branch and diff range (<base>...<headSha>), the list of changed files, and whether the review is running in GitHub-only mode (so it knows whether it can run tests/lint locally). Perspective 3 — delegate to the
architecture-reviewersubagent for boundary/dependency-direction/Nx-graph compliance. Give it the same context as step 6, plus the functional spec derived in step 3, so it can judge not only compliance but whether the change is architecturally well-placed for what the issue actually requires, and flag a better structural alternative if one exists.Run steps 6 and 7 in parallel, in a single message — they are independent.
- Consolidate the three perspectives.
- Merge all findings; drop exact or near duplicates between perspectives.
- Drop anything already raised in an existing unresolved PR comment (step 4).
- Drop speculative or low-confidence findings — do not report a "maybe" as a finding.
- For each surviving finding, record: file path, line (must fall within the diff — see Notes), severity (
blocking/non-blocking/nit), a one- or two-sentence explanation, and — when the fix is small and localized — a GitHub suggestion block with the exact replacement code. - Draft the general/overall comment: a short assessment of overall code quality, structure, and whether the PR fulfils the issue, plus a summary of how many findings of each severity follow as inline comments. If there are no findings, the general comment says so plainly and is the entire review.
- Show a mandatory preview. Present the full general comment and a numbered list of every inline comment (
file:line, severity, explanation, suggestion if any). Ask for explicit confirmation before posting anything. Let the user drop, edit, or downgrade individual findings before proceeding. Do not post anything before this confirmation. - Post the review, using the GitHub MCP review flow:
pull_request_review_writewithmethod: createto open a pending review, including the general comment as its body.add_comment_to_pending_reviewonce per confirmed inline finding, with the suggestion block included in the comment body when applicable.pull_request_review_writewithmethod: submit_pendingandevent: COMMENTto submit. The review is always submitted as a comment — neverAPPROVE, neverREQUEST_CHANGES; the human maintainer decides the verdict.- Fall back to
ghCLI or REST only for operations the MCP tools do not support.
- No findings is a valid, complete outcome. If nothing survives step 8, submit the general comment alone. Do not invent problems to justify inline comments.
- Report to the user: the review URL, the count of findings by severity that were posted, whether the review ran in GitHub-only mode, and whether an issue was found and used for the functional spec.
Authorization Failure Handling (Required)
- Never enter retry loops with shell commands when authorization or authentication failures are detected.
- Treat errors such as
401,403,Bad credentials,Requires authentication,Resource not accessible by integration,permission denied, ornot authorizedas terminal for the current automation attempt. - On such failures, stop automation immediately and inform the user that authorization is required.
- Always include the full computed review — general comment plus every inline comment with its
file:lineand suggestion — in the response so the user can copy and paste it manually. - Do not keep attempting alternative shell-based GitHub flows after an auth failure has been detected.
Output format
Return results with:
- Summary: the pull request reviewed, the review URL once posted, the number of findings by severity, whether GitHub-only mode was used, and whether a linked issue was found and used for functional context.
- Details: the general comment text and the full list of inline findings (file, line, severity, explanation, suggestion).
- On authorization failure: the copyable general comment and every inline comment, and a clear statement that authorization is required.
Include assumptions, risks, and follow-ups when relevant.
Examples
Example A (PR URL, linked issue, clean checkout)
Input
- Goal: review
https://github.com/javierbrea/eslint-plugin-boundaries/pull/478. - Context: the local branch is already checked out at the PR's head commit; the PR body contains
closes #470.
Expected output
- Issue
#470read for functional context;reviewerandarchitecture-reviewerrun in parallel; findings consolidated; preview shown and confirmed; aCOMMENTreview posted with a general comment and, say, two non-blocking inline comments; the review URL reported.
Example B (bare number, branch mismatch, checkout declined)
Input
- Goal: review PR
481while on an unrelated local branch with uncommitted changes. - Context: the user declines the offered checkout.
Expected output
- GitHub-only mode: diff and files fetched via the API/MCP instead of the working tree; the final report notes that local tests/lint could not be run; review still posted after preview confirmation.
Example C (current branch, no linked issue, no findings)
Input
- Goal: review the PR for the current branch; no argument given.
- Context: no issue reference in the PR body, branch name, or commits; the diff is small and clean.
Expected output
- Issue-less mode, spec drawn from the PR description only; both subagents report no significant issues; preview shows a general comment only, no inline comments; posted as
COMMENTafter confirmation.
Notes / Constraints
- Write every text with the
writing-styleskill. - Inline comments may only anchor to a line present in the diff; a finding about code the diff does not touch belongs in the general comment instead.
- The review is always submitted with
event: COMMENT. Never submitAPPROVEorREQUEST_CHANGESautomatically. - Always show a preview and obtain explicit confirmation before posting the review.
- Never check out the PR branch, or discard local changes, without explicit permission.
- Prefer GitHub MCP tools for all supported operations; fall back to
ghCLI or REST only for what MCP cannot do. - If no problems are found, do not manufacture any — a general-comment-only review is a complete, valid result.
Other versions185 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 185
- denoland/deno★ 109ksame name
- ToolJet/ToolJet★ 41ksame name
- remix-run/remix★ 33ksame name
- tirth8205/code-review-graph★ 32ksame name
- alpinejs/alpine★ 32ksame name
- nrwl/nx★ 29ksame name
- jlowin/fastmcp★ 28ksame name
- PrefectHQ/fastmcp★ 28ksame name
- livewire/livewire★ 24ksame name
- microsoft/fluentui★ 20ksame name
175 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.
Used alongsideProjects with it also use write-product-spec, diagnose-ci-failures 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.
zerx-labSkillwrite-product-spec
Write a PRODUCT.md spec for a significant user-facing feature in Zap, focused on detailed behavior and validation. Use when the user asks for a product spec, desired behavior doc, or PRD, wants to define feature behavior before implementation, or when the feature is substantial or behaviorally ambiguous enough that a written spec would improve implementation or review.
Also in 4 projects that use this
zerx-labSkilldiagnose-ci-failures
Diagnose CI failures for a PR using the GitHub CLI, extract error logs, and generate a plan to fix them. Use when the user asks to check CI status, pull CI issues, triage test failures, or investigate PR build failures.
Also in 3 projects that use this
n24q02mSkillreview-delta
Review only changes since last commit using impact analysis. Token-efficient delta review with automatic blast-radius detection.
Also in 3 projects that use this
n24q02mSkillbuild-graph
Build or update the code review knowledge graph. Run this first to initialize, or let hooks keep it updated automatically.
Also in 3 projects that use this
charlesmatteSkillwrite-tech-spec
Generate a technical specification document from an existing PRD through relentless technical interview and codebase exploration. Use when user wants to write a tech spec, technical specification, technical design document, TDD (technical design doc), or go deeper on the technical details of a PRD.
Also in 4 projects that use this
dekozaSkillfix-pr
Repair an existing pull request's review findings and target-branch conflicts, verify the result, and update the same open PR.
Also in 5 projects that use this
- +2 more from zerx-lab
- +1 more from n24q02m
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- boundaries-architectSkill
- create-architectural-decision-recordSkill
- create-issueSkill
- create-prSkill
- documentation-writerSkill
- releaseSkill
- repo-architectureSkill
- unit-testingSkill
- write-planSkill
- writing-styleSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

