AI Coding Agents

AI Code Review Bottleneck: Florian Buetow's Guardrail Playbook

Code generation can create work faster than a team can understand and review it. In this interview, AI engineer Florian Buetow argues that the answer is not simply another AI reviewer on every pull request. His experiments put feedback closer to the agent: tests, project-specific static rules, architecture boundaries, and hooks that tell it what failed before a human has to repeat the same comment.

The short answer

Florian's “no code reviews” idea is a design challenge, not a demonstrated reason to remove approvals. Automate checks that are clear, repeatable, and testable; use humans to define the intended behavior, architecture, and acceptable risk. Start with one recurring review comment, measure whether an early guardrail catches it without false positives, and keep existing approval rules while the experiment earns trust.

Watch Florian's Interview

Credit: Florian Buetow explains the experiments in the original interview and writes at Cracking AI Engineering. The pilot and risk boundaries below are an editorial synthesis, not a result Florian claims to have proven across organizations.

The Bottleneck Moves Downstream

At 00:40, the conversation starts with a familiar asymmetry: an agent may produce a large change in minutes, while a senior engineer must still verify intent, behavior, and impact. The video's “10x more code” is a framing claim, not a measured factor for every team. The host recounts a Google I/O conversation about review pressure; this article treats that as his account, not an independently verified Google-wide finding. Florian also describes reported Amazon policies after AI-related incidents, but the interview does not provide the internal policy or incident record.

Florian distinguishes two responses. A horizontal response adds an AI reviewer to the existing PR queue. A vertical response changes the development environment so the agent gets reliable feedback while making the change (02:55). The second can remove routine comments from the queue, but it also requires a team to decide which checks are trustworthy and which decisions need human approval. GitHub's protected branches can require both reviews and passing status checks; one is not automatically a substitute for the other.

Three Guardrails Worth Testing

Florian's highest-value examples at 11:30 and 14:00 are deliberately local to a codebase. The goal is not a universal style rule; it is a machine-checkable version of a correction reviewers already make.

  1. Static patterns: use a formatter and linter, then add a targeted Semgrep rule for a recurring anti-pattern. Florian's example bans default argument values in a Python project because that pattern caused problems for him. Semgrep supports structural code patterns, not merely raw regular expressions. Test any custom rule against accepted and rejected code before treating it as policy.
  2. Behavioral tests: encode a failure case and expected outcome so the agent sees a precise signal. In Florian's own experiment, specs alone left too much room for interpretation, while tests plus a specification helped the agent correct its implementation (07:21). One project result does not make TDD universally superior to spec-driven work; weak or incomplete tests can also approve the wrong behavior.
  3. Architecture tests: enforce a boundary such as “UI cannot access the database directly.” ArchUnit's Java guide documents package, layer, and dependency checks. The rule should reflect an architecture the team actually wants, not a pattern inferred from accidental legacy structure.

A hook can run these checks when an agent finishes or edits code, then return a short failure message that identifies the rule and the expected fix. Claude Code's hook reference documents lifecycle events including Stop and tool-use events. Hook behavior and available controls vary by harness; test the exact command, timeout, permissions, and failure mode in your own environment. Never let an unchecked loop write indefinitely or run commands with broader access than the task requires.

Why the Harness and Feedback Loop Matter

At 06:46, Florian says that, in his experiments, the harness sometimes mattered more than the model. By harness he means the surrounding tool access, prompts, memory, hooks, and feedback that let a model inspect and change a project. His preferred tool changed during his testing. That is a reason to compare complete workflows on your own tasks, not a general ranking of Claude Code, Codex, or Copilot.

His spec-first attempt produced implementations that drifted from intent. Adding behavioral tests gave the agent an observable target and a way to iterate (10:06). The most useful prompt may therefore be less “build the whole service” and more “tell me what you understood, implement this narrow behavior, run these checks, and report what remains uncertain.” A specification remains useful for shared understanding; it is not executable proof by itself. Nor can a passing suite prove correctness outside the cases it covers.

What Still Needs a Human

Florian puts more effort before implementation: what should the system do, how should modules interact, and what must never change (15:07)? He argues that juniors can learn this architectural and product reasoning instead of only measuring how quickly they type code. Human ownership also includes deciding whether a rule is appropriate, whether test coverage matches the risk, and whether an agent's answer makes sense.

The headline “stop doing code reviews” is intentionally provocative. Later, Florian narrows it: deterministic checks and AI scans can direct attention to the important areas, and people may review the specification or architecture rather than every routine line (24:08). That still leaves human approval for sensitive data flows, payments, access control, production operations, security exceptions, and unfamiliar changes. AWS's published control framework explicitly notes that generated code can pass deterministic checks yet remain functionally wrong, and includes AI-assisted review for human approvers before deployment.

He and the host also discuss cognitive debt: a team can ship more code while understanding less of its own system. Florian describes exhaustion from reacting to many agent sessions and suggests limiting context switching, inspecting agent handoffs, and turning repeated corrections into checks (20:26). These are his observations, not a clinical burnout study. Private session logs may contain secrets and customer data; mine them only with organizational permission and an approved storage and model boundary.

A One-Week, Low-Risk Pilot

Florian's recommended first move at 33:59 is small: formatter, linter, then one static rule based on feedback the team already gives. A responsible pilot keeps the existing review gate intact while checking whether the new signal reduces rework.

  1. Days 1-2: choose a non-critical repository and one repeated review comment. Record a small baseline: time until first useful feedback, number of repeated comments, and reviewer minutes.
  2. Days 3-4: write a Semgrep rule or architecture test with known-positive and known-negative examples. Run it locally in advisory mode; document false positives and legitimate exceptions.
  3. Days 5-6: give the agent the check result before PR submission. Observe whether it corrects the issue without introducing a new one. Keep a human reviewer for the whole change.
  4. Day 7: compare against the baseline. Keep the rule only if it catches real issues, is comprehensible to the team, and does not create disproportionate false positives. Require team approval before making it a blocking check.

The first success criterion is not “zero reviewers.” It is fewer repeat comments without a rise in escaped defects or loss of developer understanding. Stop or roll back a rule that blocks valid work, drives awkward workarounds, or creates more triage than it saves.

Video Chapters

TimeSegment
00:00Introduction
00:40Review bottleneck
01:57Big-tech policies
02:55Horizontal vs vertical scaling
04:37“No reviews” as a design goal
05:22Agent feedback environments
06:46Harness vs model
07:21Specs and TDD experiment
10:06Hooks and feedback loops
11:30High-value guardrails
14:00Architecture constraints
15:07Human responsibility
17:33Upfront design work
18:47Junior engineers' skill
20:26AI burnout
22:42Cognitive surrender
23:25Risk and policy
24:08AI-assisted review
26:39Spec-driven teams
29:01Rebuild from tests?
30:27How to experiment
33:15Subagent handoffs
33:59Start with static checks
36:08Session-log patterns
37:00One-harness constraints
38:28One experiment this week

Business Idea Prompt: Review Friction Audit

Use the interview to test one measurable improvement for a real engineering team, not to sell a promise of fully autonomous code review.

Business idea prompt

One review comment, one rule

Measure saved effort before expanding.

Ready to copy

Sources and Limits

Creator account: Florian's interview and the supplied transcript support his experiments, preferences, and anecdotes. Tool behavior: Semgrep's rule examples, ArchUnit's guide, and Claude Code's hook reference. Review controls: GitHub's branch protection documentation and AWS's published agent-control framework. The interview does not provide raw comparative data for “10x code,” Google-wide review practice, Amazon's internal incident policy, or a controlled no-review deployment. Those are not treated as verified facts here. Evidence checked October 16, 2026.

Common questions

Does Florian recommend removing every human code review?
No. He uses the possibility of no routine diff review as a provocative design goal. His practical advice is to automate repeatable feedback, review specifications and architecture earlier, and retain human judgment where the risk or intent requires it.
What is the fastest guardrail to try?
Choose one repeated review comment, encode it as a project-specific static check, test it on known good and bad examples, and let an agent see the result locally. Compare the next few changes with the old review workflow before making the check mandatory.
Can a passing test suite replace review?
A passing suite verifies the behavior it captures, not every desired behavior or hidden risk. Keep human approval for architecture, product intent, sensitive systems, security exceptions, and changes whose failure would be costly.
Share
X LinkedIn Reddit
Build Yours

Want a system
like this one?

Book a free 30-minute call. We map your situation, identify the highest-impact automation, and figure out if we are a fit.

Book Free 30-min Call