- Author
- Gabriella Gonzalez
- Published
- 17 March 2026
- Kind
- Personal blog post, with one hands-on test
- Original
- haskellforall.com/2026/03/a-sufficiently-detailed-spec-is-code
- Subject
- Checkable specs for coding agents
- Themes
- Saying it exactly
What it is
Gabriella Gonzalez argues against generating software purely from specification documents. The post names two misconceptions. One is that specs are simpler than code. The other is that spec writing must be more thoughtful than coding.
What it says
- The post reads OpenAI's Symphony spec as Markdown pseudocode, including schema dumps and outright code.
- A spec precise enough to generate code reliably must come to resemble code.
- It cites Dijkstra on narrow interfaces and the failure of verbal precision in mathematics.
- It cites Borges's map as large as its empire, for a spec that keeps growing.
- Specs were never time-saving devices, the post concludes.
What evidence it gives
Gonzalez asked Claude Code to build Symphony in Haskell from the spec. The result had several bugs. Even once it ran, the agent spun without progress on a trivial ticket. The post also notes that most YAML implementations fail to conform fully.
Interests and limits
This is one attempt, in Haskell rather than a mainstream language. The post addresses that objection. Calling the spec AI-written is the author's inference from its style. The argument targets specs used to replace code, not checks used to test it.
Connections
These links are this wiki's own reading, not claims the sources make.
- The components of agent memory. Both reach for the same Borges story, about a map as large as its empire. Martin's wiki outgrew its documents. Gonzalez warns a spec can swell toward its code. Each shows a record that has stopped abstracting.
- On the foolishness of "natural language programming" (EWD 667). Gonzalez borrows Dijkstra's phrase about the vain attempt at verbal precision. Dijkstra wrote long before language models, and Gonzalez tests the claim on one. The objection has survived a change of machine.