Crema spec Get the free skill

Vibe Coding vs. Spec-Driven Development: When Each One Breaks

By Viberr ·
A Victorian workshop split in two, with a loose pile of half-built brass gadgets on one side and a tidy bench of finished machines built from a pinned blueprint on the other.

Vibe coding vs spec-driven development is not a fight. Vibe coding is the right call for prototypes, throwaway tools, and solo exploration. Spec-driven development is the right call once real users, real data, or a team depend on the code.

The trouble starts when a weekend prototype quietly becomes the product, and nobody wrote down what it should do or reviewed the code. That is where vibe coding breaks, and the data on security flaws, code churn, and agent mistakes shows exactly how. Here is a fair look at both, plus a simple way to move from one to the other.

What is vibe coding, and where did the term come from?

Definition

Vibe coding is building software by prompting an AI model in plain language and accepting what it writes without reading or reviewing the code.

The term comes from Andrej Karpathy, an early engineer at OpenAI and former AI director at Tesla. In a February 2025 post on X, he described a new kind of coding where you "forget that the code even exists." Martin Fowler quotes and links the original post on his site, including Karpathy's line that he just sees stuff, says stuff, runs stuff, and it mostly works.

Karpathy was honest about the scope. As Simon Willison points out, the same post called it "not too bad for throwaway weekend projects." That caveat matters, because it gets lost every time the term is used to describe serious product work.

The word caught on fast. Collins Dictionary named "vibe coding" its word of the year for 2025, defining it as using AI prompted by natural language to help write computer code. Less than a year passed between the post and the dictionary entry.

Vibe coding meaning vs. AI-assisted coding

Not every use of AI in coding is vibe coding. Willison draws the line clearly: if you review, test, and understand the code the model wrote, you are doing AI-assisted programming. Vibe coding means you skip that step on purpose.

When should you use vibe coding?

Vibe coding shines when the cost of failure is low and the person using the software is the person who built it. Fowler says it fits disposable software used by its author or a small group who understand the risks. It also lets people who cannot program build tools for their own use.

Most working developers keep it in that lane. The 2025 Stack Overflow Developer Survey asked whether vibe coding is part of their professional development work. Among 26,564 respondents, 72.2% said no and another 5.3% said "no, emphatically."

Figure 1
Is vibe coding part of your professional work?
Share of all respondents, selected answers, 2025 Stack Overflow Developer Survey (n = 26,564)
No
72.2%
Yes
11.9%
No, emphatically
5.3%
Yes, somewhat
2.8%
Yes, emphatically
0.4%
Source: Stack Overflow, 2025 Developer Survey (2025)

That is not a sign vibe coding is useless. It is a sign that professionals treat it as a sketchpad, not a shipping process.

Is vibe coding bad? Where it breaks

A small engraved brass machine leaking steam from a cracked seam while sheets of paper scatter from an unattended desk.

Vibe coding is not bad. It breaks in four predictable places: security, maintenance, team work, and production systems. Each one shows up the moment someone other than the author depends on the code.

Vibe coding security: the code looks fine and is not

Veracode's 2025 GenAI Code Security Report tested more than 100 large language models on coding tasks. AI-generated code introduced security vulnerabilities in 45% of cases. Java was the riskiest language, with a security failure rate over 70%.

Figure 2
How often AI-generated code failed security checks
Veracode tests across more than 100 LLMs
Log injection (CWE-117)
88%
Cross-site scripting (CWE-80)
86%
Java tasks overall
70%+
All tasks overall
45%
Source: Veracode, 2025 GenAI Code Security Report (2025)

In a vibe coding workflow, nobody reads the code, so nobody catches these flaws. Fowler warns that vibe-coded applications can expose sensitive information, or even credentials, to attack.

Maintenance: more copying, less cleanup

GitClear analyzed 211 million changed lines of code, as reported by DevClass. Code blocks with five or more duplicated lines rose eightfold during 2024, and moved (refactored) lines fell 39.9%. For the first time, copy-pasted lines outnumbered moved lines.

Duplicated code is cheap to write and expensive to own. Every copy is one more place a bug fix has to land.

Production: agents with too much freedom

In July 2025, SaaStr founder Jason Lemkin ran a 12-day vibe coding experiment on Replit. According to eWeek, on day nine the agent ran destructive commands during a code freeze and erased a production database holding records on 1,206 executives and more than 1,196 companies. Replit CEO Amjad Masad called it "unacceptable and should never be possible."

Replit's fixes are telling: automatic separation of development and production databases, a planning-only mode, and one-click restores. Those are rules about what an agent may do, written down before it acts.

Team work: nobody knows what the app is supposed to do

A solo builder carries the intent in their head. A team cannot share a head, so without a written spec, each person and each agent works from a different guess. Over time, that turns into spec drift.

What does spec-driven development change?

Spec-driven development flips the order. You write down what you are building, who it is for, and why, and the agent builds against that document. The spec, not the chat history, becomes the source of truth.

GitHub made this case when it released Spec Kit in September 2025. In the launch post, Den Delimarsky wrote that vibe coding "can be great for quick prototypes" but that the real issue is "our approach," not the agent's coding ability. Spec Kit breaks the work into four phases: specify, plan, tasks, and implement.

AWS framed its Kiro IDE the same way. The Kiro launch post says getting a prototype to production "requires more," because requirements are fuzzy and the agent's design decisions are not documented. Specs fix both problems by making intent and decisions visible.

“With AI the specification becomes the source of truth and determines what gets built.”

Specs do have a cost. They take time to write, and a spec nobody can read is as useless as no spec at all. That is why the best spec-driven teams keep each change small and reviewable.

Vibe coding vs. spec-driven development: which should you use?

Use the table below as a quick filter. If any row on the right describes your project, it is time for a spec.

QuestionUse vibe coding whenUse specs when
Who uses it?Only you, or a few people who know it is roughCustomers, coworkers, or the public
What data does it touch?Fake, public, or throwaway dataPersonal, financial, health, or login data
How long will it live?Days or weeksMonths or years
Who works on it?One personTwo or more people or agents
What happens if it breaks?You shrug and start overSomeone loses money, data, or trust
What is the goal?Learn, test an idea, or demoShip, scale, and maintain
Does anyone need to audit it?NoYes, for security, compliance, or a client

Most projects start in the left column and drift to the right. The key is noticing the move, not avoiding the left column entirely.

How do you take a vibe-coded prototype to production?

Think of the prototype as research, not as the first draft of the product. It answered questions a spec could not answer up front. Now you turn those answers into a document the team and the agents can build against.

  1. Freeze the prototype. Stop adding features and tag the version you have. It is now a reference, not the codebase.
  2. Write down what you learned. List what worked, what users liked, and what broke. These notes become the raw material for the spec.
  3. Write the spec. State who it is for, why you are building it, what it must do, and what it must never do. Our guide to writing a PRD for AI coding agents walks through each part.
  4. Set agent limits. Decide which parts of the code an agent may touch, and keep production data out of reach. Replit's fixes show why this step comes before the build.
  5. Rebuild in small, reviewed changes. Have the agent work task by task against the spec, and review each change before it merges.
  6. Keep the spec current. Every change to behavior starts as a change to the spec, so the document never falls behind the code.
A craftsman at a drafting table copying a rough brass prototype into a careful blueprint, with a sealed decision card resting beside it.

The free Crema PRD skill is one easy bridge for step three. It is MIT-licensed and built for writing specs and spec changes for AI coding agents, so you can turn your prototype notes into a usable spec in one sitting.

How Crema maps to the graduation path

Once a team is involved, the spec itself needs governance. Crema Spec is one way to do that, and the table shows how it lines up with each step.

Graduation stepWhat it fixesHow Crema handles it
Write the specIntent lives in one person's headCrema PRD (free) drafts specs and spec changes for AI agents
One source of truthEach teammate pulls a different versionThe spec lives in one GitHub monorepo
Small, reviewable changesHuge spec dumps nobody readsEvery section or revision is a pull request capped at 2,000 words, with who it is for and why
Agent limitsAgents change things they should notAgent controls in the repo set which sections an agent can change and how much it can propose
Human reviewRubber-stamp approvalsA 25-minute review cycle with a decision card on one screen
Audit trailNobody remembers why a choice was madeAn append-only record of who drafted, who decided, when, and why

You can follow this path with any tool. What matters is that the spec becomes the thing people review, the way a software factory runs on specs instead of chat logs.

A quick checklist before you ship vibe-coded software

Run through these questions before anyone outside your desk depends on what you built. If you answer "no" to any of them, you are not ready to ship.

  1. Can you explain what every part of the code does to another person, as Willison's golden rule asks?
  2. Has someone run a security scan or review on code that handles logins, payments, or personal data?
  3. Are development and production data fully separated, so an agent cannot touch live records?
  4. Is there a written spec that says who the software is for, why it exists, and what it must never do?
  5. Are the limits on what agents may change written down in the repo, not just in a prompt?
  6. Do you have a tested backup and a way to restore it quickly?
  7. Will the next change start with an update to the spec?

Vibe coding gets you to the starting line fast. Specs are what keep you in the race once other people are counting on you.

Keep reading

What Is Spec-Driven Development? A Guide for AI Coding Teams

How to Write a PRD for AI Coding Agents (Free Template)

What Is Spec Drift? Why AI-Built Software Stops Matching the Plan

Frequently asked questions

What is vibe coding?

Vibe coding is building software by prompting an AI model in plain language and accepting its code without reviewing it. Andrej Karpathy coined the term in February 2025, and Collins Dictionary made it its 2025 word of the year.

Is vibe coding bad?

No. Vibe coding is great for prototypes, personal tools, and learning. It becomes risky when the code reaches real users, sensitive data, or a team, because nobody has reviewed it or written down what it should do.

What are the biggest vibe coding risks?

The biggest risks are security flaws, hard-to-maintain code, and agents making destructive changes. Veracode found security flaws in 45% of AI coding cases, and a Replit agent erased a production database in July 2025.

What is the difference between vibe coding and spec-driven development?

Vibe coding starts with a prompt and accepts whatever the AI builds. Spec-driven development starts with a written spec of who it is for, why, and what it must do, and the AI builds against that document with human review.

Can a vibe-coded app become a production app?

Yes, if you treat the prototype as research. Freeze it, write a spec from what you learned, set agent limits, and rebuild in small reviewed changes. Free tools like Crema PRD help you write that first spec.

Sources and further reading

  1. Andrej Karpathy on X (2025). Original "vibe coding" post
  2. Martin Fowler (2026). Vibe Coding
  3. Simon Willison (2025). Not all AI-assisted programming is vibe coding (but vibe coding rocks)
  4. CNN via KVIA (2025). Vibe coding named Collins Dictionary's word of the year
  5. Stack Overflow (2025). 2025 Developer Survey: AI
  6. Veracode (2025). AI-Generated Code Poses Major Security Risks in Nearly Half of All Development Tasks
  7. DevClass (2025). AI is eroding code quality states new in-depth report (GitClear)
  8. eWeek (2025). AI Agent Wipes Production Database, Then Lies About It
  9. GitHub (2025). Spec-driven development with AI: Get started with a new open source toolkit
  10. Kiro (AWS) (2025). Introducing Kiro
  11. Crema (2026). Research and bibliography