Tenki’s startup program is live: up to $50K in credits and grants.Apply
Code Review

Human Review of AI Code Is a Structural Mismatch

Eddie Wang
Eddie Wangengineering

Share Article:

A developer opens a pull request. The diff is 400 lines of clean, well-structured code. Variable names make sense. The logic flows. Tests pass. The reviewer approves it.

Three weeks later, the migration it introduced quietly corrupts a foreign-key relationship in production. The code looked fine. It compiled. It ran. But the reviewer was reading a novel they didn't write, by an author who doesn't know the characters, and they were expected to catch a plot hole on the first read-through.

That's not a skills gap. That's a structural mismatch between the cognitive model human code review was built on and the code that's now being produced.

Black Duck's June 2026 survey of 831 software engineers found that 97% of development teams now use AI coding tools. GitHub Copilot sits at 83% adoption. Claude Code is at 63%. Most teams run more than one assistant. The code your reviewers are reading today was probably not written by a human. And the review process they're using was designed for a world where it always was.

The cognitive model that human review depends on

Code review was never designed as a line-by-line audit. It works because of shared context. The reviewer knows the codebase. They watched the architecture evolve. They sat in the meeting where the team decided to avoid that ORM pattern because of a production incident last quarter. When a colleague opens a PR, the reviewer is reading a chapter written by someone who shares the same mental model of the system.

That shared context does most of the heavy lifting. It's why a senior engineer can glance at a diff and say "we don't do it that way here" in thirty seconds. They're not reading every line. They're pattern-matching against years of accumulated knowledge about how this specific team writes code in this specific system.

Three assumptions hold the whole thing together:

  1. The author knows the codebase. They wrote the code with existing patterns, constraints, and history in mind.
  2. The reviewer can ask questions. "Why did you pick this approach?" is a one-message conversation with a colleague. It's a dead end with a model.
  3. The volume is manageable. A human writes a few PRs a day. The reviewer can keep up.

All three break when AI generates the code.

What changes at 97% adoption

An AI coding assistant doesn't know the codebase history. It doesn't know that the team abandoned ActiveRecord callbacks after a cascading-delete incident in 2024. It doesn't know that the internal convention is to never store PII in that particular table. It doesn't know the implicit constraint that all payment-related endpoints must go through a specific middleware.

What it does know is how to produce code that looks right. Clean variable names. Correct syntax. Passing tests, if you wrote the tests (or if it wrote the tests for its own code, which is a whole separate problem). The output looks like something a competent engineer would write. That's exactly what makes it dangerous to review.

The Black Duck survey backs this up. Nine in ten teams report hitting problems with AI-generated code somewhere in their workflow. The top friction points? Manual code review (52%), security testing (51%), and reworking the generated output (48%). Among teams where AI-written code has increased by more than half, 57% named security testing and vulnerability fixing as the worst bottleneck.

That last number is telling. The teams producing the most AI-generated code are the ones struggling most to secure it. Volume creates the problem. Human review doesn't scale to match.

You can't catch what you don't recognize

Consider a concrete scenario. A developer asks Claude Code to generate a database migration that adds a new relationship between two tables. The migration runs. The tests pass. The reviewer opens the diff and sees a clean, standard-looking migration file. Nothing jumps out.

But the migration uses a cascade-delete behavior that contradicts the team's data-retention policy. Or it creates an index that will lock a table with 200 million rows during deployment. Or it introduces a subtle column-type mismatch that won't surface until a specific edge case hits production.

The reviewer approves it. Not because they're incompetent, but because the code doesn't trigger any of their pattern-matching heuristics. It looks like code a colleague would write. The problem is architectural, not syntactic, and the reviewer's mental model doesn't have a slot for "the author of this code has zero context about our data-retention rules."

The same dynamic applies to a Copilot-generated cryptography implementation that uses a deprecated algorithm, or a Devin-produced API integration that doesn't enforce rate limiting. The code compiles. It passes linting. It just doesn't meet standards the reviewer would need domain-specific knowledge to check, under time pressure, across dozens of PRs, every day.

Anthropic's own internal data hints at the scale of this problem. Before deploying automated review tooling, their code review comments covered only 16% of pull requests. That's Anthropic, a company with some of the strongest engineering talent in the industry, still missing 84% of PRs in their review coverage.

This is structural, not a skills problem

The instinctive response from engineering leadership is to tighten the process. Require more senior reviewers. Add checklists. Mandate security-focused review for AI-generated PRs. Train people to be more vigilant.

None of that addresses the root cause. The problem isn't reviewer quality. It's that the cognitive assumptions underneath the review process no longer hold.

When a human writes code, the reviewer's job is to catch deviations from the team's shared understanding. That's a narrow search space. The reviewer knows what the code should roughly look like, and they're checking for gaps between expectation and implementation.

When an AI writes code, the search space explodes. The model doesn't share the team's mental model, so the reviewer can't rely on pattern-matching. Every line has to be evaluated against the full set of the team's implicit constraints, not just the obvious ones. That's exhausting even for one PR. It's impossible across twenty.

Add volume to the mix and the picture gets worse. AI tools don't produce a few PRs a day. They produce dozens. The Black Duck data shows that 92% of teams credit AI assistants with faster, more productive releases, with developers gaining an average of eight hours per week. That velocity is real, but it means the review queue grows faster than humans can drain it.

And then there's the social dimension. Approving a PR from a colleague is a social act. There's implicit trust, reputation, accountability. Approving a PR from an AI agent has none of that. There's no one to go back to and say, "Hey, why did you do it this way?" The usual feedback loop that makes human review self-correcting doesn't exist.

Only 30% have governance. The rest are flying blind.

The governance gap makes this worse. Black Duck's survey found that only 30% of organizations have a fully governed approach to AI-generated code. A quarter have no AI coding policy at all. And while 68% of teams said automated tracking of AI-generated code is extremely important, many still flag it by hand in pull-request comments.

Think about what that means in practice. Seven out of ten teams have developers reviewing AI-generated code with no formal framework for how to do it, what to check, or how to track what the AI produced versus what a human wrote. The reviewer is left to their own judgment, against code they didn't ask for, from an author that can't explain its reasoning.

The Black Duck report itself makes the case directly: teams that formalize oversight see 90% reporting major efficiency gains, compared to 58% overall and 44% among ungoverned teams. Governance works. The problem is that almost nobody has it.

The review gate that actually scales

If human review doesn't scale for AI-generated code, what does? The answer is to move the review gate into CI, where an independent AI reviewer reads every diff against the same standards on every PR.

An automated review gate in CI doesn't have cognitive fatigue. It doesn't have pattern blindness from reviewing fifty PRs in a week. It doesn't feel social pressure to approve a colleague's work (or an agent's). It checks the same things, in the same order, with the same rigor, whether it's the first PR of the day or the hundredth.

This isn't about replacing human reviewers. Humans are still better at architectural judgment, product-level decisions, and the kind of "does this make sense for our users" questions that require context no tool has yet. But the line-level security, consistency, and standards enforcement that catches the majority of AI-generated code issues? That's exactly the work an automated gate is built for.

The Black Duck data supports this. Eighty-six percent of surveyed teams said an AI agent or model should vet AI-written code. Fifty-six percent want a dedicated AI security agent. The demand is there. The tooling needs to catch up.

This is the model Tenki Code Reviewer is built around: an independent AI review running as a CI status check, reading every diff against the codebase's actual patterns, flagging critical and high-severity issues before merge. It doesn't replace the human reviewer. It catches the things the human was never cognitively equipped to catch at scale, so the human can focus on the decisions that actually require human judgment.

The real question for engineering leaders

If AI-generated PRs are already the majority of your merge traffic, ask yourself: is human-in-the-loop review still the right enforcement architecture? Or is it a legacy process from a time when humans wrote all the code and could reasonably be expected to review it?

The answer doesn't have to be one or the other. The most effective setup is layered: an automated CI gate that enforces security, consistency, and standards on every PR, with human reviewers freed up to focus on architecture, product fit, and the handful of decisions where human context genuinely matters.

Hiring smarter reviewers won't fix this. Adding checklists won't fix this. The structural mismatch between human review and AI-generated code is the kind of problem you solve by changing the architecture of your review process, not by expecting people to be better at a job the job description no longer covers.

Tags

#ai-code-review#ai-adoption#cognitive-load#code-review

Recommended for you

What's next in your stack.