Skip to content

About

Code review checklist for people and AI agents: 202 stable checks, from a single diff up to production and incidents. Every stable check cites three independent organisations and ends in PASS, FAIL, or N/A with file:line evidence.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

247 Commits

Folders and files

Good Code Review

A code review checklist for people and agents. Each stable rule cites at least three independent organisations, and every check ends in PASS, FAIL, or N/A with file:line evidence.

check Code: MIT Content: CC BY 4.0

Good Code Review is a set of Markdown files. An AI coding agent loads them as a "skill" (a folder of instructions it reads when you ask), or you work through them by hand. You ask for a review of your code and get back a list of verdicts, each naming a rule and a line.

A terminal recording: an agent reviews a real pull request and prints FAIL and PASS lines with file and line evidence

That is a real run on a pull request of mine (how it was made: docs/demo). A shorter sample, with made-up paths and lines:

Verdict: request changes - change, function - 2 block, 1 should-fix FAIL, 1 PASS, 14 N/A
FAIL [block] chg-expand-contract - src/a.py:42 - renames the column and drops the old one in one migration
FAIL [block] svc-sqli-authn - src/db.py:88 - proven: builds the WHERE clause with an f-string from request.args
FAIL [should-fix] chg-one-concern - src/b.py:7 - a logging rewrite rides along with the bug fix
PASS chg-breaking-change-taxonomy - src/c.py:15 - no signature or return shape changes
N/A: 14 cards, applies_when does not hold

Pick what you are reviewing (a diff, a function, a service, a whole codebase, a production setup, or an incident) and you get the checks for that level. Each check has a FAIL example and a PASS example, so a reviewer, human or agent, knows what each verdict means. Anyone can check the review afterwards, because every verdict names a card and a line.

There are 202 stable checks: 188 across the eight levels and 14 in the language packs. The site prints the live count on its home page.

How it differs

  • A linter enforces rules about syntax. These cards cover what a reviewer decides: scope, compatibility, failure handling, rollout.
  • An AI reviewer brings its own judgment. Here the agent reviews against a fixed rule set, and each stable card links the published sources behind it.
  • A style guide says what to do. A card says what to check and when it fails.

Where the rules come from

Each stable check is backed by at least three independent organisations that have published the same practice. The exception is a check whose source is the maintainer's own guide, which the repository records (ADR 0001). The card links every source. The organisations include Google, Microsoft, GitHub, AWS, Stripe, Cloudflare, Mozilla, OWASP, W3C, IETF, NIST, and GOV.UK. Those organisations did not write or endorse this project. Checks with less backing stay as drafts and never decide a verdict. docs/COVERAGE.md maps every source to its cards.

Quick start

Paste this to your agent:

Read https://goodcodereview.com/llms.txt and use it to review my code.

To install it as a skill (Claude Code, Codex, Cursor, and other tools that read skills/<name>/SKILL.md), run:

npx skills add n0nuser/goodcodereview

After you install the skill, name it in your request, such as /good-code-review review this PR. An agent that is not told may review without it.

The skill folder also holds two focused skills, review-code-security and review-code-accessibility. Each reads its card list from goodcodereview.com, so it needs network access. In a sandbox without network access, use good-code-review, which carries the cards with it.

To install it as a Claude Code plugin, run:

/plugin marketplace add n0nuser/goodcodereview
/plugin install goodcodereview@goodcodereview

To review by hand, open https://goodcodereview.com, pick a level, and work through the checklist.

For tools and agents

Everything is static files, served without a server, an account, or a key:

The only stability promise is the one in docs/api-versioning.md.

Choose a starting point

  • To review a change, start with cards/change/.
  • To audit existing code, pick a level in cards/audit/: function, module, service, system, codebase, production, or incident.

Scope a review

Pick concerns, topics, and levels on the Concerns page. The picks live in the address, so you can share them and agents can fetch them:

https://goodcodereview.com/concerns?concern=security,performance&level=function
https://goodcodereview.com/concerns.md?concern=security,performance
https://goodcodereview.com/cards.json?topic=forms

concern, topic, and level take comma-separated values or repeat. A card matches when it has any value given for each filter. group=concern|level|topic groups the list.

cards.json is one file with no pagination. Each level has its own file, cards/<level>.json, and each concern has cards/concern-<concern>.json and concerns/<concern>.md. cards-index.json is a slim lookup table. docs/cards-json.md says how to fetch part of it. The shape carries a schema_version, and docs/api-versioning.md is the versioning policy.

Verdict format

Each check gets PASS, FAIL, or N/A, with file:line evidence. A FAIL carries the card's severity: block, should-fix, or discuss.

Contributing

Send one card per pull request. See CONTRIBUTING.md. Agents: see AGENTS.md.

See also docs/COVERAGE.md, which maps sources to cards, and docs/deploy.md.

Find what you need

Licence

Code (tools/, workflows) is under the MIT licence. Content (cards/, packs/, glossary/, docs/) is under CC BY 4.0.

Created and maintained by Pablo Jesús González Rubio.

About

Code review checklist for people and AI agents: 202 stable checks, from a single diff up to production and incidents. Every stable check cites three independent organisations and ends in PASS, FAIL, or N/A with file:line evidence.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages