Code Review Checklist Skill

Generate a tailored code review checklist for any pull request based on the language, type of change, and risk level.

Code Review Checklist Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/code-review-checklist.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/code-review-checklist#main ~/.claude/skills/code-review-checklist

For one project only, change the path to .claude/skills/code-review-checklist.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Code Review Checklist Skill

Show the full text141 lines
namedescription
code-review-checklistGenerate a tailored code review checklist for any pull request based on the language, type of change, and risk level. Use when asked to review code, check a PR, review a pull request, or generate a code review checklist. Produces a focused checklist with language-specific checks, risk-level-appropriate depth, and a clear approve/request-changes recommendation.

Code Review Checklist Skill

Produces a tailored code review checklist for a specific pull request — scaled to the language, type of change, and risk level. Not a generic template.

Required Inputs

Ask the user for these if not provided:

  • Language and framework (e.g. TypeScript + React / Python + FastAPI / Go)
  • Type of change (feature / bug fix / refactor / dependency upgrade / security patch / performance)
  • Risk level (low / medium / high / critical)
  • PR description (paste the description or link to the PR)
  • Code or diff (optional — paste key changed files or a git diff; significantly improves checklist specificity)
  • Author context (new starter / experienced / external contributor)

Output Format


Code Review: [PR Title or Reference]

1. PR Overview

Scope assessment: [Small / Medium / Large / Too large — should be split] Recommended review depth: [Skim / Standard / Deep dive] Estimated review time: [e.g. 20–30 min — use 5 min per 50 lines of diff as a rough guide]

2. Correctness Checks

Language-specific correctness checks — choose based on the language stated:

For TypeScript/JavaScript:

  • Type definitions match actual usage
  • No implicit any in non-test code
  • Async/await used consistently; no unhandled promises
  • Null/undefined handling is explicit

For Python:

  • Type hints present on public functions
  • Exception handling is specific (no bare except)
  • Resources are closed (context managers, with blocks)

For Go:

  • Errors are handled or explicitly ignored with a comment
  • Context propagation is correct
  • Goroutine lifetimes are bounded

[Include only the section matching the stated language]

3. Change-Type-Specific Checks

For bug fixes:

  • A test exists that would have caught this bug
  • The fix addresses root cause, not symptom
  • Related code paths checked for the same issue

For features:

  • Acceptance criteria met
  • Edge cases handled (empty, large, concurrent)
  • Error paths tested, not just happy path
  • Telemetry/logging added for debugging

For refactors:

  • Behaviour unchanged (tests still pass)
  • No scope creep — refactor only
  • Complexity reduced, not just moved

For dependency upgrades:

  • Breaking changes reviewed
  • Security advisories checked
  • License compatibility verified

[Include only the section matching the stated change type]

4. Risk-Appropriate Checks

Low risk: basic correctness, style conventions, test coverage Medium risk: above + rollback plan, monitoring updates, performance considerations High risk: above + security implications, data migration safety, feature flag/gradual rollout Critical risk: above + staging validation plan, incident response plan, post-deploy verification checklist

5. Testing Adequacy
  • Unit tests cover new logic
  • Integration tests cover the contract changes
  • Edge cases tested
  • Failure modes tested
  • Performance tests if performance-sensitive
6. Review Decision Framework

Approve if: [2-3 specific conditions based on this PR] Request changes if: [Specific blockers] Comment (non-blocking) if: [Items worth discussing but not blocking merge]

7. Common Pitfalls for This Change Type

Based on the change type and language, flag 2-3 things reviewers typically miss for this combination.


Deeper Materials

This skill ships with support files — use them when they are available:

  • references/review-depth-calibration.md — Calibrating Review Depth: Not Every PR Deserves the Same Eyes. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
  • templates/review-record.md — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.

Scoring Rubric (0–40)

Score any output of this skill before handing it over; 32+ is ship-quality.

Dimension 0 5 10
Language specificity Checks could apply to any language — a swapped-in language name would change nothing Correct language block chosen, but checks restate the template rather than this PR's constructs Every correctness check names a construct actually in the diff (goroutines, promise chains, context managers)
Risk-depth calibration Same depth regardless of stated risk level Depth roughly scales, but high-risk extras (rollback plan, staged rollout, monitoring) are missing or token Depth matches the stated risk exactly and the review-time estimate follows the diff size guide
Decision-framework sharpness "Approve if it looks good" — no named conditions Blockers listed but untestable; a reviewer can't tell when they're satisfied Every approve/block/comment condition is checkable against a specific test, flag, metric, or artifact
Pitfall specificity Pitfalls absent or generic ("watch for bugs") Pitfalls match the language or the change type, but not the combination 2–3 pitfalls that only make sense for this exact language + change-type combination

Quality Checks

  • Checklist is tailored to the stated language (not generic)
  • Change-type-specific section is included
  • Risk-appropriate depth matches stated risk level
  • Decision framework includes at least one named blocking condition and one named non-blocking comment condition
  • Common pitfalls are specific to the stated language + change-type combo (not generic advice like "watch out for bugs")

Anti-Patterns

  • Do not generate a generic checklist that ignores the stated language — a Python checklist and a Go checklist have fundamentally different correctness concerns
  • Do not treat "looks fine" as a valid review outcome — the checklist exists to surface specific concerns, not validate a superficial read
  • Do not scope a "high risk" review the same as a "low risk" review — depth must scale with the stated risk level
  • Do not flag every stylistic preference as a blocking issue — distinguish between blocking correctness issues and non-blocking comments
  • Do not skip the "common pitfalls" section for the stated language and change-type combination — this is where the most valuable knowledge lives

Usage Examples

  • "Generate a code review checklist for [PR description]"
  • "What should I check in this pull request?"
  • "Give me a code review checklist for a [language] [change type]"
  • "Review checklist for a high-risk PR in [language]"
1---
2name: code-review-checklist
3description: "Generate a tailored code review checklist for any pull request based on the language, type of change, and risk level. Use when asked to review code, check a PR, review a pull request, or generate a code review checklist. Produces a focused checklist with language-specific checks, risk-level-appropriate depth, and a clear approve/request-changes recommendation."
4---
5 
6# Code Review Checklist Skill
7 
8Produces a tailored code review checklist for a specific pull request — scaled to the language, type of change, and risk level. Not a generic template.
9 
10## Required Inputs
11 
12Ask the user for these if not provided:
13- **Language and framework** (e.g. TypeScript + React / Python + FastAPI / Go)
14- **Type of change** (feature / bug fix / refactor / dependency upgrade / security patch / performance)
15- **Risk level** (low / medium / high / critical)
16- **PR description** (paste the description or link to the PR)
17- **Code or diff** (optional — paste key changed files or a `git diff`; significantly improves checklist specificity)
18- **Author context** (new starter / experienced / external contributor)
19 
20## Output Format
21 
22---
23 
24# Code Review: [PR Title or Reference]
25 
26### 1. PR Overview
27**Scope assessment:** [Small / Medium / Large / Too large — should be split]
28**Recommended review depth:** [Skim / Standard / Deep dive]
29**Estimated review time:** [e.g. 20–30 min — use 5 min per 50 lines of diff as a rough guide]
30 
31### 2. Correctness Checks
32 
33Language-specific correctness checks — choose based on the language stated:
34 
35**For TypeScript/JavaScript:**
36- Type definitions match actual usage
37- No implicit `any` in non-test code
38- Async/await used consistently; no unhandled promises
39- Null/undefined handling is explicit
40 
41**For Python:**
42- Type hints present on public functions
43- Exception handling is specific (no bare except)
44- Resources are closed (context managers, with blocks)
45 
46**For Go:**
47- Errors are handled or explicitly ignored with a comment
48- Context propagation is correct
49- Goroutine lifetimes are bounded
50 
51[Include only the section matching the stated language]
52 
53### 3. Change-Type-Specific Checks
54 
55**For bug fixes:**
56- A test exists that would have caught this bug
57- The fix addresses root cause, not symptom
58- Related code paths checked for the same issue
59 
60**For features:**
61- Acceptance criteria met
62- Edge cases handled (empty, large, concurrent)
63- Error paths tested, not just happy path
64- Telemetry/logging added for debugging
65 
66**For refactors:**
67- Behaviour unchanged (tests still pass)
68- No scope creep — refactor only
69- Complexity reduced, not just moved
70 
71**For dependency upgrades:**
72- Breaking changes reviewed
73- Security advisories checked
74- License compatibility verified
75 
76[Include only the section matching the stated change type]
77 
78### 4. Risk-Appropriate Checks
79 
80**Low risk:** basic correctness, style conventions, test coverage
81**Medium risk:** above + rollback plan, monitoring updates, performance considerations
82**High risk:** above + security implications, data migration safety, feature flag/gradual rollout
83**Critical risk:** above + staging validation plan, incident response plan, post-deploy verification checklist
84 
85### 5. Testing Adequacy
86- Unit tests cover new logic
87- Integration tests cover the contract changes
88- Edge cases tested
89- Failure modes tested
90- Performance tests if performance-sensitive
91 
92### 6. Review Decision Framework
93 
94**Approve if:** [2-3 specific conditions based on this PR]
95**Request changes if:** [Specific blockers]
96**Comment (non-blocking) if:** [Items worth discussing but not blocking merge]
97 
98### 7. Common Pitfalls for This Change Type
99Based on the change type and language, flag 2-3 things reviewers typically miss for this combination.
100 
101---
102 
103## Deeper Materials
104 
105This skill ships with support files — use them when they are available:
106 
107- **`references/review-depth-calibration.md`** — Calibrating Review Depth: Not Every PR Deserves the Same Eyes. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
108- **`templates/review-record.md`** — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.
109 
110## Scoring Rubric (0–40)
111 
112Score any output of this skill before handing it over; 32+ is ship-quality.
113 
114| Dimension | 0 | 5 | 10 |
115|---|---|---|---|
116| **Language specificity** | Checks could apply to any language — a swapped-in language name would change nothing | Correct language block chosen, but checks restate the template rather than this PR's constructs | Every correctness check names a construct actually in the diff (goroutines, promise chains, context managers) |
117| **Risk-depth calibration** | Same depth regardless of stated risk level | Depth roughly scales, but high-risk extras (rollback plan, staged rollout, monitoring) are missing or token | Depth matches the stated risk exactly and the review-time estimate follows the diff size guide |
118| **Decision-framework sharpness** | "Approve if it looks good" — no named conditions | Blockers listed but untestable; a reviewer can't tell when they're satisfied | Every approve/block/comment condition is checkable against a specific test, flag, metric, or artifact |
119| **Pitfall specificity** | Pitfalls absent or generic ("watch for bugs") | Pitfalls match the language *or* the change type, but not the combination | 2–3 pitfalls that only make sense for this exact language + change-type combination |
120 
121## Quality Checks
122- [ ] Checklist is tailored to the stated language (not generic)
123- [ ] Change-type-specific section is included
124- [ ] Risk-appropriate depth matches stated risk level
125- [ ] Decision framework includes at least one named blocking condition and one named non-blocking comment condition
126- [ ] Common pitfalls are specific to the stated language + change-type combo (not generic advice like "watch out for bugs")
127 
128## Anti-Patterns
129 
130- [ ] Do not generate a generic checklist that ignores the stated language — a Python checklist and a Go checklist have fundamentally different correctness concerns
131- [ ] Do not treat "looks fine" as a valid review outcome — the checklist exists to surface specific concerns, not validate a superficial read
132- [ ] Do not scope a "high risk" review the same as a "low risk" review — depth must scale with the stated risk level
133- [ ] Do not flag every stylistic preference as a blocking issue — distinguish between blocking correctness issues and non-blocking comments
134- [ ] Do not skip the "common pitfalls" section for the stated language and change-type combination — this is where the most valuable knowledge lives
135 
136## Usage Examples
137- "Generate a code review checklist for [PR description]"
138- "What should I check in this pull request?"
139- "Give me a code review checklist for a [language] [change type]"
140- "Review checklist for a high-risk PR in [language]"
141 

Discussion

Alternatives

Also in Code reviewSee all 533 in Development →