Your AI Coding Agent Just Opened 4 PRs. You've Reviewed One.
You read the blog post. You watched the demo. The AI coding agent cloned the repo, found the bug, wrote the fix, ran the tests, and opened a PR โ all while you were still negotiating with the office coffee machine.
You thought the merge was automatic. It wasn't. Now you have 14 pull requests from three different agents, and two of them fixed the same bug in incompatible ways.
The Promise
The pitch is clean. Point an agent at your backlog. It picks the low-hanging fruit โ bugs with reproduction steps, stale config, the one test everyone avoids running because it takes 47 seconds. It creates a branch, commits, and opens a PR with a description that's suspiciously better than yours.
The agent doesn't need a standup. It doesn't say "I think the issue might be in the auth module" and then spend three days discovering the auth module is generated code. It just works.
Or at least it works in the demo. The demo where the repo has 12 files, no monorepo tooling, and CI finishes before the presenter runs out of adjectives.
The Reality
Give the agent a crash in a checker. It traces the bad input, adds a guard, and writes a regression test. The fix is five lines โ the agent sees this and commits with the confidence of a senior developer who has read at least the heading above the relevant docs.
Then you review it. And you realize the agent:
- Fixed the right bug. This is the best part. The root cause was correct. The guard was in the right place. The new test passes.
- Also touched files that didn't need touching. There's a reorganized
else:block, an import that moved for spiritual reasons, and a comment explaining code that was clearer before it had a comment. - Solved the ticket, not the system. The same assumption appears in three neighboring code paths, but the task named one. The agent optimized for the task it was given.
The PR Review Tax
Here's what nobody puts in the demo: coding agents move work around. They can compress implementation time, but they don't make ownership, review, or verification disappear.
You open the PR. The diff looks clean. The focused test passes. What you still need to know is whether the test suite covers the caller that sends null, the platform that sorts paths differently, and the feature flag nobody mentioned because its owner left in March.
The agent didn't ignore that context maliciously. It may never have seen it. Repository instructions, issue descriptions, tests, and available tooling define the world it can inspect. The gaps are still your gaps, just rendered faster.
The problem is you asked it to fix a bug. You forgot that "don't create a different bug" was part of the acceptance criteria.
The Rule
Use coding agents for bounded work with clear acceptance criteria and tests that can actually fail. Tell them which files are in scope. Tell them what must not change. Ask for the smallest diff that proves the fix.
Then review the PR yourself. Read the diff. Run the relevant tests. Check the behavior around the fix, not just the line the issue pointed at.
And for God's sake, coordinate agents working in the same area. Two correct patches can still collide when one adds if node.target is not None: and the other rewrites the function around isinstance(node.target, Name).
Your AI coding agent is like an intern who works at machine speed and still needs someone to know what the company does.