This is an extended chapter to the 6-part Claude Code series. The first six chapters documented building a full-stack Finance app using Vibe Coding. This chapter covers what came next.
The first six chapters documented the complete journey of using Claude Code for Vibe Coding — building a full-stack application from scratch and accumulating 40,000 lines of code. Vibe Coding delivered incredible speed, but as the project grew, a structural problem emerged:
AI writes code fast. AI also goes off-track fast.
When you describe a requirement in one sentence, AI might understand 70% of it and then sprint full-speed in that direction for two hours — only for you to realize the core logic is wrong and have to start over.
This isn't theoretical. Before adopting SDD, my real pain points in the Finance project were:
- Unstructured workflow: I had to remind AI to organize requirements before writing code, otherwise it jumped straight to implementation
- Missing design documentation: architectural issues only surfaced after implementation, making course corrections expensive
- Inconsistent code quality: the same requirement could produce wildly different code quality across sessions
- Tests routinely skipped: Vibe Coding tends toward "get it running first," making tests optional
- Slow debugging: without clear task boundaries, bugs were hard to locate and back-and-forth with AI was inefficient
This chapter documents a methodology upgrade experiment: introducing Spec-Driven Development (SDD) into the Finance project using OpenSpec, completing three new features, and comparing results against prior Vibe Coding work.