Skip to main content

Command Palette

Search for a command to run...

AI Code Review Does Not Scale Linearly

Updated
4 min readView as Markdown
T
Building Mneme HQ — architectural governance for AI-assisted development. Working on preventing architectural drift and decision loss in AI coding workflows.

The throughput gains from AI coding assistants are not incremental. They are structural. A single engineer using Claude Code, Cursor, or Copilot can produce multi-file changesets in minutes that would take half a day to write manually. Autonomous agents push this further — generating entire feature implementations from a task description while the engineer works on something else.

Teams running AI-assisted development at scale today routinely report 5-50x increases in raw code output for well-scoped tasks. Code generation is no longer the bottleneck.

PR workflows were designed for human coding velocity

Pull request review is designed around an implicit assumption: code arrives at roughly the pace a human can write it. A team of ten engineers might produce 15-30 meaningful PRs per week. Two or three senior reviewers could cover that load.

AI breaks this calibration entirely. The same team, each using an AI coding assistant, can produce 60-120 PRs per week. The code still needs review. The reviewers haven't multiplied.

Review quality degrades as AI output scales

Volume alone would be a problem. But the degradation is worse than linear, because AI-generated code is harder to review than human-written code.

AI-generated code is syntactically correct, compiles, and passes tests. It looks reasonable at a glance. But it lacks institutional context — the postmortem from last quarter, verbal agreements about service boundaries, naming conventions from a Slack thread. The violations it introduces are subtle: a service reaching across a boundary via a shared utility, a new database table in a schema that was supposed to be read-only, a dependency that was deprecated but not yet removed.

These violations don't trigger linters or type checkers. They require a reviewer who understands the intent behind the architecture.

Cognitive load research is clear: review quality degrades sharply after the first 200-400 lines of code in a single session. When PR volume doubles or triples, reviewers either spend more hours reviewing (unsustainable) or review each PR less thoroughly (dangerous).

The core problem: AI increases the numerator (code output) while the denominator (reviewer attention) stays fixed.

Architectural drift becomes probabilistic and cumulative

When review quality degrades, violations merge. And once a violation is in the codebase, the AI assistant replicates it — because it reads the codebase for context, and now the violation is the context.

The feedback loop:

  1. AI generates code that subtly violates an architectural constraint

  2. Overwhelmed reviewer misses the violation

  3. Violation merges into the default branch

  4. AI treats the violation as precedent

  5. Future generations replicate and extend it

Drift under these conditions is a statistical certainty that compounds with velocity. The faster you ship, the faster you drift — unless something intervenes before the code is written.

Manual review cannot be the sole governance layer

Tighter review requirements reduce velocity — the benefit AI-assisted development was supposed to deliver. You end up in a paradox: the faster AI generates code, the more review burden you add, until review becomes the bottleneck that negates the speed advantage.

Governance must shift left into generation

Security engineering faced a structurally identical problem a decade ago. The response — shift-left security — moved checks earlier in the development lifecycle. Architectural governance is at the same inflection point.

The answer is enforcement that operates before the AI agent writes the file — at generation time, not after the PR is opened.

Pre-generation enforcement means the AI receives architectural constraints for the specific file it's about to modify, injected as structured rules rather than advisory context. A service boundary violation is blocked before the code is written. A deprecated dependency is never introduced.

The economics are straightforward: preventing a violation costs zero reviewer time. Catching one in review costs review cycles. Fixing one after it has merged and been replicated costs a refactor.

The mature governance stack

  1. Generation-time enforcement — Constraints injected before the AI writes. Blocks violations at the source.

  2. PR-time validation — Automated checks for what generation-time missed. Reduced scope, faster review.

  3. CI-time policy — Architectural rule checks as merge gates.

This is what Mneme provides: a generation-time enforcement layer. Structured decision records with scope and precedence, injected before generation. Violations are prevented, not detected.


Originally published at mnemehq.com

More from this blog

M

Mneme HQ

19 posts