A Sufficiently Detailed Spec Is Code: Why Agentic Coding Claims Are Misleading
Gabriel Gonzalez, the creator of Haskell's Dhall configuration language and a respected voice in functional programming, has published a sharp critique of the current agentic coding movement. His argument boils down to a simple observation that most developers intuitively understand but the industry keeps ignoring.
The Core Thesis
There's a famous comic strip showing a project manager proudly presenting an incredibly detailed specification document to a developer, who responds: "So you've already coded it, just in Word."
Gonzalez argues that agentic coding advocates are essentially making the same mistake — just with AI in the middle.
Two Misconceptions
Misconception 1: Specs Are Simpler Than Code
Agentic coding is often marketed as "the next generation of outsourcing" — engineers become managers who write specs, and AI agents do the implementation. But this only works if it's cheaper to specify the work than to do the work.
Gonzalez shows it isn't.
Misconception 2: Spec Work Is More Thoughtful Than Coding
To skeptics worried about AI-generated slop, advocates claim that filtering work through specification documents will improve quality. Gonzalez argues this is equally false.
The Evidence: OpenAI's Symphony
Gonzalez uses OpenAI's own Symphony project — their showcase example of "generating code from a specification" — as his primary case study. And the results are damning.
What OpenAI calls a "specification" (SPEC.md) turns out to contain:
- Database schemas dumped as prose
- Concurrency control logic written in pseudocode
- Retry algorithms with explicit formulas:
delay = min(10000 * 2^(attempt - 1), max_retry_backoff_ms) - Cheat sheets explicitly added to "babysit the model's code generation"
- Reference implementations that are outright code in markdown wrappers
One section even says:
"This section is intentionally redundant so a coding agent can implement the config layer quickly."
That's not a specification. That's code wearing a markdown costume.
The Real Cost
Gonzalez's deeper point is about total cost:
- If you need to specify database schemas, algorithms, concurrency logic, and error handling in enough detail for an AI to implement correctly, you've already done the hard engineering work
- The AI isn't saving you from complexity — it's just translating your detailed pseudo-English into actual code
- This is closer to dictation than engineering
What Specs Should Actually Do
Gonzalez isn't anti-specification. He argues that good specifications should:
- Define what the system should do (behavior, invariants, interfaces)
- Leave how to the implementer
- Be understandable to non-engineers when possible
The current agentic coding approach inverts this: it specifies the how in exhaustive detail while claiming to be specifying the what.
Implications for the Industry
This critique is particularly relevant as companies rush to adopt agentic coding tools:
- Engineers won't become "managers of agents" — they'll become specification writers doing the same work under a different name
- Quality won't automatically improve — a detailed spec of bad architecture produces bad code faster
- The real productivity gain from AI coding tools may come from iteration and refactoring, not from spec-to-code generation
Source: Haskell For All | HN Discussion