AI CodingEngineering Architecture

When AI Writes Faster Than Humans Can Read, What Is Left of Code Review?

A pull request was merged. It updated the timeout logic for background sessions. The code was clean and well-formatted, every automated test passed, the AI reviewer left only a minor suggestion to add a log line, and the human reviewer quickly approved it. Two weeks later, data exports for enterprise customers began failing at scale with timeouts. Background jobs were terminating at the four-hour mark—jobs that were originally expected to finish within three hours. The engineering team spent three full days digging through logs and commit history before finally tracing the failures to that change from two weeks earlier: it assumed every background job could finish within a standard interactive session. Yet that assumption had ceased to hold six weeks prior, when the team launched a custom enterprise tier for large customers whose data volumes far exceeded those of standard users. Because that earlier product change wasn’t in the PR’s diff, the AI couldn’t see it, and the person who clicked Approve never connected the dots. The fix required a single line of configuration, but investigating the incident and explaining it to customers took a full week.

This case comes from a public postmortem written by the engineering team’s lead. After the 12-person team introduced Claude Code into their review workflow, PR turnaround time dropped from 47 hours to under 3 hours. Encouraged by those efficiency gains, the team decided to make human review optional. Less than three weeks later, the change that broke session expiration slipped into the main branch. As the author later reflected, the critical mistake was making humans optional.

The incident exposed a long-standing misconception in software engineering: we routinely assume that an approved PR means the code has been thoroughly understood. On October 15, 2026, Anthropic’s Claude Code team published their internal code review practices alongside the general availability launch of Code Review for enterprise customers. Stripping away the marketing pitch, their reason for overhauling code review internally is straightforward: machines now write code dozens of times faster than humans can read it. The old mechanism—relying on humans to read code from top to bottom to simultaneously catch defects, understand context, and assume accountability—can no longer hold up.

Why All-Green Checks Still Don’t Prevent Incidents

Historically, code review worked precisely because humans read code slowly. Spending the better part of an hour reading through a few hundred lines of changes forced a deliberate pace that accomplished three things at once. First, you hunted for errors between the lines, catching null pointers and boundary conditions—that was defect detection. Second, you mentally aligned the author’s intent with the broader system architecture, and in the process remembered that an extended export toggle had recently been switched on for enterprise customers—that was context alignment. Third, you clicked Approve, stamping your name into the commit history and sharing the burden if production broke—that was accountability binding.

At a deeper level, writing code used to be the most expensive and scarce phase of the entire software development lifecycle. PR review was never the system bottleneck, so no one felt compelled to aggressively compress review time. Once we introduced coding agents, however, the marginal cost of writing code dropped to near zero. An engineer can now prompt a model to generate a block of code in two or three minutes, multiplying commit volume several times over in a short span. When writing code is no longer the constraint, PR turnaround naturally becomes the single largest bottleneck in the delivery pipeline, and engineer attention becomes the scarcest resource.

The shifting engineering bottleneck: in the past, writing code was the most expensive phase and PR review was not the bottleneck; once coding agents drove code generation costs to near zero, PR turnaround and engineer attention became the new bottleneck.

This shift in marginal cost quickly unbundled those three functions that used to happen together. An all-green automated test suite only proves that a change hasn’t violated rules explicitly encoded in the repository’s existing assertions. If a feature for a large enterprise customer shipped without integration tests covering long-running exports, the test suite will happily stay green. An unobjecting AI review merely means that within the current diff and the static context of a few surrounding files, there are no obvious syntax or logic contradictions or known security vulnerabilities. As for human reviewers, once they get used to a machine doing the first pass, the mindset behind clicking Approve subtly shifts: from actively verifying that the code is safe to assuming that since the machine didn’t flag anything, and nothing looks obviously wrong at a glance, it must be fine.

Traditional workflows treated “someone read this” as a proxy for “someone is accountable for this” because reading complex code demanded real cognitive effort; anyone willing to grind through a change line by line had usually thought through its systemic risks as well. Now, reading code has become the machine’s job—yet a machine cannot take responsibility for the team in an incident postmortem. The people who actually have to explain production outages to customers have retreated to the periphery of the review process, neither truly grasping the systemic impact of a change nor maintaining their psychological guard at the moment they click Approve. The approval remains, but comprehension and accountability have quietly eroded.

Why Asking Humans to Read More Carefully Isn’t the Answer

Whenever a production incident occurs, a team’s first instinct is usually to tighten the screws: demand that everyone read PRs more carefully and force comprehension back into the workflow through human effort. Against the reality of modern engineering throughput, that path is a dead end. The first obstacle is the physiological ceiling of human attention. In a classic empirical study covering 50 developers and 3.2 million lines of code, SmartBear and Cisco found a hard threshold for human code review effectiveness: defect detection quality is highest when reviewers read fewer than 300 lines per hour; once reading speed exceeds 450 lines per hour, the density of discovered defects drops sharply in the vast majority of cases.

Put that 300-line-per-hour ceiling into today’s development pace, and engineering hours immediately run dry. Anthropic disclosed a telling set of internal metrics: by September 2026, their main monorepo was seeing more than 30,000 merges per day, and roughly 90% of the code in the Claude Code repository was generated by models. Even if a typical team operates below that scale, once agents help engineers double or triple their weekly commit volume, continuing to demand line-by-line human inspection for every PR leaves only two outcomes: either the release queue grinds to a halt across the board, or engineers scroll through screens at 2,000 lines per hour, turning code review into unspoken theater.

Step back even further: even if we had spent a full hour reading that session-expiration change three times over, the problem still would have slipped through—because what made it fatal wasn’t in the code diff at all. The change itself was neatly formatted with sound exception handling; looking solely at the code could never reveal that it would break a business premise established six weeks earlier. As Bacchelli and Bird pointed out long ago in an empirical study on code review, the core value of code review is not just finding bugs, but understanding code intent and transferring knowledge. When humans wrote the code, the author carried the business context in their head, and review was an alignment between two minds. Now that machines generate large blocks of code, even the author’s own memory of edge-case assumptions is growing blurry. Staring at a few web pages of code diffs, no one can piece together implicit history that lives outside the repository.

Yet this is not an exclusively human advantage. If we look closely at this outage, the AI reviewer missed the issue because we only gave it an isolated code diff. If we also fed the team’s internal documentation, product changelogs, and historical incident postmortems into the system—and asked it to check whether the change could affect background job duration—it would have had every chance of catching the flaw too. With model reasoning capabilities advancing rapidly today, giving AI cross-system context is merely an engineering implementation problem. Expecting human biological memory to brute-force an increasingly complex business backdrop is neither realistic nor economical.

Before building out that context pipeline, however, we must understand the limitations of existing tools. The open-source benchmark ReviewBench tested more than a dozen mainstream code review agents across real-world repositories in multiple languages and found a consistent pattern: while the vast majority of suggestions they report are valid, they miss more than half of the real underlying defects. An independent empirical evaluation of CodeRabbit across tens of thousands of PRs similarly showed that engineers directly ignore or reject a large volume of machine suggestions. Explicit structural checks—syntax, null pointers, and call signatures—should be handed off to machines to filter, while areas involving business assumptions and architectural decisions still require scarce human attention to be deployed with precision.

Splitting Review into Three Stages: Inside Anthropic’s Approach

Recognizing the premise that machines only catch local issues and human attention is scarce, Anthropic did not try to build an omniscient super-reviewer. Instead, they took the review work that used to pile up on the PR page and distributed it across three stages of the development lifecycle. Stretching from local development all the way to the final merge gate, this pipeline shifts the center of gravity from chasing approval speed to defending the system intent and lines of accountability behind the code.

Anthropic’s three-stage code review pipeline: pre-PR local verification with a fresh agent review, during-PR multi-agent defect detection and convergence voting, and merge-time risk classification with mandatory human sign-off.

The first stage happens before the PR: local self-verification and cross-review. Before code is submitted as a PR, it must pass tests, builds, and linter checks locally, with the actual execution output attached to the submission message. Next, the system invokes a sub-agent with a brand-new context to independently review the change. An agent that has just finished writing the code carries its own reasoning inertia and easily rationalizes potential bugs; a clean agent that sees only the resulting changes—without knowing how they were generated—can usually spot low-level errors much faster, intercepting most trivial issues before submission.

The second stage happens during the PR: automated defect discovery and convergence. After a PR is submitted, Anthropic runs multiple groups of agents in parallel to scan the changes from different perspectives, each proposing potential defects or improvements. Another group of agents acts as verifiers, cross-voting on the candidate issues so that only findings with sufficient support are surfaced on the PR page, while code style nitpicks and trivial cleanup suggestions are suppressed. More importantly, the system introduces a safeguard against infinite churn: when AI sits on both ends—writing code and finding faults—the two sides can easily fall into endless mutual polishing. Anthropic sets a three-round cap on this process; if the changes still fail to converge after three rounds of revisions, the system forces the author to stop and redesign.

The third stage sits at the merge gate: accountability routing and mandatory sign-off. All preceding machine reviews only offer feedback; they have no authority to approve or block a PR. Whether a change can be merged is governed by cascaded risk classifiers that determine how many human signatures are required. Low-risk changes (such as pure documentation, small internal tools, or incremental code hidden behind a feature flag) are allowed to merge with 0 human signatures if all tests are green and the author is on a trusted list. Medium-risk changes (such as standard business logic, or sensitive areas involving caching, auto-updaters, or system prompts) require approval from 1 human engineer. Core high-risk paths or critical configurations mandate 2 human signatures. A second classifier also performs a secondary check on low-risk code and can escalate it to the human track at any time if it detects anomalous patterns.

In assigning accountability, Anthropic upholds three ironclad rules: first, an agent’s opinion does not count—no matter how many models concur, they cannot replace a human signature; second, an approval applies only to a specific commit and is immediately invalidated the moment new changes are pushed; third, the person who directed the agent to write the code must be one of the signers. Over four months, the number of PRs merged into the Claude Code repository more than doubled, the proportion of merges requiring a rollback dropped by over 40%, and the average number of review rounds per PR fell from over two to just above one. Machines can do the legwork, but the keys to release remain in human hands.

How Should Everyday Engineering Teams Put This into Practice?

For most teams that do not face massive throughput pressure, copying Anthropic’s entire system wholesale is neither realistic nor necessary. The far more practical takeaway is to split review by risk and keep accountability anchored to humans.

In practice, rollout should proceed from the back of the pipeline toward the front. Step one is checking whether you actually have fast rollback and canary release capabilities. The 2025 DORA industry survey points out that while widespread AI adoption drives up delivery throughput, it simultaneously amplifies system instability—and more than 90% of teams across the industry still rely on batch releases. If deploying to production is a major ordeal and an incident cannot be rolled back within minutes, blindly compressing review time will only cause poorly thought-out changes to pile up in production faster. Without solid rollback and monitoring as a safety net, talking about automated sign-off is no different from ripping out the brakes before driving onto the highway.

Step two is using real incidents to build your own evaluation suite. Anthropic’s practice is to turn every production outage and code rollback into a test case, running against real historical failures before tuning review rules. A team can gather 20 to 30 real PRs from the past six months that caused production outages, emergency hotfixes, or severe blockers, and use them as the yardstick for evaluating AI review tools. Only when a tool can reliably catch the pitfalls your team has actually stepped into—without generating an overwhelming flood of irrelevant noise—does it earn the right to enter your main workflow.

Step three is tailoring the review process to your team’s size. Small teams (around 10 people) are well suited to using AI as a strict pre-review filter: adopt a capable review tool, document architectural red lines and off-limits zones directly in the repository, cap automated reviews at no more than three rounds, and hold the baseline that model approvals never count toward compliance requirements. Rules can be moderately relaxed for documentation and purely static copy changes, while core logic involving business state transitions, billing, and authentication should be conscientiously handed to human engineers for slow, careful reading.

Suppose another PR comes along the next day and inadvertently changes a critical business timeout—at what step can this workflow intercept it? Expecting a bot to understand a business change the team made months ago from a few dozen lines of diff is an almost impossible task. If that bug is kept from slipping into the main branch—or from causing lasting harm—it will be because the risk classifier saw it touch a core state boundary and insisted on pulling in the engineer who knows the business best; or because the engineer signing off knew syntax errors had already been checked, leaving verification of business assumptions as their sole task at the screen; or, if the first two steps missed it, because canary monitoring caught the anomaly the moment the first long-running job failed and immediately triggered a rollback. Once AI drastically compresses the cost of both writing and reading code, the center of gravity in code review is no longer literal bug-hunting on the page—it is concentrating finite human attention on non-delegable accountability, while keeping a reliable escape route ready for the mistakes that can happen at any time.