# The Claude Code Review Playbook, Across Every AI Tool

On October 15, 2026, the Claude Code team published
[How the Claude Code team does code review](https://claude.dev/blog/solving-code-review-at-anthropic/).
Between June and September, merged pull requests to Claude Code's codebase
"more than doubled while the share that had to be reverted fell by more than 40
percent." EvalGate is not affiliated with Anthropic; this is our reading of a
public post.

## The loop that compounds

- "When the automated reviewer keeps flagging the same thing, we fix it at the
  source: in the skill, with a lint rule, or with updates to instructional
  files."
- "Any incidents are now an eval."
- "Turn incidents and reverts into an eval set, and rescore the reviewer
  whenever its prompts, tools or model change."

## More than one tool

Teams that split work across Claude Code, Cursor, Codex, and Copilot write the
same correction into several instruction files. A check that runs in CI shows
whether the correction held, regardless of which tool wrote the change.

## The checklist, mapped

| The post recommends | With EvalGate |
| --- | --- |
| "a REVIEW.md where repeated comments go" | Keep it; also save testable repeated comments as checks that CI runs. |
| "Turn incidents and reverts into an eval set" | Write the incident as an executable regression case and prove the known-bad version fails; then record your review with `npx @evalgate/sdk label` (feedback, not an assertion). |
| "rescore the reviewer whenever its prompts, tools or model change" | Baseline your reviewer agent, then `npx @evalgate/sdk gate` on changes. |
| "Require CI" | `npx @evalgate/sdk ci --format github` in GitHub Actions, or the GitLab CI recipe. |
| "Never let a bot's approval replace a required human's" | EvalGate reports results; it does not approve pull requests. |
| "Measure human time, with revert and incident rates as the guardrail" | EvalGate does not measure review time; it keeps per-commit gate results to line up with your revert data. |

## What EvalGate doesn't do

AI code review on pull requests, security review, CODEOWNERS and branch
protection, merge queues, feature flags, staged releases, and rollback.

## Start with one incident

In the checkout that owns the behavior, install the SDK, preview local setup,
and apply it after reviewing the proposed files:

```bash
npm install --save-dev @evalgate/sdk
npx @evalgate/sdk init --local --preview --format json
npx @evalgate/sdk init --local --apply --format json
```

Setup creates a placeholder, not an incident regression. Replace it with a real
evaluator that calls your application or reviewer and checks the behavior behind
the incident. Remove customer data from the fixture, review the expected outcome
with the owner, and prove the known-bad version fails and the fixed version passes.
The [coding-agent authoring guide](/docs/guides/write-evals-with-your-agent)
covers preparing those cases. Register the finished specs, then save a run before
labeling it:

```bash
npx @evalgate/sdk discover --manifest
npx @evalgate/sdk run --write-results
npx @evalgate/sdk label --run .evalgate/last-run.json
```

Labeling records human feedback; it does not add an assertion to the gate. Keep
the reviewed incident assertion in the executable suite. Review the non-empty
passing run and commit the application and eval source before accepting a
baseline. Acceptance is a separate human decision, not a step to run against
known-bad behavior:

```bash
npx @evalgate/sdk baseline update
npx @evalgate/sdk gate --format json
```

The unchanged suite should pass. Reintroduce the incident in a disposable
checkout and verify the same gate blocks it, then discard that intentional break.
Re-run discovery whenever specs change. These commands use deterministic offline
checks by default; a model-backed reviewer needs explicit provider configuration
and network permission. Check the installed package's command inventory with
`npx @evalgate/sdk capabilities --format json`.

Your first 10,000 test-case results each month are free, then $1 per 1,000.
