Back to the blog

The one-page spec to write before you prompt an AI to code

Code5 min read · 27 September 2026

The GetPack team

You have your idea, you’ve opened your favorite AI tool, and you type straight away: “build me an app that…”. That’s the best way to get something that looks like what you wanted without actually being it. The fix fits on one page, gets written before you open the AI, and takes fifteen minutes. Here’s how to build it.

Why one page changes everything

An engineer writing about technical specs put it well: the cheapest place to make a decision is in the document, not in code you’ve already written. Reversing a choice before you’ve typed a line costs two minutes; reversing it after the AI has built ten files around it costs a full rewrite. Writing the spec upfront forces you to face the questions that would otherwise surface too late.

An article specifically about prompting AI coding tools sums up why most tasks fail: unclear scope, hidden constraints, undefined interfaces, a “done” that means nothing precise to anyone. A one-page spec exists exactly to stop the AI from filling in those blanks with its own assumptions. Anthropic’s own documentation for Claude Code, its command-line coding tool, points the same way: it recommends naming the files and interfaces involved, stating what’s explicitly out of scope, and ending with a way to verify the result, before letting the AI write anything at all.

The 6 sections of your mini spec

You don’t need a ten-page document. Six short sections are enough for a student project: a thesis tool, something for your club, an association, or a personal project.

  • Problem: what concrete problem this project solves, in 2-3 sentences. Not the solution, the problem.
  • Users: who’s going to use it. One type of user if possible for a first version; trying to satisfy everyone from day one is the surest way to satisfy no one.
  • MVP features: the strict minimum needed for the tool to actually be useful. MVP stands for “minimum viable product”: the simplest version that genuinely works, not the one with every idea you had in the shower.
  • Data: what information the app stores, and who can see it. Asking this now saves you a bad surprise later (the article on this blog about securing a vibe-coded app details what can go wrong if you skip this).
  • Screens: the list of the 3 to 5 main screens, in the order the user sees them. No need for a mockup, a bullet list is enough.
  • Acceptance criteria: how you’ll know each feature genuinely works. And, most importantly, what’s explicitly out of scope for this version — that last line prevents the most drift.

The template to copy

# Spec — [project name]

## Problem
[What concrete problem does this project solve? 2-3 sentences,
without describing the solution.]

## Users
[Who will use it? One type of user if possible for version 1.]

## MVP features
- [Must-have feature 1]
- [Must-have feature 2]
- [Must-have feature 3]
(Everything else waits for version 2: list it anyway, under a
"Later" section, so you don't forget it without mixing it into
the MVP.)

## Data
[What information does the app store? Who can see it?
Is any of it personal data?]

## Screens
[List the 3 to 5 main screens, in the order the user sees them.]

## Acceptance criteria
- [How do you know feature 1 genuinely works?]
- [How do you know feature 2 genuinely works?]
- [What's explicitly out of scope for this version.]

Fill it in within fifteen minutes, without hunting for the perfect wording. If some boxes still say “to be decided” or “maybe,” that’s the sign the question needs settling now, not while the AI is writing code.

How to use it with an AI coding tool

Once the page is filled in, paste it as-is into your conversation with whichever AI tool you’re using (Claude Code, Cursor, Lovable, it doesn’t matter), and explicitly ask for a plan before any code:

Here's my spec: [paste the document].
Before writing any code, propose a plan that breaks this
project into small steps. Also tell me if you see anything
vague or any question I haven't actually settled.

GitHub’s own documentation for Copilot recommends the same logic from the other direction: start with a general description of the goal, then list the precise requirements, and break a complex task into several simple ones rather than asking for everything at once. A spec does that breakdown work for you, once and for all, instead of redoing it in every message.

What if the project changes along the way?

A spec isn’t set in stone. It’s normal to update it once you start seeing your project take shape and new ideas show up. The good habit isn’t rewriting everything each time, but adding new ideas to a “Later” section instead of mixing them into the MVP features mid-stream: that’s exactly what derails a project, one feature at a time. If a change touches a decision you’d already settled (say, the type of user, or what data gets stored), update that section and explicitly flag it to the AI in your next message, rather than letting it guess that something changed.

What it actually prevents

Without this step, the same three problems keep coming back: the AI assumes a type of user you never had in mind, it builds an “extra” feature you never asked for that complicates everything, or it declares the project “done” while the one case you actually cared about doesn’t work. A one-page spec doesn’t guarantee a perfect project, but it turns a vague conversation into something you can point at and say “build exactly that.”

If the project is graded coursework, keep this page in your files: it shows that the thinking about the problem and the design choices came from you, even if the AI helped write the code afterward. Also check your institution’s own AI usage rules before using this for graded work.

Key takeaways

  • Writing a page before coding costs fifteen minutes and saves hours of rework: decisions are cheaper to make in a document than in code that’s already been written.
  • Six sections are enough: problem, users, MVP features, data, screens, acceptance criteria.
  • The last section (what’s out of scope) is the one that prevents the most drift.
  • Paste your spec into your conversation with the AI and ask for a plan before any code.
  • Keep this page if the project is graded: it documents your own thinking, independent of the AI.

The full template, with filled-in examples, is available in the cahier-des-charges-vibe skill.

Sources

  1. Best practices for Claude Code — Claude Code Docs · accessed 27 September 2026
  2. A practical guide to writing technical specs — Stack Overflow Blog · accessed 27 September 2026
  3. Spec-First Prompting: Write a One-Page Design Doc Before You Ask for Code — DEV Community · accessed 27 September 2026
  4. Prompt engineering for GitHub Copilot Chat — GitHub Docs · accessed 27 September 2026

Read the next article

Thesis27 September 2026

How to cite ChatGPT or Claude in a thesis: APA, MLA, ISO 690

Code27 September 2026

Claude Code for beginners: install, first launch, CLAUDE.md

AI news27 September 2026

Claude Opus 5.5: what really changes (and how to use it to study)

Analysis27 September 2026

The AI race: why some people are scared and others aren't

Code27 September 2026

Building your first MCP server, step by step

Code27 September 2026

Deploying your first site for free: Vercel, Netlify, Cloudflare Pages, or GitHub Pages

Explainer27 September 2026

AI detectors: are Turnitin, GPTZero and Compilatio reliable?

Code27 September 2026

Writing your own Claude skill: structure, SKILL.md, and a description that triggers

Career27 September 2026

France's national student-entrepreneur status (SNEE) and the PEPITE network, explained

Analysis27 September 2026

France in the AI race: Mistral, energy and talent

AI news27 September 2026

French Tech and AI: the French startups to know in 2026

Code27 September 2026

Git without fear: commit, branch, remote explained, then the commands that save you

Explainer27 September 2026

Chinese AI: DeepSeek, Qwen, Kimi… why Europe is wary

Health27 September 2026

AI in medical school: study for PASS, LAS and the EDN safely

Tools27 September 2026

Free AI for students: every offer and discount (2026)

Career27 September 2026

AI on an internship or apprenticeship: what’s allowed, what isn’t

Code27 September 2026

From IDE to ADE: coding with AI agents in 2026

Code27 September 2026

Reading an error without panicking: the anatomy of a stack trace (Python and JavaScript)

Tools27 September 2026

Best AI for students in 2026: the honest comparison

Tools27 September 2026

New AI models in 2026: which one should you study with?

Tools27 September 2026

French AI tools you’ve never heard of: Noota, Moshi, Vibe…

Analysis27 September 2026

Why AI is so expensive (and American AI even more so)

Code27 September 2026

How to prompt an AI coding tool well: the method that changes everything

Code27 September 2026

Securing a vibe-coded app: 7 mistakes to fix before you publish

Code27 September 2026

Slopsquatting: when AI recommends packages that don't exist

Weekly brief27 September 2026

AI news roundup: the week of September 21–27, 2026

Code27 September 2026

Vibe coding: what it actually means (and how not to mess it up)

AI news27 September 2026

Why Yann LeCun wants AMI: AI beyond LLMs

Tutorial26 September 2026

Connect an MCP connector to Claude without writing a line of code

Degrees26 September 2026

Choosing your program with real MonMaster and InserSup data

Method26 September 2026

APA 7, ISO 690, Vancouver: how to cite your sources properly

Explainer26 September 2026

ChatGPT's 'hidden codes' on TikTok: fact vs. fiction

Health26 September 2026

Medicine: revise for the EDN with France's public drug database

Career26 September 2026

Internship pay and apprentice wages in 2026: the rules

Explainer26 September 2026

AI and academic integrity: what universities actually say

Tutorial26 September 2026

Installing a skill in Claude in 2 minutes

Thesis26 September 2026

Thesis: building your research question and outline with AI

Method26 September 2026

Building your exam study schedule with AI, the right way

Method26 September 2026

Revising with AI, honestly: active recall, Feynman, quizzes

Career26 September 2026

Choosing your apprenticeship with real employment data

Code27 September 2026

Learning to code in the age of AI: what you still need to know how to do yourself

Join GetPack

Already have an account? Sign in