Guide reviewers through systematic, constructive peer review of a pull request.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add Unique-AG/ai --skill pr-review --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pr Review?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/unique-ag-pr-review)More formats (shields.io, HTML) on the badges page.
---
name: pr-review
description: Guide reviewers through systematic, constructive peer review of a pull request.
license: MIT
compatibility: claude cursor opencode
metadata:
version: "1.0.0"
languages: all
audience: developers
workflow: analysis
since: "2026-02-24"
---
## What I do
I help you review someone else's PR systematically across six key dimensions:
1. **Intent Understanding** — Read the PR description first; understand _why_ before looking at code
2. **Test Review** — Examine tests before implementation; they document intent
3. **Correctness** — Evaluate logic: Does the code do what it claims? What could go wrong?
4. **Edge Cases** — Identify boundary conditions: empty input, nulls, concurrency, large volumes
5. **Security** — Flag security-relevant changes: auth, inputs, secrets, privilege escalations
6. **Feedback Quality** — Ensure every comment is actionable and constructive
The result is a well-structured, thorough review that helps the author improve and maintains code quality.
Supporting files in this skill:
- `assets/review-checklist.template` — The six-dimension checklist as a markdown file
## When to use me
Use when you want to:
- Review a PR assigned to you with clear structure and guidance
- Avoid missing important review areas (logic, edge cases, security)
- Write actionable, constructive feedback instead of vague criticism
- Complete a thorough review efficiently
- Help the author improve the code, not just rubber-stamp it
## PR lifecycle focus
Stage: **Peer review by reviewer** (after PR is opened, before merge).
## Use Instead [if available]
- Use `pr-self-review` for author-side checks before requesting review.
- Use `pr-create` for drafting title/body and opening a PR.
- Use `github-pull-request-handling` for resolving existing review threads with follow-up commits and replies.
## Example usage
"Help me review this PR"
"Guide me through reviewing these changes"
"Walk me through a systematic peer review"
"Review PR #42"
"Review this PR: https://github.com/myorg/myrepo/pull/99"
---
## Workflow
Here's how I guide you through peer review:
### Step 0: Auto-Fetch PR Details (with `gh` CLI if available)
**If you provide a PR number or URL**, I'll automatically fetch metadata using `gh pr view`:
- PR title, description, and linked issues
- Files changed with change counts
- Lines added/removed
- CI/test status
- Current reviewers and approval status
**Fallback**: If `gh` is unavailable or unauthenticated, I'll ask you to paste the PR link or describe the changes manually.
---
### Step 1: Read the Intent First
**Start with the PR description and linked issues — NOT the code.**
(Note: If Step 0 auto-fetched the PR, I'll have already retrieved the description above)
- Read what the author says changed and why
- Read linked Jira issues for business context
- Ask yourself: "Do I understand the _problem_ being solved?"
- Confirm understanding before looking at implementation
### Step 2: Review Tests First
**Look at the test files before the implementation.**
- Tests document what the author intended to build
- Poor tests = poor specification of intent
- Flag missing tests or weak test coverage early
- Ask: "Do these tests actually verify the claimed behavior?"
### Step 3: Evaluate Correctness
**Review the implementation logic step-by-step.**
For each logical change:
- Does this code do what the PR description says it does?
- Is the logic sound?
- Are there off-by-one errors, null pointer risks, or type mismatches?
- Are assumptions about input clearly documented?
Example comment: "This [operation] assumes [X]. What happens if [X] is violated? Consider adding a guard."
### Step 4: Check Edge Cases
**Think like an adversary: What could break this code?**
- Empty input or null values?
- Concurrent access or race conditions?
- Large volumes (performance degradation)?
- Boundary values (min, max, zero)?
- Timeouts or network failures?
- Permission/authorization edge cases?
Example comment: "What happens when [condition]? Current code would [fail behavior]. Consider [suggested fix]."
### Step 5: Security Check
**Flag security-relevant changes.**
- New user inputs: Are they validated?
- Authentication/authorization changes: Correct implementation?
- Secrets or credentials: Any exposed in logs or code?
- Privilege escalations: Properly gated?
- External integrations: Using HTTPS, signing requests, validating responses?
Be specific: "This endpoint now accepts user input. Verify it's validated against [specific vulnerability class]."
### Step 6: Feedback Quality Pass
**Before submitting, review EVERY comment you wrote.**
Each comment must follow this pattern:
```
This [specific code element] [does what/could cause what].
Consider [specific, actionable suggestion] because [why it matters].
```
Examples:
- ✅ GOOD: "This loop assumes the list is sorted. Consider adding an assertion or a sort call because unsorted input would produce incorrect results."
- ❌ BAD: "This looks inefficient"
- ✅ GOOD: "This regex pattern doesn't account for escaped quotes. Use the standard library function instead because hand-rolled parsers miss edge cases."
- ❌ BAD: "Why reinvent the wheel?"
Distinguish **blocking** (must fix before merge) from **non-blocking** (nice to have):
- Use "MUST" for blocking issues
- Use "Consider" or "Suggest" for non-blocking improvements
### Step 7: Render Your Decision
**Submit your review with a clear decision:**
- **Approve**: Code is good, no changes needed
- **Approve with comments**: Code is good but has suggestions for future improvements
- **Request Changes**: Code has issues that must be fixed before merging
- **Comment**: Questions or discussion, decision deferred
Provide a brief summary:
```
Good PR overall. Main feedback:
- Tests look solid
- Logic is sound on auth changes
- One edge case to handle: [specific case]
```
---
## Tips for Success
- **Start with intent, not code** — 80% of review quality comes from understanding the problem first
- **Be constructive, not critical** — You're helping improve code, not finding fault
- **Ask questions, don't demand** — "What happens if...?" is more collaborative than "You didn't handle..."
- **Distinguish blocking from non-blocking** — Don't block merges over style preferences
- **Understand the context** — A 400-line PR solving a hard problem deserves more scrutiny than a typo fix
- **Approve good work** — Don't nitpick. If the code is correct and tests are solid, approve it
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!