81 lines
4.6 KiB
Markdown
81 lines
4.6 KiB
Markdown
# SPRINT 6 — WINNABLE, THEN A WEEK OF NIGHTS (instructions for Opus 4.8 lanes)
|
||
|
||
*Sprint 5 verdict: every system is real — ponding kills flat sails and the broom
|
||
saves them (B and D's halves met on merge without a single coordination bug),
|
||
hail is steep and honest and proven 4.4× rig-responsive, the router tripwire
|
||
caught its first real omission. But the integrator measured the merged game and
|
||
the wild night has NO winnable line: survivable rigs don't cover the bed,
|
||
bed-covering rigs don't survive, and the $80 shop can't buy both. The systems
|
||
sprint is over. Sprint 6 makes the game FAIR, then makes it a CAMPAIGN.*
|
||
|
||
Read THREADS from the last [I] entry — the balance numbers are there.
|
||
|
||
## Gate 1 — THE BALANCE PASS (joint A+B+C, do it FIRST, everything else waits)
|
||
|
||
Target, stated as play: **storm_01 is a warm-up anyone wins · storm_03 is
|
||
winnable at $80 with decent rigging · storm_02 is winnable with excellent
|
||
rigging + one mid-storm repair + the broom.** Written as asserts (a new
|
||
`js/tests/balance.test.js`, owned jointly, B holds the pen): for each storm,
|
||
at least one enumerable $80 shop loadout on an in-band quad ends with
|
||
hp ≥ 50 and < 2 corners lost, driven through the REAL shop economy — and for
|
||
storm_02 that loadout must genuinely need the repair or the broom (assert it
|
||
fails without them).
|
||
Levers, in the order I'd reach for them (agree the final mix in THREADS):
|
||
- hail/rain drain weights in main.js (integration guesses: 5.0 / 0.25);
|
||
- bed-coverage geometry: A may add ONE close anchor (e.g. a low hook on the
|
||
shed roof) so a small bed-covering quad exists — re-run A's own
|
||
smallest-full-coverage assert after, the >45 m² tension must survive;
|
||
- downdraftOfTotal 0.45 → C measured 0.40 also passes both physics gates;
|
||
- win bar (hp ≥ 50) and hardware prices last — they move everything.
|
||
Also: **verdict truthfulness** (A) — a 4/4 no-break run must never read "the
|
||
rain found what you skimped on". Verdict picks from actual failure modes:
|
||
corners lost / garden hailed / ponded and dumped / clean hold.
|
||
|
||
## Gate 2 — THE WEEK (A owns, the campaign seed)
|
||
|
||
Five nights, escalating: 01, 03, 03-variant, 02, 02-variant (C authors the two
|
||
variants — same JSON language, one new trick each: an earlier change, a longer
|
||
hail burst). Money persists: aftermath pay = base per storm severity + garden
|
||
bonus + intact-hardware refund − collateral; bank carries to the next night's
|
||
shop. Broke before night five = game over (verdict card); survive the week =
|
||
the win screen SHADES has never had. Keep it one file if you can — it's a
|
||
phase-machine wrapper, not a new system. "Play again" becomes "next night".
|
||
|
||
## Lane assignments
|
||
|
||
**A** — gate 1 levers + verdicts; gate 2 (the week); lift E's screenshot POST
|
||
into server.py (delete tools/yardshot/); take E's grass recipe or delete the
|
||
atlas (your call, stop carrying it); pond ticker + hail banner if they didn't
|
||
land in Sprint 5's HUD.
|
||
**B** — balance.test.js pen-holder; fabric choice in prep (porosity exists in
|
||
the sim — expose shade cloth vs waterproof membrane as a per-sail choice with
|
||
DESIGN.md's tradeoff: porous sheds wind but lets hail through harder? No —
|
||
keep it honest: porous halves wind load AND ponds nothing, membrane blocks
|
||
hail fully; price the difference. Coordinate the hail-porosity question with
|
||
C before coding); tell D the typical storm_02 belly-pond mass so the douse
|
||
comedy lands.
|
||
**C** — gate 1 partner (downdraft/hail data); the two storm variants for the
|
||
week; forecast UNCERTAINTY (DESIGN.md canon: early forecasts are partial —
|
||
card shows ranges that resolve as the night approaches; cheap: render bands
|
||
from a seeded ± on the real numbers).
|
||
**D** — douse calibration to B's real masses (splash/stagger/knockdown
|
||
thresholds vs ~450 kg belly ponds); feel pass on the balanced storms
|
||
(you're the player); surface anything gate 1 got wrong before it ships.
|
||
**E** — night-variant dressing (moon, house window light for the night
|
||
storms); win-screen and game-over art cards (text-on-canvas is fine, make
|
||
them feel like SHADES); refresh contact sheets after the balance pass.
|
||
|
||
## Gates
|
||
|
||
```
|
||
gate 1: balance.test.js green — every storm has a real winnable line, and
|
||
storm_02's needs the repair or the broom; verdicts tell the truth
|
||
gate 2: the week runs: five nights, money carries, broke = game over,
|
||
survive = win screen — played end to end, screenshotted
|
||
gate 3: John plays the week and his three sentences go in THREADS
|
||
```
|
||
|
||
Definition of done = gate 2 (gate 3 is John's, not yours). After this SHADES
|
||
is a GAME — Sprint 7 starts DESIGN.md's real campaign: sites, clients,
|
||
job types, the landscaper service.
|