pr-reviewer

Comprehensive GitHub Pull Request code review skill. Use when asked to "review this PR", "code review", "review pull request", "check this PR", or when a GitHub PR URL is provided. Fetches PR metadata, diff, comments, commits, and related issues using gh CLI. Creates organized review workspace, analyzes code against industry-standard criteria, and optionally adds inline comments to the PR.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pr-reviewer" with this command: npx skills add spillwavesolutions/pr-reviewer-skill/spillwavesolutions-pr-reviewer-skill-pr-reviewer

PR Reviewer Skill

Conduct comprehensive, professional code reviews for GitHub Pull Requests using industry-standard criteria and automated tooling.

Table of Contents

Purpose

This skill performs code reviews by:

  1. Automating data collection - Fetching all PR-related information (metadata, diff, comments, commits, issues)
  2. Organizing review workspace - Creating structured directory with all artifacts
  3. Applying systematic criteria - Reviewing against comprehensive quality checklist
  4. Facilitating inline feedback - Optionally adding comments directly to PR code
  5. Ensuring completeness - Checking functionality, security, testing, maintainability

When to Use

Activate this skill when:

  • A GitHub PR URL is provided with a review request
  • Receiving "review this PR" or "code review" requests
  • Checking PR quality before merging
  • Providing systematic feedback on proposed changes
  • GitHub PR review is mentioned in any context

Review Process Workflow

IMPORTANT: This skill uses a two-stage approval process. Nothing is posted to GitHub until explicit approval with /send or /send-decline.

Overview

  1. Fetch PR data - Collect all information
  2. Generate review files - Create detailed, human, and inline comment files
  3. Review and edit - Examine files, make changes as needed (use /show)
  4. Approve and post - Use /send (approve) or /send-decline (request changes)

Step 1: Fetch PR Data

Use fetch_pr_data.py to automatically collect all PR information:

python scripts/fetch_pr_data.py <pr_url> [--output-dir <dir>] [--no-clone]

Actions performed:

  • Parse PR URL to extract owner, repo, and PR number
  • Create directory structure: <output-dir>/PRs/<repo-name>/<PR-NUMBER>/
  • Fetch PR metadata (title, author, state, branches, labels)
  • Download PR diff and commit history
  • Retrieve all PR comments and reviews
  • Extract ticket references (JIRA, GitHub issues)
  • Optionally clone source branch and generate git diff

Example:

python scripts/fetch_pr_data.py https://github.com/facebook/react/pull/28476

# Custom output directory
python scripts/fetch_pr_data.py https://github.com/owner/repo/pull/123 --output-dir /tmp/reviews

# Skip cloning (faster, no git diff)
python scripts/fetch_pr_data.py https://github.com/owner/repo/pull/123 --no-clone

Output structure:

/tmp/PRs/<repo-name>/<PR-NUMBER>/
├── metadata.json           # PR metadata (title, author, branches)
├── diff.patch             # PR diff from gh CLI
├── git_diff.patch         # Git diff (if cloned)
├── comments.json          # Review comments on code
├── commits.json           # Commit history
├── related_issues.json    # Linked GitHub issues
├── ticket_numbers.json    # Extracted ticket references
├── SUMMARY.txt            # Human-readable summary
└── source/                # Cloned repository (if not --no-clone)

Step 2: Analyze PR Data

After fetching, analyze collected data against review criteria:

  1. Read SUMMARY.txt - High-level overview
  2. Review metadata.json - PR context, labels, assignees
  3. Examine diff.patch - Code changes
  4. Check comments.json - Existing feedback
  5. Review commits.json - Commit quality and messages
  6. Check related_issues.json - Linked tickets/issues
  7. Apply review criteria - Evaluate against comprehensive checklist

Use the Read tool to examine files:

Read /tmp/PRs/<repo-name>/<PR-NUMBER>/SUMMARY.txt
Read /tmp/PRs/<repo-name>/<PR-NUMBER>/metadata.json
Read /tmp/PRs/<repo-name>/<PR-NUMBER>/diff.patch

Step 3: Generate Review Files

CRITICAL: After analysis, use generate_review_files.py to create structured review documents:

python scripts/generate_review_files.py <pr_review_dir> --findings <findings_json> [--metadata <metadata_json>]

Creates three files in pr_review_dir/pr/:

  1. pr/review.md - Detailed internal review with emojis and line numbers
  2. pr/human.md - Clean review for posting (no emojis, em-dashes, line numbers)
  3. pr/inline.md - Proposed inline comments with code snippets

Also creates slash commands in .claude/commands/:

  • /send - Post human.md and approve PR
  • /send-decline - Post human.md and request changes
  • /show - Open review directory in VS Code

Findings JSON structure:

{
  "summary": "Overall assessment of the PR...",
  "metadata": {
    "repository": "owner/repo",
    "number": 123,
    "title": "PR title",
    "author": "username",
    "head_branch": "feature",
    "base_branch": "main"
  },
  "blockers": [
    {
      "category": "Security",
      "issue": "SQL injection vulnerability",
      "file": "src/db/queries.py",
      "line": 45,
      "details": "Using string concatenation for SQL query",
      "fix": "Use parameterized queries",
      "code_snippet": "result = db.execute('SELECT * FROM users WHERE id = ' + user_id)"
    }
  ],
  "important": [...],
  "nits": [...],
  "suggestions": ["Consider adding...", "Future enhancement..."],
  "questions": ["Is this intended to...", "Should we..."],
  "praise": ["Excellent test coverage", "Clear documentation"],
  "inline_comments": [
    {
      "file": "src/app.py",
      "line": 42,
      "comment": "Consider edge case handling for empty input",
      "code_snippet": "def process(data):\n    return data.strip()",
      "start_line": 41,
      "end_line": 43,
      "owner": "owner",
      "repo": "repo",
      "pr_number": 123
    }
  ]
}

Step 4: Review and Edit Files

Use /show to open the review directory in VS Code.

Actions available:

  • Read pr/review.md - Detailed analysis
  • Edit pr/human.md - Modify before posting
  • Review pr/inline.md - Check proposed comments
  • Adjust any content as needed

NOTHING is posted until explicit approval in Step 5.

Step 5: Approve and Post

Post the review when ready:

Option A: Approve the PR

/send
  • Posts pr/human.md as comment
  • Approves the PR
  • Confirms action

Option B: Request Changes

/send-decline
  • Posts pr/human.md as comment
  • Requests changes on the PR
  • Confirms action

Posting inline comments (optional, after /send or /send-decline): Review pr/inline.md and run the provided commands for specific code comments.

Step 6: Apply Review Criteria

Reference references/review_criteria.md for comprehensive checklist. Review against these categories:

CategoryKey Questions
FunctionalityDoes code solve the problem? Bugs? Edge cases?
ReadabilityClear code? Meaningful names? DRY?
StyleFollows linter rules? Consistent with codebase?
PerformanceEfficient algorithms? Scalable?
SecurityVulnerabilities addressed? Secrets protected?
TestingTests exist? Cover happy paths and edge cases?
PR QualityFocused scope? Clean commits? Clear description?

Priority markers for findings:

  • Blocker: Must be fixed before merge
  • Important: Should be addressed
  • Nit: Nice to have, optional
  • Suggestion: Consider for future
  • Question: Clarification needed
  • Praise: Good work

For detailed criteria: Read references/review_criteria.md

Reference Documentation

This skill includes comprehensive reference guides:

ReferencePurpose
references/review_criteria.mdComplete checklist covering functionality, security, testing, and more
references/gh_cli_guide.mdQuick reference for GitHub CLI commands
references/scenarios.mdDetailed workflows for common review scenarios
references/troubleshooting.mdCommon issues and solutions

Scripts Reference

scripts/fetch_pr_data.py

Automated PR data fetching and organization.

python scripts/fetch_pr_data.py <pr_url> [options]

Options:
  --output-dir DIR    Base output directory (default: /tmp)
  --no-clone         Skip cloning repository

scripts/generate_review_files.py

Generate structured review files from analysis findings.

python scripts/generate_review_files.py <pr_review_dir> --findings <findings_json> [--metadata <metadata_json>]

Creates:

  • pr/review.md - Detailed internal review
  • pr/human.md - Clean review for posting
  • pr/inline.md - Proposed inline comments with commands
  • .claude/commands/send.md - Slash command to approve and post
  • .claude/commands/send-decline.md - Slash command to request changes
  • .claude/commands/show.md - Slash command to open in VS Code
  • REVIEW_READY.txt - Summary of next steps

scripts/add_inline_comment.py

Add inline code review comments to specific lines in PR.

python scripts/add_inline_comment.py <owner> <repo> <pr_number> <commit_id> <file_path> <line> "<comment>" [options]

Options:
  --side RIGHT|LEFT       Side of diff (default: RIGHT)
  --start-line N         Starting line for multi-line comment
  --start-side RIGHT|LEFT Starting side for multi-line comment

Best Practices

Communication

  • Frame feedback as suggestions, not criticism
  • Explain why an issue matters, not just what is wrong
  • Acknowledge excellent practices
  • Prioritize blockers first, style issues last

Review Efficiency

  • Use scripts to automate data fetching and comment posting
  • Reference review_criteria.md as checklist
  • Focus: Critical issues > Important > Nice-to-have
  • Review promptly (within 24 hours if possible)

Inline Comments

  • Reference exact lines and files
  • Provide better alternatives
  • Test inline comments on test PRs first
  • Use sparingly to avoid overwhelming

PR Size Handling

  • Large PRs (>400 lines): Suggest splitting
  • Review in logical chunks
  • Focus on architecture for large changes

For detailed scenarios: Read references/scenarios.md

Quick Reference Commands

# Fetch PR data
python scripts/fetch_pr_data.py https://github.com/owner/repo/pull/123

# Add inline comment
python scripts/add_inline_comment.py owner repo 123 latest "src/app.py" 42 "Comment"

# View PR in browser
gh pr view 123 --repo owner/repo --web

# Check PR status
gh pr checks 123 --repo owner/repo

# View existing comments
gh api /repos/owner/repo/pulls/123/comments --jq '.[] | {path, line, body}'

Tips for Effective Reviews

  1. Start with context: Read PR description, linked issues, commit messages
  2. Understand intent: Identify the problem being solved
  3. Check tests first: Verify tests demonstrate the fix/feature
  4. Look for patterns: Repeated issues suggest architecture problems
  5. Consider alternatives: Evaluate simpler approaches
  6. Think about maintenance: Assess future modification ease
  7. Remember humans: Maintain kindness, respect, and constructive tone

For troubleshooting: Read references/troubleshooting.md

Resources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

git-commit

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping

Repository Source
14.2K25.3Kgithub
Coding

code-review

When to use this skill

Repository Source
Coding

gh-cli

GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.

Repository Source
11.2K25.3Kgithub
Coding

prd

No summary provided by upstream source.

Repository SourceNeeds Review
10K-github