08

Chapter eight · The distillation

The Playbook

Forty-seven days, 214 prompts, nine crashes, one launch - compressed into twelve rules, six prompt templates, one checklist, and the words you need. This page is meant to be stolen from.

Rules: 12 Templates: 6 Pre-flight checks: 10 Cost to copy: $0

Part one

The twelve rules

01

Prompt the spec, not the app

Never ask for an app. Ask for a spec, argue about it, then build against it. The spec is the app’s memory; without it every session starts from amnesia and drifts toward the average of the internet.

02

Write the promise by hand

One paragraph, your words, no AI. Every feature must trace its ancestry to it. If you can’t write the promise, you don’t have an idea yet - you have a vibe, and vibes don’t compile.

03

Make the AI attack before it builds

The default model is a cheerleader. Prompt for hostility first: ten brutal questions, one at a time. The cheapest pivot in existence is an eleven-minute interrogation on day one.

04

Choose a niche you can touch

Frequency, data shape, findability, wallet check, neglect gap, witness access - six rows, five minimum. You need one lead user you can watch with your own eyes. Proximity is the moat.

05

Walking skeleton before anything beautiful

Thinnest end-to-end version on a real device in week one. It proves the data model, kills the blank-page terror, and converts the project from conjuring to improving.

06

Tokens before screens

Write the aesthetic constitution, then encode it as design tokens in one file, then generate UI. Constraints are what stop forty screens from looking like forty different apps.

07

Small prompts fail small

One feature per prompt, named files, named tokens, explicit blast radius (“do not touch any other file”). The failure rate doesn’t drop - the failure cost does. That’s the whole trick.

08

Judge the preview, never the prose

The AI’s summary of what it built is marketing. The rendered UI, the crash log, and the on-device thumb test are the truth. Critique what matters (“the date is stealing the cone’s job”), not adjectives.

09

Commit like a coward

Every working state, every time, immediately. 164 commits in 18 days. When an agent detonates a file at 23:40 - and it will - a fresh commit turns catastrophe into a shrug.

10

Obey the 40-minute rule

If one problem survives 40 minutes of iterating, stop prompting patches and ask “what assumption is wrong?” You’re negotiating with a bad architecture. Refactor prompts fix what patch prompts can’t.

11

Burn poisoned sessions early

Three abandoned approaches in one chat = contaminated context. The model keeps smelling the old plan. Fresh session, paste spec, one-line goal, clean slate. Seven times in 18 days. Zero regrets.

12

Prompt quality up, explicitly

Standing instructions change output: “no force unwraps, honest empty states, every failable path handled.” Crash rate fell to zero within three builds of adding that line. Quality is a promptable property - but only if you prompt it.

Part two

Six templates, ready to steal

These are the actual shapes from the ledger, lightly generalised. Replace the brackets. Copy buttons included, because of course.

template 1 · the hostile kickoff
 I want to build [app]: [one-sentence description]. Before any
  code, interrogate the idea. Ask the 10 hardest questions a
  sceptical indie app veteran would ask. One at a time. Be
  brutal. If there's a fatal flaw, find it tonight.
template 2 · the spec co-draft
 You are a senior [platform] product engineer and my co-author.
  Draft a two-page PRD for [app]. Hard constraints:
  · buildable by one person + AI in [N] weeks of evenings
  · every feature must serve this promise: "[your promise]"
  · include an explicit "Not in v1" section - killing scope is
    the point
  · propose the data model: entities, fields, relationships
  · flag where the frameworks are likely to fight us, with
    reasoning
template 3 · the aesthetic constitution
 Before any screens, write the design brief with me. References:
  [2–3 apps whose qualities you admire + the user's physical
  world]. Define: (1) three adjectives the UI must never betray,
  (2) max 5 colour tokens, (3) type scale, system fonts only,
  (4) spacing scale, (5) one signature detail that makes it
  unmistakably [app].
template 4 · the daily build prompt
 [SPEC.md pasted] Tonight: [one feature, one line].
  [Precise description: which file, which tokens, which states].
  Constraints: no force unwraps; every failable path renders an
  honest empty state; do not touch any other file. Show me the
  diff before writing.
template 5 · evidence-first debugging
 Bug report. Read everything before proposing anything.
  EXPECTED: [one sentence]
  ACTUAL:   [one sentence, no adjectives]
  REPRO:    [numbered steps, smallest failing case]
  EVIDENCE: [full crash log / slow-mo observation / exact file]
  CONTEXT:  [device, OS, last 3 commits]
  Rules: rank your top 3 hypotheses, state what evidence
  distinguishes them, write no fix until I confirm which one
  we're testing.
template 6 · the 40-minute-rule refactor
 We've spent [N] rounds patching [problem]. Stop patching.
  Assume the architecture is wrong, not the implementation.
  (1) List the assumptions the current structure makes.
  (2) Identify which one reality violates.
  (3) Propose the smallest refactor that removes the assumption.
  No code yet - structure first.

Part three

The pre-flight checklist

Run this before you call anything “done”:

  • SPEC.md exists in the repo and has been pasted into every session this week.
  • Walking skeleton runs on a physical device, not just the simulator.
  • Hostile fixtures pass: empty, enormous, emoji-named, and offline states all render honestly.
  • Zero force unwraps - search for ! in your own diff and interrogate every one.
  • Oldest-device test: borrow the oldest iPhone you can and run the core loop once.
  • Thumb test by a real user who has never seen the screen before, with zero explanation from you.
  • Dark mode + Dynamic Type checked on the three most important screens.
  • The prompt ledger is up to date - future you will debug with it.
  • Every commit builds. git bisect is only magic if every stop on the line compiles.
  • The promise still fits in one breath - say it out loud. If it grew a second clause, something crept.

Part four

The vocabulary

Steering an AI well is mostly knowing what things are called:

Walking skeletonThinnest end-to-end version that runs on device.
Re-anchorPasting the spec + one-line goal at session start.
Context poisoningOld abandoned approaches lingering in chat, biasing new answers. Cure: fresh session.
Blast radiusThe files a prompt is allowed to touch. State it every time.
Hostile fixtureTest data designed to be mean: empty, huge, weird, offline.
40-minute ruleStuck 40 min → stop patching, interrogate architecture.
Prompt ledgerYour running log of significant prompts + outcomes. Unglamorous, indispensable.
Niche testFrequency · data shape · findability · wallet · neglect · witness.

Coda

The wheel spins fast now.
Your hands still decide.

Vibe coding didn’t remove the craft from building software. It moved it - from typing syntax to holding intent. Taste, structure, stubbornness. Pick a niche you can touch, write the promise by hand, and open the terminal tonight.