I built the same AI coding feature twice. One attempt produced 116 commits and ended in a hard reset. The other shipped. The difference was where the specification lived.
Specification Drift: Why AI Coding Workflows Stop Converging
I built the same AI coding feature twice.
The first attempt used a vibe-coding workflow with Claude Opus 4.6.
It produced:
116 commits
7 reverts
no staging success
a hard reset after 15 days
The second attempt used the same model, same developer, same core feature, and same repository, but with a prompt-driven workflow.
It reached staging by day 5 and merged by day 9.
The difference was not the model.
It was where the specification lived.
The failure mode
The failure mode I’m calling specification drift is this:
Specification drift is the gap between intended behavior and what AI-rewritten code actually preserves.
In the failed attempt, fixes mostly lived in generated code or chat history.
That worked at first. The early changes were fast. Bugs were visible.…