S0 · Pre-flight
Goal: zero surprises at hour 0. Every account proven, every cable packed, the battlefield scouted.
THE MOVES
- Deploy a hello-world tonight from the laptop you'll bring, to the exact platform you'll use (Vercel / Netlify / GitHub Pages). Broken auth costs 5 minutes tonight and a panicked hour tomorrow.
- Copy the starter template somewhere ready — at hour 0 you rename it, not build it.
- Key vault: one local file (never committed) with every API key you might need. Issue them now.
- Hotspot drill: tether laptop to phone once. The venue wifi swap must be muscle memory.
- Scout: 3 past winners of THIS hackathon (taste repeats) · every sponsor prize track (it changes which idea you pick) · judge backgrounds (VC → market story, engineer → one technical flex, sponsor → their API on screen).
- Read the submission form now. Video required? That's a freeze-window task to budget.
- Pack: charger, extension cord, HDMI adapter, earphones, water, real food. Sleep.
PITFALLS
- "My account definitely works" — untested is broken until proven.
- Skipping the sponsor-track read, then discovering at hour 20 you were one API call from a second prize.
DONE WHEN
- A URL you deployed tonight loads on your phone
- Warroom PRE-FLIGHT checklist is green
- You slept
P0 · Pick — by elimination, not inspiration
Goal: one locked idea + a 3-sentence pitch story before other teams finish arguing.
THE MOVES
- Open the Forge, fill the mission form (2 minutes), copy 01 DIRECTOR into your strongest model. From now on it outputs agent-ready prompts, not advice.
- It generates 8 ideas, then kills everything that: needs data you don't hold · needs a key you don't have · needs ML to be accurate to not embarrass · needs 2+ devices/users to demo · lands its wow after 60 seconds · can't be faked at the edges · needs more than one sentence to feel.
- Survivors get scored against the actual judging criteria. One pick. No fallbacks.
- Write the pitch story: (1) a person's problem, (2) what you built + the twist, (3) the payoff line a judge would repeat to another judge.
- Choose the one wow moment (see Playbook's catalog) and the exactly-3 features the demo shows. Nothing else gets built this weekend.
PITFALLS
- Browsing ideas past 5% — a decided mediocre idea polished hard beats an undecided brilliant one.
- Keeping a "backup idea" — it's a licence to half-commit to both.
- Teams: voting forever. One person owns the pick; everyone commits.
DONE WHEN
- Pitch story exists, said aloud once from memory
- The 3 features are written down
- Everyone can name the wow moment
P1 · Deploy — a public URL before features
Goal: skeleton live on the internet by 20% of time. Ugly is fine. Deployed is law.
THE MOVES
- Copy the starter template as your repo. It already has the dark-glass UI, toasts, skeletons, empty states, and demosafe.js — every fetch gets a timeout → seed-data fallback, plus a silent Ctrl+Shift+P panic mode for live demos.
- Fire 03 P1 at your execution agent: brand the template with the pitch's words (search "EDIT:"), swap seed.json for 12+ realistic rows in your domain — real-sounding names, plausible numbers, timestamps from today. Never test1/lorem.
- Deploy immediately — before any feature code. Acceptance: the URL loads on a phone.
- The prompt also creates the team's memory: STATE.md (live truth), AUDIT.md (findings), LOG.md (decision trail). These make teammates and fresh AI sessions swappable.
PITFALLS
- "Let's just build the first feature, then deploy" — deploy friction found at hour 20 is fatal; found at hour 2 it's trivia.
- Adding auth or a database "because real apps have them." The demo script doesn't show them → they don't exist.
- Swapping to a heavier framework mid-scaffold. The template is boring on purpose.
- Public URL on your phone
- Seed data looks like a product screenshot
- STATE.md / AUDIT.md / LOG.md committed
DONE WHEN
P2 · Build + Audit — twin engines, simultaneously
Goal: the 3 features, each fully demoable before the next starts — while a second AI hunts what a judge would see.
THE MOVES
- 04 P2A runs your builder in tool #1: one feature per run. "Done" = reachable in ≤2 clicks · works on seed data · loading + empty states · every fetch through demosafe · deployed and verified live.
- 05 P2B runs an auditor in a second tool at the same time: pulls the diff, walks the live demo path like a hostile judge (double-clicks, empty inputs, refresh mid-action), files findings in AUDIT.md ranked DEMO-BREAKING / UGLY / LATER.
- You are the courier: builder deploys → tell auditor "audit round" → builder fixes DEMO-BREAKING items at the start of its next run. Builder owns source, auditor owns AUDIT.md — they can never merge-conflict.
- Discipline: adjacent "what if it also—" ideas go to STATE.md parked, one line, zero code. Stuck >10 minutes on an approach? Switch to the dumber approach, mark // shortcut:.
- At 70%: stop building. Even if features remain. Especially if features remain.
PITFALLS
- Feature 4. There is no feature 4.
- Both agents editing the same file — git is the only channel, one writer per file.
- Skipping audit rounds when "it's obviously fine." Hour-23 surprises are born at hour 9.
- Sunk-cost debugging: the 10-minute rule exists because solo teams die on one bug.
DONE WHEN
- All 3 features demoable at the live URL
- AUDIT.md has zero DEMO-BREAKING open
- STATE.md current
RL · The Relay — swap drivers without losing the race
Goal: teammate takes over — different machine, different AI session — and loses zero context.
THE MOVES
- Outgoing driver — never pass a red baton: if the demo path is broken, fix it (<10 min) or revert to the last green commit; half-done work goes to a branch, noted in STATE.md.
- Run 09 BATON PASS: the agent rewrites STATE.md (WORKS NOW / IN-FLIGHT / NEXT 3 / GOTCHAS / PARKED), appends LOG.md, commits, pushes. Say one sentence: "Baton's clean, you're driving."
- Incoming driver: git pull, then paste 10 RESUME into a fresh session. It must read the repo and prove understanding — a 5-line sitrep, its next move, any contradiction it sees — before it may touch code. Wrong sitrep? Fix STATE.md first; a stale STATE.md is an hour of confident wrong work waiting to happen.
- Your own session dying is a baton pass to yourself: pull → RESUME → verify → go.
PITFALLS
- Briefing the teammate verbally instead of via STATE.md — if the file needs a speech, the file is wrong.
- Handing off mid-debug "so they can continue where I was." They can't. Green baton or branch.
- Keys in the repo/prompts/log. Names in README; values move by shoulder-tap.
DONE WHEN
- New driver's agent produced a correct sitrep
- LOG.md shows the swap
- Old driver is asleep
P3 · Harden — demo armor, not enterprise armor
Goal: the demo path cannot visibly break. Not "production-ready" — stage-ready.
THE MOVES
- Walk the exact demo click-path against the live URL. Fix only what's visible, smallest diffs.
- Failure masking: every call on the path gets catch + ~5s timeout → a designed fallback (seed data + subtle note). Never a raw error, never an infinite spinner, never a blank region.
- Dead-control sweep: every visible button works or is removed — a disabled button still invites a judge's click.
- Cold start: warm-up ping on page load; first screen renders from seed so nothing waits on the network.
- Resolutions: 1366×768, 1280×720 (projector), one phone width. Console: zero red on the path.
- Write DEMO_FALLBACK.md — how to run fully local if wifi dies — and record a 60-second screen capture as the last-resort backup.
PITFALLS
- The enterprise trap: rate limiting, test suites, security reviews. Judges never see them; the clock does.
- The refactor urge. It's fatigue disguised as insight. Eat something instead.
DONE WHEN
- Demo path survives hostile clicking
- Backup video exists locally
- Wifi-death plan written
P4 · Care — make it feel deliberately made
Goal: a stranger browsing for 60 seconds finds nothing that smells auto-generated and abandoned.
THE MOVES
- Fire 07 P4 — the care audit hunts four smells: LIARS (functions whose names lie), DEAD (code nothing calls, console.log debris, TODOs), FAKE (lorem, test rows, default favicons), BABEL (the same concept under three names — UI copy, code, and pitch must share one vocabulary).
- Apply mechanically-safe fixes only (renames, deletions, copy), one commit per category, verifying the live demo path after each.
- Then open the Warroom's JUDGE tab and score yourself on six axes like the tired judge at table 9. If the verdict says cut — cut.
PITFALLS
- Scoring yourself like the project's parent instead of its judge.
- "Fixing" behavior during a naming pass — care commits change words, never logic.
DONE WHEN
- CARE_AUDIT.md's four tables are applied or consciously deferred
- Judge-tab verdict ≥ SHORTLIST, or scope was cut
P5 · Freeze — hands off the code
Goal: a rehearsed human and a submitted project. No new code, no refactors, no dependencies. Period.
THE MOVES
- Fire 08 P5: it writes DEMO.md — a second-by-second script (TIME | SAY | DO | ON SCREEN) where the problem opens as a human story, the wow lands before 1:00, and the last 15 seconds are the payoff line. Plus honest judge Q&A and the README rewrite.
- Paste the script into Rehearse — its SAY column is already formatted for it. Three full runs against the pace clock, finishing 20% under the slot. The presenter stops coding forever.
- Submission (start 45 min early): URL in incognito + on a phone · repo public, zero secrets · every eligible prize track ticked (sponsor tracks are free lottery tickets) · submit with 15 minutes of buffer — platforms die at T-2min, every time · screenshot the confirmation.
PITFALLS
- The "quick fix" to a bug that isn't on the demo path. It wasn't quick, and now nothing is retested.
- Committing code at T-10min. This is how demos die on stage — free to write is not free to trust.
- Rehearsing zero times because "I know what I built." Knowing and performing are different skills.
DONE WHEN
- 3 clean rehearsal runs logged, under time
- Submitted, confirmed, screenshotted
- Backup video saved locally
ST · Stage + After
Goal: three engineered minutes — then harvest the value whether you win or not.
THE MOVES
- T-60: warm every endpoint · tabs pre-positioned, zoom 125% · notifications off · panic mode tested · hotspot paired · opening and payoff lines cold-memorized.
- On stage: slow the mouse (judges' eyes run 2s behind) · two beats of silence after the wow · never turn your back to the screen · offer the mouse only on the rehearsed path.
- If anything breaks, the Warroom's PANIC tab has your exact line for each failure. The forbidden sentence, forever: "this normally works." One calm sentence, next beat, never retry.
- Q&A: answer the exact question in one sentence, then bridge to strength. Name your limits precisely — declared limits read as competence. AI question? Open LOG.md: "AI wrote the lines; every decision in this trail was ours."
- Within 48 hours: final README pass, the 60s video, the LinkedIn post, the resume line with numbers. Lost? Ten-minute written autopsy: which elimination filter did the winner's idea pass that yours didn't?
DONE WHEN
- Demo delivered with zero on-stage retries
- The harvest is posted
- The lesson is written down
The whole site in one line: decide fast, deploy early, build only what the script shows, freeze hard, rehearse ×3 — and never let a judge see a surprise.