Code Review Checklist Template

Too many review comments argue about formatting a linter could have fixed. Meanwhile the new endpoint with no authorisation check goes through with two approvals.

This free code review checklist sets one standard for authors and reviewers on every pull request or merge request. Engineering teams use it to agree what a reviewer checks by hand: correctness, tests, security, performance, readability, documentation and dependencies. It adds a second reviewer and a security review for high-risk changes, and it records the merge rules your repository enforces.

Use This Template Free See Live Example
No Credit Card Required

Machines, Platform Rules and People Each Check Different Things

A review checklist that asks people to check indentation wastes the scarcest thing in the process, which is a reviewer’s attention. Split the work three ways. Anything a tool can decide runs in CI and blocks the merge on its own. Merge rules live in branch protection. Human reviewers get the questions only a person can answer: is this the right change, is it correct, and would the next engineer understand it.

Automated in CI

Do not review by hand

Checks: formatting, lint, type checks, unit tests, build, known-vulnerable dependencies, licences, secret scanning.

Enforced by: required status checks.

Human review

This checklist

Checks: intent, correctness, design, test quality, security logic, performance, readability and docs.

Enforced by: the reviewer, using an agreed standard.

Platform rules

Who must approve

Checks: number of approvals, code owners, re-approval after new commits.

Enforced by: GitHub branch protection or rulesets, GitLab approval rules.

Be clear about where the review itself happens. Comments, suggestions and approvals belong in GitHub or GitLab, next to the diff, and routine changes need nothing more than this standard pasted into the pull request template. CheckFlow is for the parts the platform does not hold: the written standard everyone signs up to, a gate with named approvers for high-risk changes, and a quarterly audit of whether review is working.

What the Code Review Checklist Covers

Seven phases follow a change from the author’s preparation to merge. The review decision halts the checklist until it is recorded, Changes requested adds a rework task, and a High change risk adds the high-risk gate in Phase 6.

Phase 1

Phase 1: Author Preparation

The change risk on the first task decides whether Phase 6 appears.

  • Record the pull request link, the author and the change risk — Low, or High for authentication, payments, data migrations, infrastructure or permissions
  • Keep the change small enough to review properly — Google’s guidance treats about 100 lines as usually reasonable and 1,000 as usually too large
  • Separate refactoring from behaviour changes — a rename across 40 files hides the one line that matters
  • Write a description that says what changed and why — linked ticket, what is out of scope, how to test it, screenshots for UI changes
  • Read your own diff before requesting review — debug output, commented-out code and files that should not be there
  • Request review only once CI passes — reviewers should not spend time on a build the pipeline will reject
Phase 2

Phase 2: Correctness & Design

  • Check the change does what the ticket asks, and nothing else — unrelated edits go in their own pull request
  • Walk the edge cases — empty and null input, boundaries, concurrency, retries, time zones and partial failure
  • Check error handling fails safely — errors surface with context, nothing is silently swallowed, and failure denies rather than allows
  • Check the design fits the codebase — logic in the right layer, no duplicated code, no abstraction without a second use
  • Check compatibility of anything others depend on — public APIs, events, configuration and database schemas
  • Ask a question when the intent is unclear — a guess in review becomes a wrong assumption in production
Phase 3

Phase 3: Tests

  • Confirm tests cover the new behaviour — and, for a bug fix, a test that reproduces the original bug
  • Check the tests would fail if the code were wrong — meaningful assertions, not coverage for its own sake
  • Check error and edge paths are tested — not only the happy path the author ran by hand
  • Look for flaky patterns — fixed sleeps, order-dependent tests and calls to real external services
  • Check test data holds no real personal data or credentials — fixtures end up in logs and forks
Phase 4

Phase 4: Security, Performance & Dependencies

  • Check authorisation on every new endpoint and action — on the server, per object; Broken Access Control is still first in the OWASP Top 10:2025
  • Check untrusted input is validated and output encoded — parameterised queries and no string-built commands; Injection is A05:2025
  • Check no secrets or sensitive data reach code, config or logs — secret scanning catches known token formats, not every password
  • Look for slow paths — N+1 queries, unbounded result sets, missing pagination and network calls without timeouts
  • Justify every new dependency — maintained, needed and on an allowed licence; Software Supply Chain Failures is new at A03:2025
Phase 5

Phase 5: Readability, Docs & Decision

The decision is a required dropdown and the checklist halts until it is recorded. Changes requested shows the rework task.

  • Check names and structure explain the code — comments say why, not what
  • Mark optional comments as optional — Google’s guidance prefixes points of polish with “Nit:” so the author knows they can be ignored
  • Check documentation moved with the code — README, API docs, runbooks, changelog and any decision record
  • Record the review decision — Approved or Changes requested, with the blocking comments listed
  • Author resolves each comment and requests review again — reply to every thread; fix it or explain why not
Phase 6 — High risk

Phase 6: High-Risk Change Gate

Tasks appear only when the change risk is High. The security reviewer records Approved or Not approved on the last task, and the checklist halts until they decide.

  • Assign a second reviewer who knows the affected system — picked with the Members picker, not whoever is free
  • Review against the relevant OWASP ASVS 5.0 requirements — authentication, session management, authorisation, and the new chapters on tokens and OAuth
  • For data migrations, check the change is backward compatible — old code must keep working against the new schema until the release is complete
  • For infrastructure changes, review the plan output as well as the code — Terraform plan, IAM wildcards and anything that destroys and recreates
  • Confirm the rollback path — a feature flag, a revert or a documented manual step
  • Record the security decision — Approved or Not approved, with conditions
Phase 7

Phase 7: Merge & Follow-Up

  • Confirm the required approvals and code owner reviews are in place — branch protection enforces them; the checklist records them for high-risk changes
  • Get a fresh approval if commits were pushed after the last one — unless the repository already dismisses stale approvals
  • Merge using the team’s convention — squash or merge commit, with a message that names the ticket
  • Delete the branch and update the ticket — so nobody builds on a merged branch
  • Hand the change to the deployment process — risky changes deploy behind a flag with a rollback plan

Merge Rules That Enforce the Standard

A checklist nobody is forced to follow becomes optional by the third busy week. These repository settings make the important parts mandatory. Names are from GitHub and GitLab documentation as of 6 October 2026; several GitLab settings need a paid tier.

What you want GitHub GitLab
No merge without reviewRequire a pull request before merging, with a set number of approvalsApproval rules with required approvals
Owners review their codeRequire review from Code Owners, using a CODEOWNERS file in .github/, the root or docs/Code Owners as eligible or required approvers
Authors cannot approve themselvesBuilt in: a pull request author cannot approve their own pull requestPrevent approval by author, on by default
New commits need a new lookDismiss stale pull request approvals when new commits are pushedRemove all approvals when commits are added to the source branch
The last pusher is not the last approverRequire approval of the most recent reviewable pushPrevent approvals by users who add commits
Tools pass before people mergeRequire status checks to passPipelines must succeed
Dependency and licence policyDependency review action with an allow-licenses listLicense approval policies (Ultimate tier)

Two gotchas catch teams out. A CODEOWNERS file over 3 MB is not loaded at all, so code owners stop being requested without any warning on the pull request. And the dependency review action’s older deny-licenses option is deprecated, so new set-ups should list allowed licences instead.

Speed matters as much as rules. Google’s engineering practices say one business day is the maximum time to respond to a review request. SmartBear’s study of review at Cisco found reviewers lose effectiveness beyond 200 to 400 lines at a time or faster than about 500 lines an hour, which is another reason the checklist starts with keeping changes small.

Why Keep Your Review Standard in CheckFlow?

1

A gate for the changes that matter

Most pull requests never need CheckFlow. When the change risk is High, the gate appears: a second reviewer named with the Members picker, ASVS-based security tasks, and a security approval that halts the checklist until it is recorded, with the decision in the audit trail.

2

A quarterly audit of review itself

A recurring schedule opens a review audit each quarter. A table inside the audit task holds a sample of merged pull requests, with approvals, time to first review and size, so you can see whether the standard is followed or just published.

3

One standard across repositories

Tags separate teams and services, and a data set lists your repositories with their code owners and risk level. The phases double as the text of your pull request template, so the platform and the gate ask the same questions.

Review is one stage of shipping. The product side runs through the Feature Release Process Checklist, and the deploy and rollback through the Production Deployment & Rollback Checklist. Fixes found in review that point to a wider problem belong in the Bug Tracking & Resolution Checklist.

Infrastructure and permission changes that pass review still need change approval, which the IT Change Management Checklist covers. CheckFlow’s workflow software shows how approvals and conditional steps work across teams.

Frequently Asked Questions

What should a code review checklist include?

+

The questions only a person can answer: does the change do what the ticket asks, is it correct at the edges, do the tests prove it, is it secure, will it perform, can the next engineer read it, and did the docs move with it. Leave formatting, lint, type checks and known-vulnerable dependencies to CI, where they block the merge without anyone spending attention on them.

How big should a pull request be?

+

Small enough to review in one sitting. Google’s engineering practices call about 100 lines usually reasonable and 1,000 lines usually too large, and note that a change spread across many files is bigger than its line count suggests. SmartBear’s study at Cisco found defect detection drops beyond 200 to 400 lines per review session. Split refactoring from behaviour changes to get there.

How many approvals should a pull request need?

+

One approval from someone other than the author is a common baseline, enforced by branch protection. Add a code owner review for owned paths, and a second reviewer plus a security review for high-risk changes such as authentication, payments, data migrations and infrastructure. More approvals on every change mostly add waiting time, so put the extra scrutiny where the risk is.

Which OWASP resources help with secure code review?

+

Three are useful. The OWASP Top 10:2025, released in November 2025, names the most common risk categories, with Software Supply Chain Failures and Mishandling of Exceptional Conditions new this edition. The Application Security Verification Standard 5.0, released in May 2025, gives testable requirements to review against. The OWASP Code Review Guide v2 explains how to run a manual security review.

Does CheckFlow replace pull request reviews in GitHub or GitLab?

+

No. Comments, suggestions and approvals should stay next to the diff, and branch protection should stay the thing that blocks a merge. CheckFlow holds the written standard, runs the gate for high-risk changes with named approvers and an audit trail, and runs the quarterly audit of how review is working in practice.

Is CheckFlow free for this template?

+

14-day free trial, no card required. The Business plan is $10 per user per month after the trial. Full details at checkflow.io/pricing.

Spend Review Time Where It Catches Real Problems

Free trial — no credit card required.