Company
About Tomosu Our Team
Platform
Platform & Agents Indexes How it works Solutions
Docs
MCP Server Integrations · GitHub App Integrations · CodeRabbit MCP FAQ
Free Tools
Governance Impact
Resources
Blogs News Book a call →
Field notes · Review

Code Review Automation Fixed the Wrong Problem

Tomosu AI·6 min read

Code review automation was supposed to make review faster. The 2026 numbers say the opposite happened.

Faros AI's telemetry across 22,000 developers found that median time remaining in code review is up 441.5% year over year, and pull requests merged without any review, human or automated, are up 31.3%. Reviewers aren't approving faster because a bot is helping. They're skipping the step entirely, because there's too much to look at.

WHAT HAPPENED WHILE REVIEW GOT AUTOMATED +441.5% Median time remaining in code review Year over year. Not the time to write the change — the time it sits waiting on a human. FAROS AI · 22,000 DEVELOPERS +31.3% PRs merged with no review at all Not human, not automated. The step didn't get faster. It got skipped. FAROS AI · 22,000 DEVELOPERS
Two numbers moving in the same direction. A queue that long stops being a queue — people start routing around it.

That's the part "code review automation" tends to skip over when it's used as a selling point. Automating a comment is not the same as automating a review.

What automation actually does today

Most of what gets called code review automation falls into a few buckets.

01

Static analysis and linting

Catching syntax issues and style violations before a human opens the diff.

02

AI generated review comments

Tools like Augment and Qodo reading a pull request and leaving suggestions the way a human reviewer would.

03

Merge gate checks

Pass or fail rules wired into CI that block a merge on measurable conditions like test coverage or a security scan.

All three are useful. None of them touch the actual constraint, which is a person deciding whether a change is safe to ship.

THREE LAYERS, ONE UNTOUCHED CONSTRAINT Static analysis & linting syntax, style — solved, genuinely AI generated comments more text next to the diff Merge gate checks measurable pass / fail conditions The pull request plus everything the layers added THE CONSTRAINT A person deciding whether this change is safe to ship. Unchanged by all three. Every layer adds to what the reviewer has to read. None of them shortens the decision.
The automation is real and it works. It just lands upstream of the step that was actually holding things up.

Why the bottleneck moved instead of disappearing

LinearB's analysis of 8.1 million pull requests across 4,800 teams shows where the time actually went. Pull requests written with AI assistance run about two and a half times larger than ones without it, over 400 lines at the 75th percentile versus 157 lines. Bigger diffs take longer to reason about, so reviewer pickup time on AI assisted work runs more than 16 hours on average, against roughly 200 minutes for unassisted work. Measured a month out, only 32.7% of AI assisted pull requests have merged, compared with 84.5% of the rest.

8.1M PULL REQUESTS, 4,800 TEAMS AI assisted Unassisted PR size, 75th percentile lines changed — lower is easier to review 400+ 157 Reviewer pickup time average wait before anyone looks 16h+ ~200 min Merged within one month higher is better — this one flips 32.7% 84.5% 2.5× the diff, 5× the wait, half the merge rate — the work moved, it didn't disappear
AI-assisted pull requests are written faster and finished slower. The saving lands on the author's side of the wall; the cost lands on the reviewer's.

Code got faster to write. Review didn't get faster to do. The queue moved from the keyboard to the reviewer's desk, and automated comments on a 400 line diff don't shrink the diff, they just add more text to read alongside it.

Automating the comment isn't automating the review

A review comment answers "what's wrong with this line." A review decision answers "should this ship, and what happens if it's wrong." Those are different jobs, and most code review automation is built for the first one.

TWO DIFFERENT JOBS, ONE FEATURE NAME THE REVIEW COMMENT "What's wrong with this line?" Mechanical. Local to the diff. Missing null check, duplicated logic, style violation. Automated well today. THE REVIEW DECISION "Should this ship, and what if it's wrong?" Requires reach. What does this touch, how far does a failure travel, has this boundary broken before. Still on the senior engineer.
The left column is a solved problem. The right column is the one the queue is made of — and it is the one most "code review automation" doesn't claim, but is sold as if it does.

The first job is mechanical and automation handles it well: flag the missing null check, point out the duplicated logic, catch the style violation. The second job requires knowing what the change actually touches. Whether it sits under a shared authentication boundary used by 300 other call sites, or a single screen nobody depends on. Faros calls the result of skipping that judgment the "senior engineer tax": the people best equipped to catch a subtle, high reach defect are the ones stuck reviewing the most volume, because the mechanical layer cleared everything else through first.

What automation would need to fix the actual bottleneck

Not more comments. A way to tell which of the pull requests waiting in that 16 hour queue actually need a senior engineer's attention, and which are safe to clear without one. A defect's reach is invisible to a diff; a three line change to a shared boundary carries more risk than a 300 line change to a leaf component, and no amount of comment generation on either one tells a reviewer which is which. Pre-screening and review are already different jobs; the tools that help are the ones that keep them separate instead of dressing up the first as a replacement for the second.

LINE COUNT RANKS THESE BACKWARDS SHARED AUTH BOUNDARY Diff size 3 lines Call sites reached if it's wrong 300 Needs the senior engineer LEAF COMPONENT Diff size 300 lines Call sites reached if it's wrong 1 Safe to clear without one
A queue sorted by diff size puts the 300-line leaf change ahead of the 3-line boundary change. Reach is the variable that inverts the order — and it isn't in the diff.

That's the layer Tomosu is built to sit in. Not another comment generator competing for the reviewer's attention, but a way to know, before a human opens the diff, whether this is one of the changes that actually needs their judgment. Which changes have broken before is a matter of record, not intuition — and it's the record that tells you where the judgment belongs.


Tomosu builds merge-gate governance infrastructure that reads the whole codebase to tell you which pull requests in the queue actually need a senior engineer — by reach, not by line count. If your review queue is growing faster than your reviewers, we are opening a small design partner cohort. Book a call →