Who Verifies the Builder? Toward Independent Assurance for Agent-Produced Software
Source
arxiv.org
Author
Sion Israel Sion, Alain April
Date
Why it matters
When a coding AI agentAn AI system that doesn't just answer once but works toward a goal in a loop — taking actions, reading the results, and deciding what to do next.Full definition → writes both the code and its tests, a green suite proves little. The paper proposes a spec-first verifier with no implementation access, then mutation and property-based testing, as an independent check.
Key takeaways · AI-distilled
The paper argues that when one agentic system writes both code and tests, a passing suite is not independent evidence: visible tests become an optimization target, code and tests can share one misreading of the spec, and the builder's tests may be incomplete.
Its framework separates building from verifying, adds a Verification Contract stating what must be shown before release, and runs a spec-driven developmentWriting and agreeing the specification first, then having an agent implement against it — the spec, not the code, becomes the artifact you maintain.Full definition → phase without implementation access, then mutation analysis, property-based testing and fuzzing, leaving release to a human.
In a pre-registered study on three stateful services, a verifier in a fresh context windowThe maximum amount of text a model can consider at once — its working memory for the current conversation or task.Full definition → caught more of 46 seeded faults than the builder's own tests (Holm-corrected p = 0.006) and surfaced spec ambiguities, at the price of rare false oracles.
The builder's programs were correct, but its own tests missed subtle interactions. A verifier from a different provider did not add detection.
Terms in this piece · Glossary
AI agent — An AI system that doesn't just answer once but works toward a goal in a loop — taking actions, reading the results, and deciding what to do next.
spec-driven development — Writing and agreeing the specification first, then having an agent implement against it — the spec, not the code, becomes the artifact you maintain.
context window — The maximum amount of text a model can consider at once — its working memory for the current conversation or task.