Sources#
Summary#
Robert C. Martin (Uncle Bob on Software Fundamentals in the Age of AI, 2026-08-19, practitioner-opinion) supplies the most concrete account in the corpus of what specifically agents change about code quality, and it is not the part most discussions reach for. It is not that agents write better or worse code. It is that two quality techniques he judged correct but unaffordable twenty-five years ago became affordable, without the techniques changing at all.
The two he names:
| Technique | What it does | Why he shelved it (~2000) |
|---|---|---|
| CRAP score | Combines test coverage with per-function cyclomatic complexity into a single "how crappy is this function" number | Detection was cheap and the report was accurate. "It took me forever to go through every one of those functions and try and fix them and rewrite the tests." |
| Mutation testing | Flips operators throughout the source (<→>, ==→!=, sign flips); every flip should break the suite, and a flip that does not is a "surviving mutant" that must be killed | On a project whose suite ran four minutes, several hundred mutations meant an overnight run. "I could not put that as part of a normal build scenario." |
Both are diagnostic tools whose cost lived almost entirely after the diagnosis. That is the structural feature that made them impractical, and it is exactly the feature agents dissolve.
The mechanism, in his words#
"These guys are fast and they don't care how boring the work is and they will do what I tell them to do. So why don't you run CRAP over everything you've just done — and it would run CRAP and then it would clean up the code… And why don't you run mutation testing too? Maybe it took it 30 minutes instead of an overnight run and then it would plug all the holes and make sure there were tests covering everything."
Three properties are doing the work, and none of them is intelligence:
- Speed — the overnight mutation run compresses to about thirty minutes.
- Indifference to tedium — the remediation queue that defeated him is not aversive to an agent.
- Compliance under a gate — the technique becomes a loop condition: "you must change the code until this tool says that it's okay."
The third is what converts a report into an enforcement mechanism. See Latent vs. Deterministic Space for why he puts quality in a checker rather than in the prompt, and Loop Engineering for the loop shape itself.
The general form#
The interesting claim is not about these two tools. It is a re-audit criterion: a technique shelved because its remediation cost exceeded a human's patience is a candidate for revival, and the shelving decision carries no information about whether the technique was right. Martin's own framing of the whole interview runs on this: "These ideas have been good for a long time. We've just never had the labor available to actually push through them."
Techniques in the corpus that fit the shape and have not been re-audited under agent labor: exhaustive property-based test generation, full-codebase invariant checking, systematic fault injection, and — his own current example — architectural dependency-rule enforcement across every module boundary rather than the handful a human would police (see Deep Modules for Agents).
Where it is not free#
He is explicit that the gates are bought with throughput, and that a ceiling exists even if he has not found it:
"Obviously there has to be a case where there's too much, right? Eventually you will slow the agents down to the point where they're slower than humans. And at that point you've lost the game."
His self-reported margin under the full gauntlet is "a factor of two or three or four" over a human, with a task a bare agent finishes in five minutes taking about an hour through the gates. That is a real price paid for the revival, and the only stated stopping rule is the human-parity floor — which is a floor, not an optimum.
What this does and does not establish#
It is one practitioner's account with no measurement, and it grades favourably a set of tools he wrote himself. What it does supply is a falsifiable structural claim with a cheap test: if agent labor is what revived these techniques, then mutation-testing and complexity-gate adoption should rise with agent adoption in a way it did not with CI adoption, and the gate-passing loop should show up as a distinct cost line rather than as better code. Nothing in the corpus measures either yet.
It also sits at an angle to the measured picture of agent testing. Agent-Generated Test Quality finds that agents' tests are broad but poorly targeted — half of code-changing PRs carry no test change, and error-handling constructs go unexercised up to 86% of the time. Mutation testing is the exact instrument that would catch that class of gap, because a surviving mutant is an untested branch. Martin's hardener stage is, in effect, the remedy for the deficiency those studies measure — proposed independently, and never measured against them.
Connections#
-
Impose Values, Not Disciplines — the companion principle: the gates enforce the value the discarded ritual used to deliver
-
Spec-Driven Development as the New Waterfall — the gates are what make cheap, unplanned change safe rather than merely cheap
-
Deterministic Engineering for Agent Code Review — the measured cousin: determinism injected into a review pipeline, and the gate-vs-instruction arm this practitioner account informally supplies
-
Review as the Control Point — the control point relocated from a reviewer with skill to a criterion that executes
-
Parallel Agent Orchestration — the cleaner and hardener stages are where these tools run in his pipeline
-
Context Window Smart Zone — the decay argument for putting durable rules in a checker instead of the prompt
-
Robert C. Martin (Uncle Bob) — whose practice this is, and whose bias is worth reading alongside it
-
The Code-Quality Payoff Is Token-Indexed — the labor-side twin: DHH prices quality in tokens, Martin prices it in the agent's own ability to keep working
-
Agent-Generated Test Quality — the measured coverage-targeting gap that mutation testing is built to close
-
Latent vs. Deterministic Space — why the revived tools belong in a checker, not in a context file
-
Verification as the New Bottleneck — this is one concrete answer to it: automate the verification rather than reading the diff
-
Agentic Technical Debt — the failure mode the revived tools are aimed at
-
Deep Modules for Agents — the architecture-level version he has only partly automated
-
Loop Engineering — "change the code until the tool says it's okay" is the loop condition
Open Questions#
- Does mutation-testing or complexity-gate adoption actually track agent adoption, or is Martin's revival idiosyncratic to a practitioner who already owned the tools?
- What is the real ceiling on gate stacking — at what number of must-pass gates does the agent's throughput advantage over a human disappear? Martin says he has not found it.
Sources#
- Uncle Bob on Software Fundamentals in the Age of AI — Robert C. Martin with Matt Pocock, 2026-08-19,
practitioner-opinion
Cited by 17
- Agent-Generated Test Quality×2
It is a gate, not a metric. Martin's use is not measurement but enforcement: the agent loops until…
- Agentic Technical Debt×2
His remedy is not persistent context but a must-pass gate stack that keeps the mess below the…
- Deep Modules for Agents×2
He reached these because interrogating agents about the structure they had produced was reliably…
- Impose Values, Not Disciplines×2
The diagnosis is working memory. Red-green-refactor's tight alternation exists because a human can…
- Latent vs. Deterministic Space×2
His enforcement shape is the loop condition rather than a pre-execution predicate: "you must change…
- Robert C. Martin (Uncle Bob)×2
The tools were already good; the labor was the constraint. CRAP score and mutation testing were…
- Spec-Driven Development as the New Waterfall×2
He flags the prediction as one he expects to lose, which is worth preserving: the argument's whole…
- Verification as the New Bottleneck×2
Reviving Impractical Quality Tools — what goes in the gate stack, and why those tools are available…
- The Code-Quality Payoff Is Token-Indexed
Reviving Impractical Quality Tools — Martin's positive program, and the reason his account does not…
- Context Window Smart Zone
Reviving Impractical Quality Tools — his response to the decay: move the durable rules out of the…
- Deterministic Engineering for Agent Code Review
Reviving Impractical Quality Tools — what he put in the gates, and why those particular tools were…
- Loop Engineering
Reviving Impractical Quality Tools — the loop condition as quality gate: "you must change the code…
- AI Coding Practice
Reviving Impractical Quality Tools — Robert C. Martin's mechanism for why agents change code…
- Open Questions Backlog
Reviving Impractical Quality Tools ×2 (oldest 9d) — Does mutation-testing or complexity-gate…
- Parallel Agent Orchestration
Reviving Impractical Quality Tools — what the cleaner and hardener stages actually run
- Is Persistence the Line Between Prompting and Spec-Driven Development?
That file is persisted, repo-resident, read on every run, and binding — the strongest form of spec…
- Review as the Control Point
Reviving Impractical Quality Tools — the gates he replaces the reviewer with
Related articles
- Robert C. Martin (Uncle Bob)
Author of Clean Code, 50-year programmer, and since December 2025 an agent operator whose stated goal is never to read…
- Matt Pocock
Independent AI-coding educator; built Sandcastle library; smart-zone/grill-me/tracer-bullets pedagogical framing; "bad…
- Agentic Technical Debt
Debt that *compounds* (not just accumulates) because each agentic-coding session re-derives architectural decisions wit…
- Deep Modules for Agents
Ousterhout deep-vs-shallow modules applied to agent-friendly codebases; push-vs-pull instruction delivery; reviewer in…
- Verification as the New Bottleneck
Fiona Fung: coding is no longer the bottleneck — verification, review, maintenance are; shift-left; TDD loses its tax;…
