Last month an async agent opened four pull requests for a single ticket. Two reimplemented helpers we already had. One changed formatting across the repo. Only the smallest diff matched the acceptance criteria.
I closed three without guilt. That is the work now.
Direct answer: when AI makes typing cheap, curation becomes the scarce skill. Most agent output should die in CI or in a maintainer's first five-minute skim, not in a video call about style.
The funnel math behind discard
The
NBER working paper on AI coding tools
tracks more than 100,000 GitHub developers from commits through releases. Async agents can raise pull request volume sharply while releases move only modestly. AlphaSignal's Sunday deep dive on the same research puts the user-facing label on it: humans still own merge.
That is not a moral failure. It is queue physics. Every diff a human opens competes with customer bugs and roadmap work. Flooding the queue with "maybe useful" code is how teams lose weeks.
Read the full attenuation breakdown in AI agents write 741% more code if you want the table of LOC versus release gains.

Signals I use in the first five minutes
Before I read line by line, I check cheap heuristics. If any fail, I request changes or close.
| Signal | Discard or restart? |
|---|---|
| Diff size >> issue scope | Restart with tighter prompt |
| No test updates for behavior change | Discard until tests exist |
| Touches auth, billing, or migrations without owner tag | Hold for named human |
| Duplicates existing module | Discard; point agent at canonical file |
| Drive-by refactors in unrelated folders | Strip or close |
This is the practical side of From SDLC to ADLC : orchestration includes saying no at machine speed.
What belongs in a discard policy
Teams that scale agents without a written discard lane burn out reviewers. I keep the policy short and public in the repo:
- Draft by default. Agents open draft PRs until CI is green and scope is checked.
- One issue, one intent. Multi-feature bundles get closed with a link to split issues.
- No hero merges on Fridays. High-risk paths wait for business hours owners.
- Revert is normal. A fast revert beats a slow debate when the spec was wrong.
Some maintainers have gone further and limited public pull requests when agent spam exceeded capacity. You do not need that drama if internal discard culture is strong.

What I would ship
If I were advising a team drowning in agent PRs this week:
- Add a PR size bot that flags diffs over N lines without a
large-changelabel. - Require a spec link in every agent PR template field (GitHub Spec Kit or internal doc).
- Measure reviewer touches per merged agent PR. Rising touches mean your discard lane is too loose.
For production agent workflows, pair discard rules with runtime validation patterns like those in Greptile TREX and runtime proof so what survives the first cut still proves behavior.

Product and distribution still win
The same research bundle notes a marketplace paradox: more apps ship while aggregate downloads stay flat in early windows. Discarding bad code does not fix distribution. It only stops you from mistaking activity for product progress.
If your bottleneck is users, not typing, spend the saved review hours on conversion-focused web and SEO or a focused ops automation audit at /ops-audit.
Need help drawing the line between agent exploration and merge-ready work on your stack? Book a free discovery call.

