From Vibe Coding to Specification Driven Development

From Vibe Coding to Specification Driven Development

I was "vibe coding" — throwing requirements at Claude and hoping for the best. It worked 80% of the time. The other 20%? Debugging 15 interconnected AI outputs at 2am.

The problem wasn't the AI. It was me treating it like magic instead of engineering.

So I went back to basics. Not 1995 basics — but the principles that made software reliable before we had autocomplete:

  • Specs with boundaries.
  • Tests that actually run.
  • Verification that isn't "looks good".

The 5-Phase Pipeline

① Raw idea → formalized spec (human + AI collaboration)
② Big spec → Micro-specs with acceptance criteria
③ Hierarchical agents — Architect delegates, never writes
④ Domain experts execute — iOS dev, backend, even a steam systems engineer
⑤ Hard gate — tests pass or it loops back. No exceptions.


The key insight that changed everything:

"The agents don't decide when they're done. The tests do."

More on the implementation details in future posts.