firehose> #llmops

Learnings from a No-Code Library: Keeping the Spec-Driven Development Triangle in Sync

TL;DR

Drew Breunig shipped whenwords, a relative-time-formatting library that contains no code — just a SPEC.md and a tests.yaml, from which a coding agent regenerates the .py — to press the question, "if the agents are good enough, do we need to share code?" That reframes software as a spec-driven development (SDD) triangle: specs (what/why/sometimes how) + tests (verifiable behavior) = code (implementation). The insight of the talk is that generating code from a spec is the easy part; the standing problem is that spec, tests, and code are three redundant representations of one intent and therefore drift — bug-fixes add code and tests with no spec change, and agents make implementation decisions the spec never captured. Drift is detectable from signals you already emit (git diffs of code and of the spec, test-coverage tools, and agent traces), and the fix is to extract the intent — a decision log. Breunig's demo tool Plumb runs on each commit: it identifies decisions from code diffs and agent traces, dedupes them, presents them to a human to approve, updates the spec, and reports spec-to-test and spec-to-code coverage. The payoff (agents refer to the spec instead of searching the whole codebase; a durable answer to "why does this code exist?"; even hacks get logged, never silently dropped) is real but honestly bounded: dedup is fuzzy, decision-rejection reversal doesn't work yet, and it's untested on large projects. He closes noting this rediscovers old ground (Dijkstra; Claire Le Goues' 2009 automated software repair) — "inventing from first principles often means rediscovering from first principles."

Concepts introduced

Held, not dropped (themes touched, no concept page yet — spin out on demand):

Key claims

Why this is novel (and what it corroborates)

No existing concept in the graph covers spec-driven development or the intent/decision log, so the dominant stance is novel: two new concept pages (Spec-Driven Development, Decision Log). But it lands squarely against several existing spines and strengthens them:

Illustrated walkthrough


Linked from