If you’ve spent any time building software with LLMs lately, you’ve probably fallen into the trap of vibe coding.
It starts simple. You open Cursor, GitHub Copilot, or Claude Code, throw a quick prompt at the input box, and watch hundreds of lines of code generate. It feels like magic. You’re shipping features at lightning speed, skipping the boilerplate, syntax errors, and repetitive typing.
But sooner or later, the vibes turn sour.
You ask the AI to add a small feature, and it breaks three unrelated modules. You ask it to fix the resulting bug, and it gets stuck in a loop of circular imports, deprecation warnings, and broken state. Suddenly, you’re spending hours debugging code you didn’t write, using prompts you don’t understand, on a codebase that’s rapidly turning into spaghetti.
What is vibe coding?
Vibe coding is the practice of building software with AI by writing conversational, open-ended prompts without structured planning, specifications, or tests.As AI researcher Andrej Karpathy famously described it in early 2025: “There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. Just see stuff, say stuff, run stuff, and copy and paste stuff, and it mostly works.” While fast initially, it often leads to severe code drift and regression bugs because the AI lacks durable context.
To build production grade, maintainable software with AI, we need to move from chaotic vibes to a structured, disciplined methodology: Spec-Driven Development (SDD).
What is Spec-Driven Development (SDD)?
Spec-Driven Development (SDD) is a software engineering methodology where structured, human-readable specifications (specs) and technical plans act as the absolute source of truth. Code is treated as a derivative artifact generated to satisfy the spec, making AI development highly predictable, reliable, and cost-effective.
The waterfall paradox: Why AI thrives on specs
Traditional software teams famously abandoned the heavyweight Waterfall model in favor of Agile. Humans are bad at predicting requirements upfront; we need to iterate, build prototypes, and adjust plans as we learn.
AI agents are the exact opposite: they thrive in a structured, Waterfall-like environment.
Vibe Coding (High Drift):
[Vague Prompt] ---> [AI Speculates Context] ---> [Code Generation] ---> [Bugs & Retries]
Spec-Driven Development (Zero Drift):
[Durable Spec] ---> [Architect Plan] ---> [Task Breakdown] ---> [Targeted TDD Code]To generate correct, cohesive code on the first attempt, an LLM needs absolute clarity. It needs to know:
- The exact system architecture and API boundaries.
- Existing design patterns and directory structures.
- Core business logic constraints.
- The definition of “done” (test suites and verification steps).
When you vibe code, you force the model to speculate. It fills in the blanks with generic assumptions, which quickly drift from your codebase’s actual patterns.
By using specifications, we provide the model with all the context upfront. We do the heavy lifting of defining the boundaries, letting the AI do what it does best: executing highly targeted, correct implementations within those boundaries. This approach bridges the gap, giving us the structured context of Waterfall with the high-speed execution of modern tooling.
The true cost of vibe coding (and how reasoning models change the math)
With the release of advanced reasoning models like Claude 4.8 Opus, Claude 4.6 Sonnet, and OpenAI’s ChatGPT 5.5, structured development is no longer just a best practice—it’s a financial necessity.
These reasoning models are incredibly capable, but they are expensive. If you let an agent vibe code its way through a problem, it will wander around your directory structure, read files at random, make trial-and-error edits, and burn through millions of tokens in the process.
Vibe Coding Loop:
Query -> Read File -> Edit -> Build Failure -> Read Another File -> Retry = High Token Cost
Structured SDD:
Durable Spec -> Exact Files Scoped -> High-Reasoning Execution -> Correct Code = Highly EfficientBy providing a structured spec and plan upfront, you drastically reduce the state space the AI has to explore. The model doesn’t need to spend costly reasoning tokens figuring out what you want or searching for where to put it. It can focus 100% of its computational budget on generating high-quality, correct-by-construction code, saving you substantial token costs and making your agent runs highly reliable.
The spec-driven development (SDD) landscape
To solve the vibe coding crisis, the developer community has introduced several structured frameworks. While they share the core goal of making AI development disciplined, they approach the problem differently:
| Framework | Key Focus | Development Style | Best For |
|---|---|---|---|
| GitHub Spec-Kit | Rigorous multi-phase pipeline | Greenfield & complex systems | Teams needing full audit trails |
| OpenSpec | Agile, delta-based change specs | Brownfield & legacy code | Fast, iterative codebase changes |
| BMAD | Ecosystem-scale agent orchestration | Enterprise & full-lifecycle | Complex, adaptive multi-agent tasks |
| Obra Superpowers | Embedded developer agent skills | Lightweight, interactive TDD | Getting started |
1. GitHub Spec-Kit (github/spec-kit)
An open-source, agent-agnostic CLI toolkit that structures development into a durable, gated pipeline. It uses five distinct phases: Constitution → Specify → Plan → Tasks → Implement. It is highly rigorous and fits complex, greenfield projects where you want a complete audit trail from specification to implementation.
- Learn more: GitHub Spec-Kit Documentation
2. OpenSpec
An agile, change-management-focused methodology designed specifically for legacy or existing (brownfield) codebases. Instead of requiring you to write massive, all-encompassing project specifications, OpenSpec focuses on “delta specs”—documenting only the exact changes being made. It is fast, lightweight, and easy to adopt.
- Learn more: OpenSpec Official Site
3. BMAD (Breakthrough Method for Agile AI-Driven Development)
An AI-driven development framework within the BMAD Method Ecosystem that structures the entire process from ideation and planning all the way through agentic implementation. It provides specialized AI agents, guided workflows, and intelligent planning that adapts to your project’s complexity.
- Learn more: BMAD Method Docs
4. Obra Superpowers (obra/superpowers)
An agentic skills framework that embeds structured engineering workflows directly into your agent’s execution environment. Instead of acting as a separate tool, Superpowers provides a collection of composable procedures (defined in SKILL.md files) that agents must follow. It enforces brainstorming, planning, and Test-Driven Development (TDD) natively.
- Learn more: Obra Superpowers on GitHub
Why I use and recommend Obra Superpowers (and finding what works for you)
Of all the frameworks in the SDD ecosystem, I have found Obra Superpowers to be the most elegant and least complex to integrate into daily workflows.
However, the AI coding space is young and rapidly evolving. While Superpowers fits my workflow perfectly, you might find that GitHub Spec-Kit, OpenSpec, or BMAD feels more intuitive or matches your specific style better. The important point here is not which specific tool you pick, but that you make the shift away from chaotic vibe coding. I recommend experimenting with these frameworks to see what works best for you.
Rather than introducing heavy CLI commands or complex multi-agent ceremonies, Superpowers simply adds structure to the agent itself. Because the skills are defined as markdown instructions directly in the repository, the AI agent is forced to adhere to them.
Whether I am debugging a small issue or gathering requirements for a new feature, the framework ensures the agent:
- Brainstorms the problem and lists all assumptions first.
- Creates a durable Implementation Plan and gets my explicit approval.
- Tracks progress in a living Task List (
task.md). - Verifies the changes using automated tests before marking them complete.
It keeps me in the driver’s seat as the architect, while the AI acts as a disciplined, reliable execution partner.
Setup guide: Getting started with Obra Superpowers
Setting up Superpowers in your repository is straightforward. Here is how to install and use it with modern AI assistants like Claude Code.
Step 1: Install the Superpowers Plugin
If you are using Claude Code, you can install Superpowers directly from the plugin marketplace:
# Add the marketplace registry
/plugin marketplace add obra/superpowers-marketplace
# Install the superpowers plugin
/plugin install superpowers@superpowers-marketplaceAlternatively, you can install the skills package directly using npx and choose the specific modules you need:
npx skills add https://github.com/obra/superpowers --skill brainstormingIf you prefer a full local copy, you can also clone the repository directly:
git clone https://github.com/obra/superpowers.git .agents/skills/superpowersStep 2: Running a structured task
Once installed, the framework is self-driving. When you prompt your agent to tackle a task, it will automatically bootstrap the Superpowers context.
To verify the installation, simply ask your agent:
“What superpowers do you have?”
The agent will respond with a list of active engineering skills, such as planning, test-driven development, and architectural design.
Step 3: A real-world example
Let’s say we want to add an API rate-limiting middleware to an Express app. Instead of saying “write rate limiting middleware,” which would lead to vibe-coded assumptions, we trigger a structured session:
User: Let's add a Redis-backed rate-limiting middleware to our API.
Agent: [Planning Skill activated]
I have initialized an implementation plan at `.agents/plans/redis-rate-limiter.md`.
Before writing code, let's align on the requirements:
1. What is the maximum request threshold per window?
2. Should we block requests completely or return a 429 status code?
3. Let's create a test suite first to verify the limits.The agent will not write a single line of production code until you have reviewed and approved the plan. Once approved, it breaks the plan down into a task.md checklist and executes it systematically, running tests at every step.
Wrapping up
Vibe coding is fun when you are building weekend hobby projects or simple scripts. But for serious, long-term software development, it is a liability.
Adopting a structured methodology like Spec-Driven Development (whether through lightweight frameworks like Obra Superpowers or comprehensive toolkits like GitHub Spec-Kit) saves you token costs, eliminates debug loops, and yields software that is durable, clean, and easily maintainable.
Stop coding on a vibe. Give your AI agents the structure they need to succeed.
Frequently asked questions (FAQ)
What is vibe coding and why is it problematic?
Vibe coding is the practice of using AI agents to generate code based on loose, informal, and conversational prompts without clear architectural plans or specifications. While fast initially, it leads to code drift, regression bugs, and massive technical debt because the AI lacks durable context.
What is Spec-Driven Development (SDD) in AI engineering?
Spec-Driven Development is a software methodology where structured, human-readable specifications and technical plans serve as the absolute source of truth. Code is treated as a derivative artifact generated to satisfy the spec, making AI generations highly predictable and robust.
How do specifications save token costs with reasoning models?
Advanced reasoning models use massive amounts of tokens searching directories and debugging errors during trial-and-error coding. By providing an upfront, scoped plan and spec, you restrict the model’s search space, allowing it to generate correct code immediately and saving up to 50% on API costs.
What is Obra Superpowers and how does it work?
Obra Superpowers is an agentic skills framework that imports predefined software engineering procedures (like planning, brainstorming, and TDD) directly into the agent’s context. It ensures the AI behaves like a disciplined staff engineer, drafting plans and running tests instead of rushing to implement.
Is OpenSpec better than BMAD for my project?
If you are working on an existing, legacy codebase (brownfield) and need rapid, iterative updates, OpenSpec’s lightweight delta-spec approach is ideal. If you are building an enterprise-grade, highly regulated greenfield project with a complex multi-agent architecture, BMAD’s simulated agile team is a better fit.


