Shane Burrell
15 min read

The Review Bottleneck: When AI Writes Faster Than Humans Can Own the Contract

AI did not remove the human constraint—it moved it from typing to review, and it thinned product ownership of the ask and the outcome. An executive model for review capacity, contract review versus style review, shipping too fast, and when to add gates instead of more senior reviewers.

The Review Bottleneck: When AI Writes Faster Than Humans Can Own the Contract

Leaders report faster local work and worse system outcomes. The anecdotes are different. The cause is the same.

On the engineering side, pull requests multiply. Time-in-review stretches. Seniors book their days around cleanup. Juniors wait on the one person who can actually approve this.

On the product side, the next ask is due because the last demo appeared in hours. Tickets get thinner. Acceptance is “looks right.” Something ships. Nobody can say whether the outcome was the one they meant to own.

The wrong question is how to get people to generate more with AI.

The right one is who can still own the contract—the technical one and the product one—and how much generated work those people can actually absorb.

This article is the operating sequel to Measuring AI-Assisted Engineering and Cognitive Debt. Those pieces name review burden and contract ownership. They do not tell you how to restage the queue, restaff the owners, or stop shipping before anyone owned the ask.

A technology leader in a quiet office at dusk reviewing an overflowing pull-request queue on a large monitor, calm and tired rather than panicked.
The scarce resource is no longer typing. It is the person who can still own the contract.

The Bottleneck Moved—and Split

Before AI, the scarce resource was typing. Implementation time set the pace. Review and product vetting were taxes on that work. The slowness of building created a forced pause: time to argue the ask, time to review the change.

That pause is gone. Implementation is cheap and parallel. Two human constraints remain, and both get starved.

Engineering review did not get cheaper. It got more frequent, more locally coherent, and more globally risky—the same “locally coherent, globally incoherent” failure I described in Cognitive Debt.

Product ownership of the ask and the outcome did not get cheaper. The organization now expects the ask and the output on AI time. Many product teams emit a prompt-shaped ticket, accept a plausible demo, and ship before anyone fully vets the request or owns the result.

Cycle time and quality now die in four places:

  1. Queue. Generated work waits on a small set of engineering contract owners.
  2. Ritual. Everyone still line-reads as if authorship were the risk.
  3. Thin ask. Generation starts before anyone owned intent, acceptance, or “what would make this wrong.”
  4. Aftermath. Rubber-stamp merges and “ship it, we can iterate,” then seniors and customers pay in rework, incidents, and a product nobody accepted on purpose.
Comparison diagram: before AI the scarce resource was typing and implementation; after AI two constraints remain—engineering contract review and product ownership of the ask and the outcome. Label: generation got cheap, ownership did not.
Generation got cheap. Ownership did not. The remaining constraints are review and the owned ask.

This is not an access problem. Falling Behind Is a Choice still holds. Adoption without redesigning review and product ownership is fake speed.

Shipping Too Fast: When Product Does Not Own the Ask or the Outcome

The pressure is real. If engineering can produce a working slice in a day, sitting on the ask looks like blocking. So product shortens the ask. Then the output arrives before the decision. Then shipping the output looks like progress.

Name the failure precisely.

Unowned ask. The ticket is a vibe, a screenshot, or a “make it like X.” There is no acceptance bar, no user outcome, no “this would be wrong if…” Engineering cannot contract-review what product never specified.

Unowned outcome. A demo exists, so it ships. Nobody ran the product equivalent of contract review: does this change the customer outcome we claimed? Did we accept risk on purpose? Who is accountable if it is the wrong product, not just the wrong code?

Shipping too fast, at too low a bar. Speed of generation is treated as permission to lower the bar. Iteration becomes a euphemism for “we did not decide.”

I have seen the composite version of this more than once. A product manager sends a paragraph at 9:00. A demo exists at 11:00. It is in production by Friday. Support discovers the actual workflow the following week. Product measures “cycle time to something on screen” and calls it discovery. It was just generation. Engineering asks for a definition of done and gets “we’ll know it when we see it”—which AI is happy to approximate, and nobody is qualified to reject.

A product manager and an engineer in a conference room watching a finished-looking product demo on a laptop, with a thin ticket on the table and faces that have not yet decided to ship.
A plausible demo is not an owned outcome. Speed of generation is not permission to lower the bar.

Thin asks feed the engineering bottleneck. They produce more plausible, more rework-prone pull requests. Contract reviewers cannot defend invariants they were never given. Rubber-stamp review looks like partnership—“product wanted it shipped.”

That is the opposite of end-to-end teams that own the whole experience. End-to-end ownership collapses the distance from insight to impact. AI speed without that ownership is a faster hand-off to nobody.

What good looks like is short, not a discovery playbook:

  • The ask names the outcome, the acceptance bar, and the risk tier before generation scales.
  • Product signs the outcome the way engineering signs the invariant. Someone can fail the ship for “this is not the product we meant,” not only for a bug.
  • “Iterate” requires a decided bar, not a missing one.

Why the Old Review Ritual Fails

Three assumptions are now expensive.

Authorship is the risk. It is not. Contract violation is. Do not grade pull requests on whether a human “could have written it.” Grade them on whether the team can still own the outcome—the standard from Cognitive Debt.

Every line deserves the same depth. That was already false. AI makes the mismatch expensive. Seniors spend hours on formatting and import noise while an invariant walks through.

A review agent is a reviewer. In building enterprise software at AI speed, a Code Review agent is a useful filter. It is not ownership. Humans still accept risk. A bot that says LGTM has not signed the contract.

The scenes are familiar. A team measures AI-generated lines of code up and lead time flat because everything sits in review. A staff engineer becomes a full-time janitor for plausible pull requests. A “review bot said LGTM” merge passes style and fails an invariant. A ship that “product approved” when product only saw a demo, not an owned outcome.

Even approved tools create this flood. That is adjacent to agent sprawl: governance of the tool is not governance of the queue.

Two Engineering Traps—and a Product One

From a distance, leaders see the same thing: more generated output, more urgency. The failures are not the same.

Trap A — Rubber-stamp review. Treat AI volume as proof of productivity. Approve to clear the queue. Fail late, in production.

Trap B — Nostalgia review. Demand line-level reading of everything to “keep quality.” Seniors drown. The queue becomes the product.

Trap C — Ship-to-keep-up. Treat generation speed as a reason to thin the ask and lower the ship bar. Product does not vet. Engineering cannot contract-review a vibe. The demo becomes the spec, then the release.

A and B need opposite engineering responses. C is the product-side twin of A: approve to keep the loop moving. It makes A more likely.

Fork diagram: shared symptom of more generated output splits into Trap A rubber-stamp review, Trap B nostalgia review, and Trap C ship-to-keep-up, each with a different response.
More generated output is not a diagnosis. Rubber-stamp, nostalgia review, and ship-to-keep-up need different responses.
Three colleagues in a glass-walled office the morning after a rushed release, reviewing a dashboard and support queue while a muted TV still shows yesterday’s cheerful demo.
Rubber-stamp review and ship-to-keep-up fail in the same place: after the demo, when nobody owned the contract.

Review Capacity Is a System, Not a Virtue

Give this model one slide.

Inputs:

  • Generated change volume per week
  • Mix by risk tier
  • Hours of contract-capable engineering reviewers—not anyone with Approve
  • Hours of product owners who can fail a ship for an unowned outcome—not anyone who can write a ticket
  • Hours consumed by style review a gate should have caught
  • Share of work that started from an unowned ask
  • Rework rate after merge, including “wrong product” rework, not only defects

The ugly math is not exotic. Twelve pull requests a week at forty-five minutes of real contract review is nine senior hours before anyone looks at a nit. Triple the volume and leave review staff flat: either depth collapses (Trap A) or cycle time explodes (Trap B). If the ask also triples in thinness, Trap C fills the queue with work nobody can honestly accept. There is no fourth miracle.

You do not need more people who can click Approve or more people who can file tickets. You need enough people who can state invariants and enough people who can own an ask and an outcome—and you need to stop spending both on nits and vibe-shaped work.

System diagram: inputs of volume, risk mix, and ownership hours leak through style work and unowned asks into queue explosion, rubber-stamp review, ship-too-fast, or controlled throughput.
Capacity is inputs minus leak. Close the leak before you add seniors or ask product to write tickets faster.

In Measuring AI-Assisted Engineering, senior review hours per merged change is the engineering instrument. Add a product twin: the share of shipped work with a named acceptance bar and an owner who will stand behind the outcome. This model is what you do when those instruments are red.

Contract Review Versus Style Review

Most organizations mash two jobs into one ritual.

Style and mechanical review should mostly leave humans: formatting, lint, import noise, obvious test gaps, secret scanning, dependency diffs, “does this match the golden path?”

Contract review must stay human on the surfaces that matter—engineering and product:

  • Intent. What customer or operational outcome does this serve? Product owns this. Engineering cannot invent it in the pull request.
  • Invariants. What must still be true in the system?
  • Boundaries. Auth, data, money, blast radius.
  • Failure modes. How will we know in production if this is wrong—as a bug or as the wrong product?
  • Ownership. Who is accountable if the partner is wrong? Who can fail the ship because the outcome was not the one we meant?

Risk-tier the work so contract review is not universal:

  • Low. CRUD inside a golden path, generated tests that already pass checks—gates only.
  • Medium. A new path in a known service—contract checklist, spot-read.
  • High. Auth, payments, migrations, data leaving a boundary, a new agent tool—deep contract review, maybe a pair.

Add Gates Before You Add Seniors

The default executive moves are “hire another staff engineer to review” and “have product write tickets faster.” Both scale linearly against exponential generation. The second one makes Trap C worse.

Prefer this order:

  1. Owned ask and acceptance bar before generation scales. No vibe-shaped tickets as the default path. Product signs intent the way engineering will later sign invariants.
  2. Sharper specs and acceptance checks so the middle layer is pointed at a contract, not a vibe. That is the contract layer from Cognitive Debt.
  3. Mechanical gates—lint, types, secret scan, policy, golden-path checks—so style review never reaches a human.
  4. Evals on high-risk behaviors such as authorization, tool use, and data access, so the same mistake does not need a new human each time. Treat evals as a gate type, not a new program.
  5. Review agent as filter, never as signer. The quality gate in concept-to-cloud work is useful. It is not ownership.
  6. Platform-encoded context so agents inherit the model instead of inventing a private architecture. That is how workflow, not vendor, becomes real, and how agent sprawl stays contained.
  7. Then add contract-capable reviewers—and product owners who can fail a ship—after the above have taken load off them.

If the complaint is “we need more reviewers,” first ask what is still reaching a human that a gate should have killed. If the complaint is “product cannot keep up with engineering,” first ask whether you are generating against unowned asks.

Split diagram: style and mechanical review should leave humans, contract review stays human for engineering and product, and an intervention ladder from owned ask through gates and evals before adding more people.
Split the ritual. Climb the ladder before you hire. An unowned ask should not start generation.

An Operating Model That Is Not a Committee

You do not need a new steering group. You need a few durable habits.

Name the contract owners on both sides. Engineering: people who can fail a change for an invariant, not a brace style. Product: people who can fail a ship because the outcome was not the one they meant—not anyone who can file a ticket.

Split the queue. Mechanical versus contract. Do not mix them in one review thread.

Do not start generation on an unowned ask. A thin ticket is a planning failure, not a speed win.

Budget senior review hours and product acceptance hours. Treat both like capacity constraints, the way platform teams treat SRE interrupt.

Measure the bottleneck, not the generator. Time-in-review, rework after AI-assisted merge, senior hours per merge, and the share of shipped work with a named acceptance owner. Those instruments already exist in the metrics framework. Use them as planning inputs.

Drill high-risk paths. Comprehension investment should follow blast radius, not volume.

Kill zombie review and zombie ships. If a pull request sits past a threshold, it is a spec or risk-tier failure, not a “reviewers are lazy” story. If a demo ships because “we can iterate,” it is an unowned outcome, not agility.

Executive Tests

Stop asking whether the team is “using AI enough.” Ask these instead.

If your two strongest reviewers took leave, would generation continue and quality silently die?

What share of reviewer time is nits a gate should have caught?

Can a new engineer follow an approved workflow and get a trustworthy result without a hero reviewer? That is the same hero test from measurement and agent sprawl.

When a generated change is wrong, do you detect it in review, in an eval, or in production?

What share of shipped work had a named acceptance bar and a product owner who will stand behind the outcome—not just a ticket author?

If engineering can produce a demo in hours, does product still have permission to not ship until the ask is owned?

These tests also matter in diligence. In Technical Due Diligence for Acquirers and Boards, generated volume plus a thin review bench—or a product org that cannot explain why things shipped—is integration risk, not a productivity asset.

What Not to Do

The failure modes are predictable.

  • Ban AI to restore review quality. That restores slowness and a false sense of control.
  • Hire reviewers to absorb undifferentiated volume. Linear staff against exponential generation.
  • Mandate line-by-line reading of every AI pull request. That is Trap B.
  • Treat review-bot approval as human ownership. A filter is not a signer.
  • Treat a generated demo as a spec or as permission to ship. That is Trap C.
  • Ask product to write tickets faster so engineering is never idle. That is also Trap C.
  • Measure AI lines of code, pull-request count, or time-to-demo as success while time-in-review, rework, and unowned outcomes rise.
  • Make one staff engineer the unofficial AI janitor—or one product manager the unofficial “just ship it” closer—and call that enablement.

Conclusion

You do not have an AI productivity problem. You have a review-and-ownership problem dressed as speed.

The winners will not be the teams that generate the most. They will be the teams that keep a small set of contract owners effective—engineering owners of invariants, product owners of ask and outcome—by refusing to spend them on work a gate should have caught or an ask nobody owned.

Generation is cheap. The contract is not. Own the ask before you scale the output. Own the review before you celebrate the speed.


Review queues growing, and ships landing before anyone owned the ask? Connect with me on LinkedIn to discuss review-capacity and product-ownership models that keep the contract intact while the middle layer moves faster.