𝗦𝗽𝗲𝗰-𝗗𝗿𝗶𝘃𝗲𝗻 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝗗𝗶𝗱𝗻'𝘁 𝗦𝗼𝗹𝘃𝗲 𝗧𝗵𝗲 𝗥𝗲𝗮𝗹 𝗣𝗿𝗼𝗯𝗹𝗲𝗺
Spec-driven development (SDD) is the new answer to AI agents writing wrong code.
The workflow is simple. You write a structured spec. An agent executes the plan. You review the result. Tools like GitHub Spec Kit, OpenSpec, and Kiro are leading this shift.
This approach works better than raw prompting. But it has a massive flaw.
It relies on the spec staying the source of truth. This is a lie.
For 20 years, we tried to keep docs in sync with code. Design docs, wikis, and READMEs all failed. Why? Because editing code is fast and delivers value. Editing a doc is slow and delivers nothing visible. Documentation always loses to speed.
SDD faces the same issue.
An agent hits a constraint. It fixes the code to make it work. Now the code and the spec do not match. The spec becomes useless within days. Most frameworks tell you to use "discipline" to fix this. Discipline has failed us every single time before.
Writing a full spec before coding assumes you learn nothing during implementation. This breaks the feedback loop. It turns agile development into a heavy, upfront process.
One developer ran a multi-month project using SDD. The agent followed every spec perfectly. The system still failed. The spec could not capture the knowledge that only appears during building. One small infra change broke the entire spec graph.
Another team tried SDD and found it was 10x slower. They had more ceremony but the same number of bugs.
The goal should not be more documents.
The real problem is how to keep specs alive. We need specs that update themselves. We need tools that infer the spec from the code and the running system. It should work like a lockfile. It must be automatic.
I am not sure if this is possible yet. I want to hear from people building in production.
- Does your spec survive past week three?
- When it drifts, what causes the break?
- Have you tried generating specs from code or telemetry?
- Does the rigor add value or just ceremony?
Optional learning community: https://t.me/GyaanSetuAi