From 5d8264f13f3c2762003d2bb35c249ff357f5cd00 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Fri, 17 Jul 2026 02:03:47 +1000 Subject: [PATCH] Add Sprint 4 plan and lane prompts: face and water Co-Authored-By: Claude Fable 5 --- LANE_PROMPTS.md | 59 +++++++++++++++++++++++ SPRINT4.md | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 SPRINT4.md diff --git a/LANE_PROMPTS.md b/LANE_PROMPTS.md index 5308eb4..b7f1c06 100644 --- a/LANE_PROMPTS.md +++ b/LANE_PROMPTS.md @@ -215,3 +215,62 @@ SPRINT3.md in full; decisions 7/8/9 are made. > §Lane E. Small juice pass: tear-decal hookup recipe for B (like your weave > recipe), broken-gnome + snapped-fence-panel variants for the aftermath > screen, and refresh the assembled-yard contact sheet once A's dressing lands. + +--- +--- + +# SPRINT 4 prompts (face & water — fire all five) + +Same rules: own clone, own branch, rebase onto latest main FIRST (Sprint 3 +merged; yard has 11 anchors incl. branch anchors; gate 3 was met by hand). +Read THREADS' last [I] entry (the dispute ruling) then SPRINT4.md — decisions +10/11/12 are made. + +## Lane A — Sprint 4 +> You are Lane A on SHADES 3D, Sprint 4. Rebase onto main, read SPRINT4.md +> §Lane A — you are the critical path and it's all UI: hud.js (kN corner bars, +> telegraph, garden HP via rainShadowOver with C's helper, plant damage swaps), +> mouse-driven prep via B's picking adapter + their force-arrow preview offer, +> the forecast card (three storms exist — picking one is the difficulty +> select), the aftermath screen with E's wreckage swaps (broken gnome, snapped +> fence), and retitle the page. Small commits, selftest green, merge shepherd +> as always. Gate 1 is A-1+A-2: playable with eyes and mouse, no console. + +## Lane B — Sprint 4 +> You are Lane B on SHADES 3D, Sprint 4. Rebase onto main, read THREADS' last +> [I] ruling and SPRINT4.md §Lane B. Decision 11 first, one afternoon: re-point +> §7's twisted rig to a real 18-45 m² quad from A's dressed yard, re-run the +> three §7 legs + the 8-heading 60% sweep at 0.45 and 0.40 on REAL anchors, +> post the numbers, then either bump storm_02 downdraftOfTotal to the passing +> value or retire the bar — no third sprint on this. Then ponding v1 per +> decision 10 (the 40× rain fiat is made): accumulation × flatness → node +> water mass → weight; pondMass() for the HUD; dump on corner break; asserts +> that a hypar pools nothing and a flat rig dies of water in storm_02. Then +> evaluate a per-face force clamp for D's tn-1.04 stability cliff. + +## Lane C — Sprint 4 +> You are Lane C on SHADES 3D, Sprint 4. Rebase onto main, read SPRINT4.md +> §Lane C. Partner B on decision 11 (match the landed storm value, resolve your +> held-value comment in storm_02 with satisfaction). Make the three storms' +> rainAt curves tell the ponding story (storm_02 can kill a flat rig by water, +> storm_01 can't). Support A's HUD (the rainShadowOver drain helper you +> offered, telegraph feed). Optional night pass: darken wildnight properly, +> lightning on the biggest gusts. + +## Lane D — Sprint 4 +> You are Lane D on SHADES 3D, Sprint 4. Rebase onto main, read SPRINT4.md +> §Lane D — decision 12 green-lights your ladder spec exactly as you wrote it: +> carry-ladder as a second carry type with hands-full rules, placement with a +> valid-surface test + fascia-anchor snap, code-driven climb height with +> ClimbLadder on top, work stance at height where hold-E fascia repairs land +> in shoving wind. Selftest the state legs + a scripted climb-repair-descend. +> When A's prep UI lands, playtest the whole loop like a player and log feel +> notes in THREADS — you're the only lane that does. + +## Lane E — Sprint 4 +> You are Lane E on SHADES 3D, Sprint 4. Rebase onto main, read SPRINT4.md +> §Lane E. Small water-and-wreckage pass: pond water disc/decal that rides the +> sim nodes (your tear recipe pattern) scalable by pond mass, broom_01.glb +> (the prop waits for the mechanic), fence_panel_snapped if not shipped, and +> refresh the assembled-yard contact sheet for DESIGN.md — the yard finally +> looks like the game. diff --git a/SPRINT4.md b/SPRINT4.md new file mode 100644 index 0000000..6fe0231 --- /dev/null +++ b/SPRINT4.md @@ -0,0 +1,121 @@ +# SPRINT 4 — FACE & WATER (instructions for Opus 4.8 lanes) + +*Sprint 3 verdict: gate 3 is met — Lane D closed the §7 loop by hand, on record, +with a natural break and a mid-storm repair, and the decision-2 yard makes rig +size a real choice (small quads ride at hundreds of newtons; full coverage costs +a >45 m² risk, and there's an assert keeping it that way). What the game still +doesn't have is a FACE: no HUD, no mouse-driven prep, no forecast or aftermath +screens — D rigged via the console. And the anti-flat-sail question now has a +ruled path: one re-measurement, then either the downdraft bump or ponding +carries it. Sprint 4 gives the game its face and its water.* + +Read THREADS.md from the last [I] entry — it contains the dispute ruling and +decision 10. New decisions: + +10. **Ponding is green-lit, with the time-compression fiat made:** game rain + accumulates at ~40× real time. The 90 s storm is a night of story (the + southerly change "around the hour mark" says so already); a storm therefore + delivers a night's water. Lane B owns cloth-side water mass, Lane C owns + rain intensity data. B's own numbers: 5 cm on a flat 25 m² sail = 3.1 kN/ + corner, and a hypar can't pool — it cannot pincer §7. +11. **The 60% bar gets ONE re-measurement on real anchors, then we commit.** + B re-points §7 to an 18–45 m² quad from the dressed yard, sweeps at ≤0.45 + fraction-of-total. Pass → bump storm_02 `downdraftOfTotal` 0.12→0.45, both + physics gates close. Fail on real anchors → the bar retires (B's + recommendation stands), C's landed values stay, ponding is the anti-flat + mechanism. Either outcome is a win; no third sprint on this. +12. **Ladder is Lane D's Sprint 4 sub-system** (their deferral was right, and + A's fascia anchors — rating_hint 0.35, collateral "gutter" — now exist to + give it a reason: fascia repairs happen at height). + +## Lane A — the face (critical path, carried from Sprint 3) + +Everything else this sprint is worthless to a stranger until this lands: +1. **hud.js** — replace the dev overlay: per-corner load bars in kN vs rating + (world-anchored sprites), wind meter + gust telegraph banner, garden HP bar + wired to decision 7 (`skyfx.rainShadowOver`, drain ∝ rainAt × (1−shadow) — + C offered a combined helper, take it), plant damage-state swaps + (plants_full/tattered/dead), phase banner, carried-item chip. +2. **Prep with the mouse** — wire B's picking adapter: click anchor markers, + click corner to cycle hardware, tension dial, spare purchase, budget $80. + Take B's preview-rig offer for live force arrows (DESIGN.md's teaching tool). +3. **Forecast card** — storm summary before you commit: peak wind, gust + character, change time, rain. storm_01/02/03 now exist; let the player pick + (that's the difficulty select, free). +4. **Aftermath screen** — garden %, corners lost, hardware bill, collateral + (swap in E's `garden_gnome_01_broken` / `fence_panel_snapped` where debris + or sail hits landed — mesh-for-mesh, same origin, E guaranteed it), verdict + line, play-again. +5. Retitle the page (still says M0). Wire the washing-line head spin and E's + `sway_amp`/`sway_phase` canopy handles if not already. + +## Lane B — water & the last measurement + +1. **Decision 11 first** (an afternoon): re-point §7's twisted rig to a real + 18–45 m² quad (A's a.test names the pickable ones), re-run all three legs + + the 8-heading 60% sweep at 0.45 and 0.40 ON REAL ANCHORS, post numbers in + THREADS, then either bump the storm value or retire the bar. Done forever. +2. **Ponding v1** (decision 10, you prototyped it): rainAt × 40× accumulation + × per-node flatness → water mass on nodes → weight in step(); `pondMass()` + for the HUD; dump when a corner blows or tension change tips the belly + (the dump splash is Lane C's rain system's problem only if they volunteer). + Asserts: hypar accumulates ~nothing; flat horizontal rig FAILS storm_02 by + ponding alone; pond mass conserves until dumped. +3. **Stability cliff** (D's finding): evaluate a per-face force clamp so tn + 1.04 degrades instead of exploding 1.2→10 kN in one step. If the clamp + changes §7 numbers, say so in THREADS before landing it. + +## Lane C — rain data & support + +1. Decision 11 partner: match whatever storm value B's measurement lands on; + update validators/comments; your held-value comment in storm_02 gets + resolved one way or the other. Delete it with satisfaction. +2. Ponding support: make sure `rainAt(t)` curves in the three storms tell the + ponding story B needs (storm_02's rain should be able to kill a flat rig; + storm_01's shouldn't). A `rain` intensity pass over storm_03 too. +3. Support A on the HUD wiring (rainShadowOver helper, telegraph feed). +4. Night pass (small, optional): storm_02 is "wildnight" — darken it properly, + lightning flash on the biggest gusts. The forecast card sells it. + +## Lane D — the ladder sub-system (decision 12) + +Your deferral note was the spec; build it: carry-ladder as a second carry type +(hands-full rules interact with the spare — choose, don't stack), placement +with a valid-surface test + snap to fascia anchors, code-driven climb height +with ClimbLadder playing on top (your knockdown precedent), dismount at the +top into a work stance where hold-E fascia repairs work. Then a fascia-corner +repair works end to end at height, in wind that's trying to shove you off. +Selftest: state-machine legs + a scripted climb-repair-descend run. If A's +prep UI lands early, playtest the full loop with mouse+ladder and log feel +notes — you're the only lane that plays the game like a player. + +## Lane E — water & wreckage juice (small) + +1. Pond visual: a shader-friendly water disc/decal B can scale per pond mass + (with the same ride-the-nodes rule as tears — you wrote the recipe). +2. `broom_01.glb` (the poke-the-pond tool — DESIGN.md's funniest mechanic + arrives next sprint; the prop should be waiting). Reuse Crank/Dig for the + poke anim, no new Mixamo needed. +3. `fence_panel_snapped_v1.glb` if not already shipped (aftermath screen). +4. Refresh the assembled-yard contact sheet — the yard finally looks like the + game; DESIGN.md deserves the new picture. + +## Gates + +``` +gate 1: A-1+A-2 → the game is playable with eyes and mouse, no console +gate 2: decision 11 measurement posted → downdraft question CLOSED forever +gate 3: ponding kills a flat rig in storm_02 (assert + by hand); + full loop playable: forecast pick → mouse prep → storm (repair at + height if fascia) → aftermath with wreckage → play again +``` + +Definition of done = gate 3. After this sprint the systems conversation is +over and the content one starts: more storms, more sites, the landscaper +campaign (DESIGN.md has been waiting). + +## For John + +- Nothing blocks on you. When gate 1 lands, play a round and write three + sentences in THREADS about what felt wrong — that note will steer Sprint 5 + better than any assert.