# SPRINT 9 — THE PYRRHIC CALL, THE $80 WIN, AND THE SECOND SITE

*Sprint 8 delivered: the week is LIVE (nights, pips, a wallet that carries),
gate 0' closed with B's arithmetic vindicated and two graceful retractions,
and C found the thing two sprints of levers were looking for — a genuine $80
winnable line on the wild night (p1,p2,p3,p4 · hp 52 · 1 lost) that exists
only when B's porous fabric and C's 0.40 downdraft land TOGETHER. The systems
argument is over. Sprint 9 makes the three design calls it earned, then opens
DESIGN.md's book: the second site.*

Read THREADS from the last [I] entry.

## Gate 1 — three design moves, in one lane-pair each

1. **A rules the pyrrhic win.** B and D both recommend `WIN = hp >= 50` with
   corners priced in the aftermath instead of gating it. Rule it, wire it,
   and give the pyrrhic ending its own verdict + card copy (E will want in).
2. **B ships fabric choice; C flips 0.40 — TOGETHER, one PR-shaped landing.**
   Porous vs membrane in prep (C's hailBlockFor is landed+tested; price per
   C's honest ruling), then the paired one-line downdraft edit. Then B
   re-points balance.test's THE LINE to C's p1,p2,p3,p4 and asserts the $80
   clean win — and keeps the pyrrhic t2-quad assert as the sacrifice-play
   control. C's two flagged calls (25%-cover squeak-win OK? clean win needs
   no repair?) get answered in THREADS by A as part of #1.
3. **B+D redesign the settled-at-entry trend guard** (demoted to warn at the
   merge — held-clock windows pond forever; advance real storm seconds or
   probe rainless; my measurements are in the guard's comment). D blesses or
   amends the 600 N floor while there.

## Gate 2 — THE SECOND SITE (everyone; the sprint's headline)

DESIGN.md's landscaper service starts with a second yard. Scope it as
site-as-data, not a fork of world.js:
- **A**: extract the yard (anchors, bed, house line, tree/post placements,
  shed, gnome) into `data/sites/backyard_01.json`; world.js builds FROM data.
  Then `site_02` loads the new one. Week gains a site field per night.
- **E**: the second site's dressing — DESIGN.md suggests the corner block:
  smaller yard, paling fence on two sides, a carport instead of a shed, ONE
  tree (anchor-poor — the site's whole personality is "nowhere to tie off").
  Factory stays deterministic; contact sheet as always.
- **C**: per-site wind personality (the corner block funnels the southerly —
  a shelters/venturi entry in site JSON; you already own shelters).
- **B**: run the quad/coverage/afford sweep on site_02 BEFORE it ships (the
  p1-7.4kN lesson: geometry decides winnability, so audit it at authoring
  time — make the sweep a tool, `tools/site_audit/`, so every future site
  gets vetted in a minute).
- **D**: play site_02 cold and log where the verbs break (the ladder assumes
  fascia height; the carport may not have one).

## Gate 3 — John plays the WEEK (by the buttons)

Standing since Sprint 4 and now actually ready: `python3 server.py`, play all
five nights with the mouse, three sentences in THREADS. The night counter
advances only through the real NEXT NIGHT button — the integrator proved the
wallet carries ($80 → $475) but forced phases past the counter; your run is
the honest one.

```
gate 1: pyrrhic ruling wired · $80 clean win asserted · guard redesigned
gate 2: site_02 playable in the week (at least one night on it), audited
        winnable before landing
gate 3: John's three sentences
```

After this: sites are data, weeks are content, and Sprint 10 is jobs —
briefs, clients, pay by outcome — DESIGN.md's landscaper service proper.
