Spec-first

Write the spec before you prompt.

The fastest way to a better AI build is not a cleverer prompt — it is five minutes writing a short spec first. A spec is a plain-English description of what you’re building and for whom, written before you ask AI for a single line of code. It is the whole point of the Describe step in the VibeCoded method, and it is the difference between vibes that wander and work you can ship and defend.

Why a short spec beats a long prompt

A spec does not slow you down — it removes the back-and-forth that actually slows you down. Here is what changes the moment you write one.

The AI stops guessing

Without a spec, the model fills the gaps with its own assumptions — the wrong user, the wrong workflow, features you never asked for. A spec replaces those guesses with your decisions, so the first draft is already close instead of a polite mess you have to argue with.

You catch the hard parts on paper

Writing down the data, the constraints, and what counts as done forces the thinking that prompts let you skip. The contradictions and missing pieces show up in a few lines of text — cheap to fix — instead of buried in code you then have to unpick.

Your prompts get shorter and sharper

With a spec open beside you, each prompt becomes a small, specific ask the AI can nail. You paste the relevant slice, generate the smallest useful version, and move on — instead of writing one giant prompt and praying.

This is the Describe step. The VibeCoded method starts by stating the user, workflow, data, constraints, and success condition before asking AI for code. A spec is just that step, written down — so it carries through Generate, Inspect, Test, Explain, and Ship instead of living only in your head.

The seven things a good spec answers

Keep it short — a few lines each is enough. The goal is clarity, not a document nobody reads.

1. User

Who is this for? One real person, not “everyone.” A market trader in Onitsha tracking stock. A church secretary booking the hall. Name them — it changes every other decision.

2. Problem

What painful, specific thing are they doing today that this fixes? Describe the current mess (a notebook, a WhatsApp group, a pile of receipts) so the fix is concrete.

3. Workflow

The exact steps the user takes, in order, from start to finish. This is the heart of the spec — if you can list the screens and clicks, the AI can build them.

4. Data

What information is stored, and the shape of it. List the fields. “A booking has a name, a date, a hall, and a status” tells the AI how to model everything.

5. Constraints

What must be true: works on a cheap phone, no login for the first version, Naira only, must run on free hosting. Constraints keep the build honest and small.

6. Success criteria

How you will know it works — written as things you can check. “A trader can add a sale and see today’s total” is testable. “It works well” is not.

7. Out-of-scope

What you are deliberately NOT building yet. This is the field people skip, and it is the one that saves you. Naming what to leave out stops the AI — and you — from sprawling.

Copy-paste spec template

Copy this, fill in your own answers, and keep it open while you build. Paste the relevant slice into your AI tool when you prompt. The example is a market-trader sales tracker — swap it for whatever you’re making.

# Spec: <one-line name for what you're building>

## User
Who is this for? One real person, not "everyone".
e.g. A market trader in Onitsha who tracks daily sales in a notebook.

## Problem
What specific, painful thing are they doing today that this fixes?
e.g. She loses track of who owes her and forgets the day's total.

## Workflow
The exact steps the user takes, in order:
1. Open the app on her phone.
2. Add a sale: item, amount, paid or owing.
3. See today's total and a list of who still owes.
4. Mark an owing sale as paid.

## Data
What is stored, and its shape:
- Sale: item (text), amount (number), status (paid | owing), date.

## Constraints
What must be true:
- Works on a cheap Android phone, small data plan.
- No login for the first version.
- Naira only. Runs on free hosting.

## Success criteria (testable)
- [ ] A trader can add a sale and see today's total update.
- [ ] Owing sales appear in a separate list.
- [ ] Marking a sale paid removes it from the owing list.

## Out-of-scope (NOT building yet)
- Multiple users / accounts.
- Reports, charts, exporting.
- Payments or bank integration.
How to use it: fill it in before your first prompt, then generate the smallest useful version against it. When the AI drifts, paste the relevant field back in. When you finish a piece, tick a success-criteria box. The spec keeps the build pointed at the user instead of wherever the model wanders.

A spec makes a stronger proof

When you publish a verified proof, the spec is what turns “I made a thing” into work a reviewer can trust.

  • A spec is the receipt for your thinking — it proves the build was a decision, not an accident.
  • Your success criteria become your test checklist, so “it works” turns into something you actually verified.
  • When you Explain the build in your own words, the spec is already half the explanation written.
  • A reviewer can read the spec and the live URL side by side and see that you understood the work.
Bottom line: the five minutes you spend on a spec is the cheapest quality you will ever buy. Write it, build against it, and let it carry you all the way to a proof you can defend.
Describe before you generate Testable success criteria Name what’s out-of-scope