← Back to blog

Who Reviews AI-Written Code, and Can You Trust It?

Who actually reviews AI-written code, and can you trust it? The accountability gap the SERP skips, plus a graduated trust framework by blast radius.

Search “who reviews AI-written code” and the results are a list of tools. Search “can you trust AI-generated code” and you get a survey stat, usually the same one, and a recommendation to always have a human review it. Both are true as far as they go. Neither answers the question a working engineering lead actually has: when the agent’s code is wrong, who was supposed to catch it, and what does “review” even mean for output that reads as confidently when it’s wrong as when it’s right.

This is that answer. Not another tool list, and not “trust but verify” repeated with more words.

Who Reviews AI-Written Code Today?

In most shops, three things run over AI-generated code before it ships, and only one of them is actually reviewing it.

Tests and CI catch what tests and CI have always caught: things that don’t compile, behavior a test happens to cover, regressions in paths someone thought to check. Static analysis and linters catch style and a narrow band of known bug patterns. Neither one evaluates whether the approach was right, because neither one has an opinion about approach. They check the diff against rules, not against judgment.

The part that’s supposed to catch judgment is human review, and it’s the part most teams have quietly weakened without deciding to. A reviewer who has watched an agent turn out clean, working code fifty times in a row starts reading the fifty-first the same way. That’s not a discipline failure. It’s what happens to anyone reviewing a stream that’s usually right: the failure mode of AI code review isn’t a careless reviewer, it’s a good reviewer whose calibration drifted because the input got better.

A second AI reviewer helps here, if it’s built for it. The distinction that matters is whether that second reviewer is instructed to find a reason to reject the diff or just to summarize and comment on it, which is most of what ships today under the “AI code review” label. Adversarial AI code review is the mechanism for the first kind: a reviewer whose job is to argue against merging, calibrated so it doesn’t just cry wolf on every diff.

None of this answers “who reviews AI-written code” the way the question is actually meant, though. The honest inventory is tests, a linter, possibly a second model, and a human whose attention is a depleting resource. What’s missing from that list, in almost every shop that hasn’t sat down and decided it on purpose, is a named owner for the call.

Can You Trust AI-Generated Code?

Not by default, and not never. Both extremes are wrong in the same way: they treat trust as a property of the code instead of a property of the specific change.

A widely cited developer survey found that 96% of engineers don’t fully trust AI-generated code without review, and only 48% say they always verify it line by line before it merges, a gap that describes most teams: distrust in principle, inconsistent in practice. Security researchers who ran Copilot-generated code through adversarial benchmarks found roughly 40% of suggestions contained exploitable vulnerabilities in scenarios designed to surface them. Neither number says AI code is categorically worse than human code. Human code has its own well-documented defect rate. What they say is that AI code fails differently and often more confidently, which is a harder thing for a tired reviewer to catch than an obviously ugly line.

The honest answer isn’t a trust level for “AI code” as a category. It’s a trust level for this change, given what it touches and what happens if it’s wrong, which is the question the next two sections actually answer.

Who Is Accountable When AI-Written Code Breaks Something?

This is the part almost nothing in the search results actually commits to. Most pages gesture at “the developer is still responsible” and move on. That sentence is true and also does none of the work, because it doesn’t say what accountability is supposed to look like before something breaks, only that someone should feel bad after.

Accountability that means anything has to exist before the incident, not just in the postmortem. Concretely: every change has a named person who approved it shipping, that approval is on the record, and the record survives the person moving to a different team or the agent’s next hundred merges going fine. “The AI wrote it” is not an incident writeup, the same way “the intern wrote it” was never an acceptable answer for why nobody who could have caught it did.

This is also why “the agent has a good track record” can’t be the whole story on its own. A track record justifies less friction on review, not zero accountability. The two are different questions: how much scrutiny does this change need, and who’s on the hook if the scrutiny missed something. How AI agents earn trust to act covers the first question, the correction loop that actually earns lighter review over time. The second question doesn’t get lighter no matter how long the streak runs, because it was never about the code’s quality. It’s about who was supposed to be looking.

Does Reviewing AI-Written Code Require a Different Process Than Reviewing Human Code?

The checklist barely changes. The mechanics of applying it do.

AI-written code tends to look more finished than it is. A human draft often has an obvious rough edge, a stub, a comment saying “fix this later”, that flags where to look closely. An agent’s first pass usually reads as done, formatted, named well, no placeholder comments, which removes the visual cue reviewers have relied on for years to know where the risk is hiding.

It also fails in a different place. Human bugs cluster around typos, off-by-one errors, forgetting a case. Agent bugs cluster around a plausible-sounding approach built on an assumption nobody stated out loud, the kind of mistake that survives a read-through because every individual line is defensible and the flaw is in what the lines were trying to do together. Catching that requires reading for the assumption behind the diff, not just the diff, which takes longer per line even when the code itself is cleaner. That’s the real reason AI code review takes more effort than it looks like it should: not more bugs, a different shape of bug that hides better in clean formatting.

The fix isn’t a longer checklist. It’s weighting review effort by blast radius instead of by lines changed, which is also exactly where the graduated trust question below actually lands.

Practically, that means reviewers need a different prompt to themselves than “does this look right.” A better one is “what would have to be true about the system for this to be the right approach, and did anyone check that it is.” That question catches the plausible-but-wrong pattern precisely because it forces the reviewer off the diff and onto the assumption underneath it, which is where an agent’s mistakes actually live.

How Much Should You Trust an AI Agent’s Code, Tier by Tier?

Trust here is a live example of the earned-autonomy Ladder: Training, Supervised, Autonomous, climbed through a track record and confirmed by a person, never toggled on all at once. What changes tier to tier isn’t whether review happens. It’s how much friction review adds before the change ships, and that answer depends as much on what the change touches as on how long the agent’s streak has run.

Blast radius Training Supervised Autonomous
Docs, internal tooling, test-only changes Full read before merge, but fast because the stakes are low Spot-checked against the Playbook; ships without waiting when the pattern matches Ships on its own, logged as a Receipt, no wait
Feature work behind a flag, reversible via rollback Full read before merge, every diff, no shortcuts Reviewed on the way in; reviewer spot-checks the Receipt, exceptions escalate Ships behind the flag; a person still owns the rollout call
Auth, billing, production infrastructure, anything customer-facing and hard to reverse Full review, no exceptions Full review, no exceptions Still requires human sign-off before it ships, at every rung

The bottom row is the part most “graduated autonomy” writing skips, because it’s the least satisfying answer to give a buyer who wants a demo of full autonomy: on the changes with real consequences if they’re wrong, the floor doesn’t move no matter how good the track record gets. That’s not a limitation of the framework. It’s the framework working as intended. Autonomy earns less friction on the reversible work precisely because the irreversible work never gets less friction to earn it with.

Where to Start

If your team is already shipping AI-written code without a real answer to “who reviews this and who’s accountable if it’s wrong,” the fix isn’t a stricter policy nobody follows. It’s making the three tiers above explicit for the repos you actually have, naming who owns sign-off on the bottom row today, and letting the top row earn lighter review as the record supports it.

That’s also the shape of YAGNI’s engineering Team: it starts every engagement in Training, climbs the Ladder on its own track record, and keeps production, auth, and billing human-held at every rung, so the graduated trust in the table above isn’t a policy someone has to remember to enforce. It’s how the review gate is built.