Skip to main content

Spec-Driven Vibe Coding

· 4 min read

Most people think vibe coding is just:

“Open ChatGPT, ask for a feature, paste code, repeat.”

That works for prototypes.

But once your app becomes:

  • a real SaaS
  • a client project
  • a production system
  • something with users and payments

the biggest problem appears:

AI has no memory of your project’s reality.

And that is where most vibe-coded projects slowly collapse.


The Real Problem With AI Coding

AI is actually very good at:

  • generating code
  • explaining concepts
  • scaffolding apps
  • accelerating repetitive work

But AI struggles with:

  • historical context
  • architectural intent
  • production constraints
  • undocumented edge cases
  • “why things are this way”

Experienced engineers carry this knowledge in their heads.

AI does not.

So every new chat session risks:

  • reintroducing old bugs
  • violating hidden assumptions
  • breaking existing workflows
  • “fixing” intentional design decisions

This is why many AI-assisted projects become unstable over time.


The Missing Piece: Institutional Memory

The solution is surprisingly simple:

Instead of relying on:

  • long chat histories
  • prompt memory
  • context windows

store your project knowledge as markdown files.

Not just specs.

Not just TODO lists.

But actual operational knowledge.


A Better Vibe Coding Workflow

Here’s a workflow that scales much better for long-term AI-assisted development.

1. Idea Validation​

Use general AI tools like ChatGPT or Claude to explore:

  • whether the idea is viable
  • who the target users are
  • existing competitors
  • monetization models
  • technical feasibility

At this stage, everything is speculative.

You are exploring possibilities.


2. Plan Creation​

After validating the idea, create markdown documentation describing:

  • architecture
  • responsibilities
  • system boundaries
  • database design
  • workflows
  • implementation approach

Example:

/plans
auth-system.md
billing-architecture.md
queue-processing.md

This becomes the project’s intended design.

This is your:

“ideal world.”


3. Rules Creation (The Most Important Layer)​

This is where most AI workflows fail.

Once the system is actually implemented, reality appears.

You discover:

  • technical limitations
  • framework quirks
  • production constraints
  • scaling problems
  • dangerous edge cases

Now create rules documentation describing the ACTUAL behavior of the system.

Example:

# Queue Processing Rules

- Jobs are NOT guaranteed ordered across tenants
- Retrying payment jobs can create duplicates unless idempotency keys exist
- Email queue intentionally delays 15 seconds to avoid provider throttling
- Redis keys MUST include tenant prefix

This is no longer architecture theory.

This is operational truth.


Why “Rules” Matter More Than Specs

Specs describe:

what you wanted.

Rules describe:

what reality allowed.

That distinction is extremely important.

Without rules documentation, AI tends to:

  • optimize away intentional safeguards
  • simplify dangerous code paths
  • reintroduce known problems
  • misunderstand hidden constraints

The rules layer becomes:

  • institutional memory
  • tribal knowledge
  • engineering history

This is how you make AI more reliable over time.


4. Issue Documentation​

Every production issue teaches something valuable.

Instead of leaving bugs buried inside Git history or chat logs, document them.

Example:

# Mobile Safari Double Scroll Bug

## Symptoms
Page jumps when keyboard appears

## Cause
100vh behaves inconsistently on iOS Safari

## Fix
Use dynamic viewport height units

## Regression Risk
High — affects all modal layouts

Now future AI sessions can:

  • understand historical failures
  • avoid repeating mistakes
  • recognize recurring patterns

Suggested Folder Structure

/docs
/ideas
/plans
/rules
/issues
/decisions
/postmortems

This structure gives AI:

  • architecture context
  • operational constraints
  • historical memory
  • debugging knowledge

without depending on a single chat session.


Why This Works Better Than Giant Prompts

Many developers try to solve AI context problems by:

  • creating massive prompts
  • pasting huge code snippets
  • keeping one endlessly long conversation

That does not scale.

Structured markdown knowledge scales much better because it:

  • survives across tools
  • survives across AI models
  • survives across sessions
  • becomes searchable
  • becomes reusable by teams

Your repo slowly becomes:

a shared engineering brain.


This Is Closer To Real Software Engineering

Professional engineering teams already separate:

  • specifications
  • operational rules
  • incident reports
  • architectural decisions
  • postmortems

The difference is:

AI-assisted developers now need these documents too.

Because AI performs dramatically better when it understands:

  • why the system exists
  • what constraints matter
  • what already failed before

Code alone is not enough.


The Future Of Responsible Vibe Coding

The future probably looks something like this:

/specs
/plans
/rules
/issues
/decisions
/postmortems

Then AI agents become:

  • planners
  • implementers
  • reviewers
  • debuggers

all sharing the same institutional memory.

That is much closer to real software engineering than:

“paste prompt → ship to production.”


Final Thought

AI is an incredible accelerator.

But acceleration without memory creates chaos.

The best vibe coders in the future will not be the people with the fanciest prompts.

They will be the people who build:

  • structured knowledge
  • operational context
  • documented engineering reality

because better context produces better AI decisions.

And that is how you vibe code responsibly.