When you iterate with an AI coding assistant, it fills in details you didn't ask for. Sometimes they're good, a loading animation, a keyboard shortcut. You start relying on them. But since they only exist in code and not in any spec, the next cross-cutting change can silently remove them.
I kept running into this: features appearing, becoming part of my workflow, then vanishing after an unrelated update. Automated tests don't catch it because they test what you planned, not what the AI added.
The fix is an old software engineering idea, add a design layer between specs and code. Specs say what you want. Design captures how the AI interprets it, including any extra "filling" the AI designs. Code follows design. Once something is in design, it stays anchored across changes.
The design artifacts are lightweight (CRC cards, sequence diagrams, UI layouts) and serve double duty as a "whiteboard" for iterating with the AI before touching code. Changes propagate through design first, so you review a small design diff instead of a code diff.
I built a tool around this called mini-spec (https://github.com/zot/mini-spec), but the underlying idea — that a design layer anchors AI-generated code — works regardless of tooling.
zotimer•1h ago
I kept running into this: features appearing, becoming part of my workflow, then vanishing after an unrelated update. Automated tests don't catch it because they test what you planned, not what the AI added.
The fix is an old software engineering idea, add a design layer between specs and code. Specs say what you want. Design captures how the AI interprets it, including any extra "filling" the AI designs. Code follows design. Once something is in design, it stays anchored across changes.
The design artifacts are lightweight (CRC cards, sequence diagrams, UI layouts) and serve double duty as a "whiteboard" for iterating with the AI before touching code. Changes propagate through design first, so you review a small design diff instead of a code diff.
I built a tool around this called mini-spec (https://github.com/zot/mini-spec), but the underlying idea — that a design layer anchors AI-generated code — works regardless of tooling.