Build it fast.
Then look hard.
By the end of this part you have a real app of your own, for a house move, running on your own iPhone, and an honest score of what it does and does not do.
You describe the whole app to Claude Code in one go, not in stages, and it builds. Expect one, two or three messages before it is running, not a single perfect one.
It comes out rough because one message cannot say everything, and that is deliberate. Part 4 builds this same app properly, and it needs something real to improve on.
Three names,
from memory.
A warm-up, and nothing new. Three words from Part 2, all three used again today. Get them back in your head now, because the rest of the deck uses them without stopping to explain.
To open Claude Code, press the preset, your saved button at the top of Superset, the app that lists your projects. Claude Code opens in your project folder, the folder on your Mac that holds your app.
A paste line is a dark box with this label on it. Press anywhere on the box to copy the line, then paste it into Claude Code.
Answer each card below out loud, then tap the card to see whether you were right.
The box above is a drawing, so nothing happens if you press it. The first real one is in chapter 03, and that line starts your guided session for today.
A word you cannot place is in WORDS.md. Open your project folder in Finder to read it.
An app for
moving house.
This chapter describes the app you are about to build. There is nothing to do on it: read it, and picture the finished thing.
You need that picture for the two chapters after this one. Chapter 03 asks you what has to be true before you would call it finished. Chapter 04 asks you to describe it to Claude Code in your own words.
You are moving house. Every box gets a number written on it in marker. The app holds what is inside each box, and searches across all of them. You type kettle, and the app tells you box 12.
It is there so that you have something to picture while you answer the questions in the next chapter.
It is an app on your own iPhone, not a page in a browser. Your app opens inside one free app from the App Store, whose only job is to run apps that are still being built. It is called Expo Go.
Making an iPhone app has a name for costing money, and this route does not. Expo Go is free, and nothing today asks you for a card. If a screen asks you for one, stop and tell Munim.
Today you describe the app in one go and take what comes back. Expect one, two or three messages before it is running on your phone. It will be incomplete, and that is planned.
Asking for a whole app in one message is what leaves the holes. It leaves them for everybody who asks that way, and it will leave them today.
Part 4 builds this same app properly. The only way to see what that buys you is to have today’s rough version sitting beside it.
Stop whenever you like. Your work is in your project folder and not in the chat, so closing it loses nothing. To come back, press the preset and paste /workshop with no number after it.
Write down what
good looks like.
What good looks like is the list of things that must be true before you call the app done. Your trade calls that acceptance criteria. This chapter ends with yours, in a file.
The list gets settled now, before anything is built, so it cannot bend to fit whatever you are shown.
Start today’s guided session now. Claude Code walks you through each step of this part, in your own project folder.
You do not write this list and you do not copy one. Claude Code asks you about ten short questions and builds the list out of your answers, in your words.
The questions come a few at a time, each with two or three answers you can tap. Tap one, or ignore them and say what you actually think.
Say it out loud rather than typing it. You set dictation up in Part 2 for exactly this. Talk for as long as you like, in whatever order it comes out. Rambling is useful here and tidy is not.
Three of about ten, drawn here so you recognise the shape when it arrives. This is this page’s own drawing and not a picture of your screen: yours will not read word for word like these.
You close the app and open it again the next morning. Should the boxes you typed in still be there?
You type kettle. Should it look inside the boxes, or only at the names you gave them?
How many boxes will you really have by the end of the move?
Every one of them is a question only you can answer. There is no right column, and an answer that is not on offer is still an answer: say it.
When the questions run out, Claude Code reads the finished list back to you and puts it in this file, in your project folder. You see the whole thing before anything is built.
Read it then. A line that is not what you meant is a line to change while nothing has been built against it.
One line will not occur to you, and it is the most expensive one to find out about late. Ask for it yourself, once the list has been read back to you.
Munim is building the same app on his own Mac, so the two results can be put side by side in Part 5.
Now ask,
in your own words.
You have your list. Now describe the app to Claude Code, in one go, in your own words. Expect one, two or three messages before it tells you the app is built.
When this chapter ends the app is built and running on your Mac. Chapter 05 puts it on your phone.
A thin description gets you a thin app. Claude Code builds what you tell it and guesses the rest.
A thick one still comes out rough. One message cannot carry a whole app, however much you put in it. That is the thing this part is built to show you.
Say as much as you can anyway. The more you say, the more there is to judge in chapter 07.
The map below opens out one person’s ask so you can see the kinds of thing a good one says: what it is for, how it should look and feel, what is on each screen, what each part does, and what it must never do.
This is one person asking for an app about lending books. Yours is about boxes, so none of these words are yours to use.
It is here for one reason only: to show how much a good ask says, and what it covers.
You do not have to write yours in this shape, and you do not have to cover all five branches, the five kinds of thing the map lists.
Now write yours, for the moving boxes app, in that much detail. Name no program, no language and no company: choosing those is Claude Code’s job, and naming one narrows what it can pick.
Say all of this out loud, the way you answered the questions in the last chapter. It is the longest thing you have to describe in the whole series.
Take as long as you like, in whatever order it comes out. Nobody is marking the sentences.
The box below is a starting shape, not a form you have to fill in. Copy it, paste it into Claude Code, and replace anything in square brackets with your own words, brackets included.
If a line does not apply to your app, delete it. If you want to say something the shape does not ask about, add it. Write as much as you like: more detail gets you a better app, and rambling is fine.
It is for [who uses it], and I use it on my iPhone.
It should look and feel [plain, warm, like what], with [colours], [how big the type is], and [whether anything is allowed to move].
Screen by screen: [what I see the moment it opens], [what happens when I tap a box], [whether there is a sign-in screen at all].
What each part does: [adding a box, in detail], [searching, in detail], [photographs, in detail].
When it is done, these must be true: [take the lines from your list].
It must never [what it must not do].
Can you build this for me?
The app is on your Mac now, and not yet on your phone. Chapter 05 puts it there.
Now put it
on your phone.
The app is on your Mac and nowhere else, so the only place it exists is a screen you are not holding. This chapter puts it on your iPhone.
On your iPhone, open the App Store and install Expo Go. It is free. Its one job is to run apps that are still being built.
Then check one thing before you go on: your Mac and your iPhone have to be on the same Wi-Fi. That is the step most likely to catch you out.
Claude Code may need to install things on your Mac first. It walks you through that, and there is nothing for you to choose.
At some point today Claude Code stops before installing a piece of software and prints a line saying the install was blocked. Nothing has gone wrong.
Your project is set up to stop at any software it has not used before and wait for you. It will do this every time.
Ask /guardian before you let it through. It is a skill, a job Claude Code already knows how to do. This one reads what a piece of software is, and reports back.
Say what happened in the same message, so it knows what you are asking about.
Not Expo Go’s own scanner: that is how it is done on an Android phone. If nothing happens when you point the camera, check that the Mac and the phone are on the same Wi-Fi.
There is no fee for any of this, and no Apple account to set up. Expo Go is the whole of it.
The app runs only while your Mac is running it. Shut the Mac, or close Claude Code, and the app on your phone stops.
Nobody else can open it. Not Munim, not on his phone, not at all. Today the app is yours and it is on one device.
While your app is running on your phone, your Mac is doing the work of running it. That is a program on the Mac, not the app on your phone, and it keeps working the whole time.
So close Claude Code on the Mac when you stop. Closing Expo Go on the phone frees nothing up, because Expo Go is on the phone and the work is on the Mac.
One question for later, while Claude Code is here. In Part 4 you will see this app on a simulated iPhone on your Mac screen, and not every Mac can run one. Find out now rather than then.
One free account,
for later.
The app you have put on your phone is on one phone. The day you want it open when your Mac is shut, or open on somebody else’s phone, it needs a web address of its own. That day is Part 5.
The account that address comes from is free, and you make it today, while Claude Code is here to walk you through it. Making it publishes nothing.
Cloudflare is a company whose computers hold websites and never switch off. A web address for your app would come from them.
Claude Code sends you to Cloudflare. No card is asked for. Three buttons sit at the top of the sign-up page: press Continue with GitHub, the third one. Two-factor, the second proof you set up in Part 2, guards Cloudflare as well.
The screens after the sign-up page are not drawn here, because nobody has watched them and they change.
Type what your screen says into Claude Code and it tells you which button to press. If a screen asks you for money, stop and tell Munim.
Why stop, if a screen asks you for money
Nothing in these five parts costs money at this point. So a screen asking for a card is a sign that you are on a different page from the one this deck is describing.
It is usually harmless: a paid plan offered beside the free one, or a page that looks alike. Sometimes it is not the company’s page at all.
Either way, the cost of stopping is a message. The cost of carrying on is a card number typed into a page nobody has checked.
- Do not type the card in.
- Photograph the screen and send it to Munim.
- Carry on with the next part of the deck if there is one that does not need this page.
It will look finished.
It will not be finished.
You have an app on your phone. Read this before you score it, so that a fault reads as a fault and not as your own mistake.
An app built this fast behaves well for five minutes. The holes show in the sixth minute.
Four examples of the kind of thing that turns up. You may meet all four, or one, or none, and you will almost certainly meet something that is not here.
They are here so that the first strange thing you see reads as an ordinary part of a build this quick, rather than as something you broke.
A photo that will not save
It reads like a broken app. It is a size problem. An error turns up mentioning a size or a limit. The photos your iPhone takes are large, and the app was built without anything to make them smaller first.
Nothing you have already typed in is affected. It is the one photo that did not go in.
- Follow the four moves in the green box below. This one is a real error, so they apply.
- Add one sentence of your own: the photos need making smaller before they are saved.
A version from before
Nothing is wrong here at all. You asked for a change, Claude Code made it, and your phone is still showing you the app as it was beforehand. It kept a copy to save itself fetching one.
This is the one on the list that needs no Claude Code and no error. It is worth knowing early, because it looks exactly like a change that did not work.
- Close the app in Expo Go, all the way, by swiping it away.
- Point your Camera at the code on the Mac again.
A search that finds nothing
This one is not an error, and that is why it is the expensive one. You type kettle and get nothing back. The search is reading the names you gave your boxes and never the things you listed inside them.
Nothing goes red and nothing stops. The app carries on looking finished while the reason you wanted it is missing.
- Nothing today. There is no error to copy.
- Take it to chapter 07 and score that line FAIL. A missing piece is scored, not repaired, and this is the kind your own list is best at catching.
Boxes that vanish
The one that costs you your own typing. You ask for one small change, the app starts again on your phone, and every box you put in has gone.
What you typed was being held in the same place as the app itself, so rebuilding the app replaced both. Nobody thinks to ask for it to be otherwise, which is why it is on your list from chapter 03 rather than left to memory.
- Say it plainly to Claude Code: what you type in has to survive a change to the app.
- Put a couple of boxes back in and ask for another small change, so you watch them stay.
- Score the line on your list about keeping what you typed. It is the one this decides.
Two kinds of thing, and you treat them differently. Something that stops you, with red text, gets copied into Claude Code. Something that is missing gets written down and scored in chapter 07.
When you cannot tell which one you are looking at, treat it as the first. Pasting an error that turns out to be a missing feature costs you nothing.
An error is a line of small type naming a file and a number. One appears on the app’s own screen, or in Claude Code. You do not have to understand it.
at savePhoto (app/box.js:214)
Copy the error: drag across it with the mouse, or press and hold it on a phone, then copy. Paste it into Claude Code, then paste the line below under it.
Use this when an error stops you from carrying on. A missing feature is not an error, and chapter 07 is where those get scored.
Four more failures, and what to do about each, are on Card 2 →, the printed page for when something goes wrong.
Now inspect it,
against your list.
Nobody checked your list while that app was being built. Not Claude Code, not you. You asked once, it built, and the lines you wrote sat in a file nothing read.
That is a property of asking once. Not of Claude Code, and not of anything you did.
Ask it to check your list and it will. It was never asked to, and nothing in the quick build was going to ask.
Part 4 is where that changes, and it does not change by anyone remembering. There the app is built in packs: a pack is one small piece of work.
The method itself will not let a pack finish until its lines have been checked, one at a time, and the check is written down where you can read it.
So today you do that job by hand, one line at a time. This chapter ends with a score written beside every one.
Your list is in WHAT_GOOD_LOOKS_LIKE.md, the file that came out of chapter 03. Open your project folder in Finder to read it, or let Claude Code read it back to you with the paste line below.
Score every line PASS, FAIL or UNKNOWN, with the app open on your phone in front of you, never from memory.
UNKNOWN means the test could not tell you either way.
One of your lines will be about searching inside the boxes rather than only at their names. That one is easier to get wrong than it looks, so here it is as a question.
Some of your lines need nothing but a real box and a free hand. Do those first: pick a box up, and try to add it to the app with the hand that is still free.
Leave one line until last, the one you added at the end of chapter 03: a change to the app must never delete the boxes you have already put in.
Test it by doing exactly that. Ask Claude Code for one small change, start the app again on your phone, then look for your boxes. If they have gone, that line is a FAIL.
Claude Code walks you down the list and writes your answers down. It does not score the app for you, and nothing here does: you are the one holding the phone.
A list is yours to extend. If today showed you something your list never asked for, ask Claude Code to add it as a new line, then score that one too.
A FAIL here is not a bad result. It is the thing you came for: it names, in your own words, one thing that asking once did not give you.
Do not fix any failing line now. A fixed app is no longer evidence of what a build this quick produces, and Part 4 needs that evidence standing beside it.
One app.
One honest list.
You now have three things: an app running on your own iPhone, a list of what good looks like, and an honest score against it.
The score is the point. It names, in your own words, what the quick build did not give you.
One site diary entry now, while it is fresh. It records what the playbook did to you, and if the app came out better than you expected, that goes in too.
Part 4 builds this same app again, properly, in a project folder of its own. You take your list with you and score the new app against the very same lines.
Keep today’s app exactly as it is: the only record of what a build this quick produces.
End of Part 3 · The quick build
Anything on these pages
Send this straight to Munim. He gets it on his phone right away.