# Pr Code Review

> Review GitHub PRs for bugs and code quality. Use when user says "review PR", "check PR

- Skill: `majiayu000/pr-code-review` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/pr-code-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/pr-code-review/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/pr-code-review

---


# PR Code Review

Straightforward code review for GitHub pull requests. Reviews the diff directly, only spawns agents when you need deeper codebase context.

## Triggers

- "review PR #123"
- "check this PR"
- "code review"

## How it works

You review the PR yourself using `gh` CLI. Only use explore agent if you need to understand unfamiliar parts of the codebase.

## Review process

### 1. Check if PR is reviewable

```bash
gh pr view {number} --json state,isDraft,title,body
```

Skip if closed, draft, or already has your review:
```bash
gh api repos/{owner}/{repo}/pulls/{number}/comments | grep -c "Claude Code"
```

### 2. Get the diff and context

```bash
gh pr view {number}
gh pr diff {number}
```

Read CLAUDE.md if it exists - it contains project coding standards.

### 3. Review the changes

Look at the diff yourself. Focus on:

**Real bugs** - logic errors, missing error handling, runtime issues, incorrect variable usage

**CLAUDE.md violations** - if the project has one, check for type hints, docstrings, line length (88), PEP 8 naming, uv-only (no pip)

**Skip these** - pre-existing issues (lines not in diff), linter-catchable stuff, style nitpicks not in CLAUDE.md

### 4. Use explore agent only when needed

If you're unfamiliar with how the codebase does something, spawn an explore agent:

```
Task(subagent_type="explore", prompt="Find how error handling is done in lmms_eval/models/ - what patterns exist?")
```

Don't spawn agents for every PR. Most diffs are self-contained.

### 5. Post your review

Get the commit SHA for links:
```bash
gh pr view {number} --json headRefOid --jq '.headRefOid'
```

Post with:
```bash
gh pr comment {number} --body "..."
```

## Comment format

Write like a helpful colleague, not a robot. Keep it brief and actionable.

**When you find issues:**

```markdown
### Code Review

Took a look at this PR. Found a couple things worth addressing:

**Missing return statement** in `ovo_doc_to_target` - the function computes the value but never returns it.
https://github.com/{owner}/{repo}/blob/{SHA}/{file}#L102-L103

**No docstrings on public functions** - CLAUDE.md requires these for public APIs.
https://github.com/{owner}/{repo}/blob/{SHA}/{file}#L17-L45

Otherwise looks good. Let me know if you have questions.
```

**When it looks good:**

```markdown
### Code Review

Reviewed the changes - looks good to me. Clean implementation, follows existing patterns.
```

**When skipping:**

Just tell the user why: "PR #123 is a draft, skipping review."

## What NOT to flag

- Issues on lines you didn't modify (pre-existing)
- Formatting/linting issues (CI catches these)
- Personal style preferences not in CLAUDE.md
- Lines with `# noqa` or similar ignore comments

## Link format

Use full SHA, not short:
```
https://github.com/{owner}/{repo}/blob/{FULL_SHA}/{file_path}#L{start}-L{end}
```

## Multiple PRs

```
> Review all open PRs
```

Get the list and review each:
```bash
gh pr list --state open --json number
```

