Skip to main content
Handbook/Plan/Page 18 · Requirements

Convert Ideas to Specs

Share

Share this page

Pass it to someone who needs it.

Star on GitHub

Key takeaway: Turn the idea into a testable list

Chapter 2 of 15 · Plan

Structure your idea into a clear specification

Your app boots and does nothing at all, which is exactly the right moment to decide what it should do. If you have built with AI before, you have watched it confidently ship the wrong thing, and that is just the AI having too much room to guess. Before it writes a feature, we pin the idea down so it has nothing left to invent.

By the end of this part, you can:

  • Turn a vague idea into a written spec your agent can build from
  • Cut your feature list down to an MVP you can actually finish
  • Name your app's pieces and map how its data fits together
  • Hand your agent a plan tight enough that it stops guessing
Done:Set Up·You are here: Plan·Next:Architect

You have the whole idea in your head. Your agent cannot build a feeling, and you cannot check whether a feeling is finished. Before any code, you turn that idea into a clear, specific list of what the software must do. This chapter gets you that list.

2.1.1A requirement is testable, not a wish

A requirement is one thing your software must do, written plainly enough that anyone can tell whether it works yet.

WishRequirement
Users can log inA person signs in with an email and password, and resets a forgotten one through an email link

The difference is that you can test the requirement and point at a clear yes or no. Write every requirement so it passes that test.

2.1.2Write each one as a user story

Professional teams capture requirements as user stories, one line each: As a [type of user], I want to [do something], so that [reason]. The shape forces you to name who the feature is for and why it exists. That quietly kills the features nobody actually needs.

Example: As a shopper, I want to save items to a cart, so that I can pay for them all at once.

2.1.3Split must-have from later

List every story you can think of, then mark each one must-have or later. Be harsh: a must-have is something the product is useless without, not something that would be nice to have. The must-haves are all you build first; everything else waits its turn.

Sort every story by one harsh test: is the product useless without it?

2.1.4Get them from real users, not your head

Requirements come from the people who will actually use the thing, not your imagination. Talk to three to five real potential users and write down what they ask for in their own words.

Never ask "would you use this?", which buys you a polite yes and nothing else. Ask about the past instead, where the answers are facts:

  • What do you do about this today, step by step?
  • What did the last time cost you, in money or in hours?
  • What have you already tried, and why did you stop?

Find those people where they already complain. Try a community you belong to, a forum about the problem, or the handful of people who have grumbled about it in front of you.

Watch out: if you cannot find one person who wants this, that is the cheapest moment you will ever get to learn it, long before you have built anything. Check before you build; if you build anyway, at least know you skipped it.

This prompt turns the idea in your head into that list:

Ready prompt
Act as a senior product engineer. Before you ask me anything, read my rules file and my project folder so you know the stack and what already runs. Then interview me about the app I want, and turn my idea into user stories, one line each: "As a [user], I want [action], so that [reason]." Mark each must-have or later, and keep every one testable, something we can point at and call done. If something I ask for fights the stack already chosen, say so before writing it. Create a specs folder in my project if there is not one, and save the list there. If you need the full reasoning behind this step, read https://zalt.me/guides/vibe-coding/plan/gathering-requirements My idea:

Do this now: paste the prompt, describe your idea, and let your agent draft the user-story list into your specs folder. That list is the raw material for every chapter that follows.

Mahmoud Zalt

Mahmoud Zalt

Software engineer, 16+ yrs · built Sistava.com in 3 months, idea to production, using these methods

Resources
Star on GitHubContribute
Donate

Support my work

A small tip keeps the free work coming.

© 2026 Mahmoud Zalt. Free to read, not to republish.
Copyright & license