THE PHASES — every hour, mapped

Percentages, not hours, so it works for a 12-hour sprint or a 48-hour marathon. Each station: the goal, the exact moves, the prompt to fire from the Forge, the pitfalls that eat teams, and a done-checklist. Set your real deadlines in the Warroom — it converts these percentages to wall-clock times.

NIGHT BEFORE · 90 MIN WARROOM → CHECKLISTS

S0 · Pre-flight

Goal: zero surprises at hour 0. Every account proven, every cable packed, the battlefield scouted.

THE MOVES

  1. 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.
  2. Copy the starter template somewhere ready — at hour 0 you rename it, not build it.
  3. Key vault: one local file (never committed) with every API key you might need. Issue them now.
  4. Hotspot drill: tether laptop to phone once. The venue wifi swap must be muscle memory.
  5. 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).
  6. Read the submission form now. Video required? That's a freeze-window task to budget.
  7. 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

  1. 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.
  2. 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.
  3. Survivors get scored against the actual judging criteria. One pick. No fallbacks.
  4. 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.
  5. 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

  1. 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.
  2. 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.
  3. Deploy immediately — before any feature code. Acceptance: the URL loads on a phone.
  4. 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.
  • DONE WHEN

    • Public URL on your phone
    • Seed data looks like a product screenshot
    • STATE.md / AUDIT.md / LOG.md committed

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

  1. 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.
  2. 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.
  3. 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.
  4. 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:.
  5. 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
ANY MOMENT · 2 MINUTES FORGE → 09 BATON + 10 RESUME

RL · The Relay — swap drivers without losing the race

Goal: teammate takes over — different machine, different AI session — and loses zero context.

THE MOVES

  1. 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.
  2. 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."
  3. 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.
  4. 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
70% → ~80% FORGE → 06 P3

P3 · Harden — demo armor, not enterprise armor

Goal: the demo path cannot visibly break. Not "production-ready" — stage-ready.

THE MOVES

  1. Walk the exact demo click-path against the live URL. Fix only what's visible, smallest diffs.
  2. 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.
  3. Dead-control sweep: every visible button works or is removed — a disabled button still invites a judge's click.
  4. Cold start: warm-up ping on page load; first screen renders from seed so nothing waits on the network.
  5. Resolutions: 1366×768, 1280×720 (projector), one phone width. Console: zero red on the path.
  6. 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

  1. 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).
  2. Apply mechanically-safe fixes only (renames, deletions, copy), one commit per category, verifying the live demo path after each.
  3. 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

  1. 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.
  2. 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.
  3. 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

  1. T-60: warm every endpoint · tabs pre-positioned, zoom 125% · notifications off · panic mode tested · hotspot paired · opening and payoff lines cold-memorized.
  2. 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.
  3. 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.
  4. 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."
  5. 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.