Log the on-record §7 hand-run, the failure-envelope finding, and the ladder deferral

The §7 loop is closed by hand on the merged game: pick up a spare at the shed,
carry it across the storm, the carabiner weak-link blows on its own, chase the
flogging corner (prompt tracks it live), hold-E re-rig → 4/4, ride out → survives
with full coverage. Definition of done met with a real storm break, not induced.

Also logged for B+C: the sail's failure envelope is a cliff — 4/4 up to tn 1.03
(~1.2kN peaks), instant ~10kN double-cascade at tn 1.04. Good rigs survive, flat
rigs cascade; the thesis holds and the decision-8 downdraft semantic won't move
the cliff (it's a cloth-stability ceiling). Ladder stretch goal deferred to
Sprint 4 with reasoning — it's a second carry type + placement + code-driven
climb height, bigger than what's left of this sprint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-17 01:43:49 +10:00
parent 5d1d0895f2
commit 135b3dcda5

View File

@ -866,3 +866,51 @@ Format: `[lane letter] YYYY-MM-DD — note`
Selftest on merged main: **169 pass / 0 fail**. Hand-driven check via SHADES.step: storm_02 with the
default rig loses p1 (carabiner) + p2 by t=40 with downdraft live — cascade is earlier and meaner
than A's pre-downdraft run, as C's numbers predicted. Screenshot of the merged storm going to DESIGN.md.
[D] 2026-07-17 — ✅ **GATE 3 §7 LOOP CLOSED BY HAND, ON RECORD — 4/4 survival, real storm-induced break.**
Drove the merged game through `SHADES.step` (no rAF), real key input, real hold-E. Full trace:
prep: rig 3×rated + 1×carabiner@p1, tn 1.0, settle → `oooo`
t=3.9 walk to shed table (9,6) → hold E → **carrying=spare** (PickUp→CarryIdle)
t≈3.4 storm: carry the spare across the yard (clip **Carry**) toward p1
**p1's carabiner blows on its own** under storm load → `oooX`, sail flogs loose over the garden
prompt **`rerig_3` tracks the FLOGGING corner** as it swings (live cornerPos — the feature working)
hold E 2.5 s at the loose corner (clip **Crank**, state busy) → `oooo`, **spare consumed**,
**p1 re-rigged carabiner→shackle (an UPGRADE**, exactly B's documented behaviour)
ride out to t=90 → **ends 4/4, coverage 1.0, no further breaks** → aftermath, garden intact.
4 screenshots (shed pickup · flogging sail + player w/ spare · re-tensioned sail · calm aftermath)
in this session's transcript. **This is the §7 thesis working: mixed rig with a weak link → the
weak link fails → one repair upgrades it → the now-uniform rig survives.** Definition of done met,
and the break was the storm's, not induced.
[D] 2026-07-17 — 🔧 **RETUNED player thresholds against the REAL storm_02 (my pre-merge tune was against
a mock).** Committed ahead of the run. In the actual storm, gusts-over-baseline peak at **12.1 m/s**,
so my old `stumbleGust:17` was above every gust in the game — **StumbleBack was unreachable dead
code**. And `shoveGustMin:8` (a low bar in the prototype's 1238 units) had become a high bar in
ours. Fixed: stumbleGust 17→9, shoveGustMin 8→4. A wild night now reads shoved (26 s of 90) →
stumbling (4) → floored (2); a calm day stays 0/0. **d.test.js now loads the real storm JSON
(`weather.loadStorm`) and asserts every threshold is REACHABLE and correctly ordered** — decision 8
reweights the downdraft this sprint, and this guard fails loudly if that silently kills a mechanic
again. 40 Lane D asserts, 0 fail.
[D] 2026-07-17 — 📊 **FOR B+C (decision 8) — measured the sail's failure envelope, and it's a CLIFF not a
slope.** Driving `rig.step` against the real wild wind, 3×rated+1×carabiner, settled, per-corner peak
loads:
tn ≤ 1.03 → **4/4 survives**, peaks ~8751240 N (carabiner rides just under its 1200 N rating)
tn 1.04 → **instant double cascade**: h1 and p2 spike to **~10,300 N at t=1.1** and blow → 1/4
A 0.01 tension step takes peak load from ~1.2 kN to ~10 kN — that's the cloth going **unstable**, not
gradual overload. Consequence for §7: in a HIGH-tension rig the cascade is faster than any hold-E
(neighbours gone <1 s after the first break), so a naturally-broken corner there is **not**
hand-repairable. BUT a survivable mixed rig (my run) IS — the weak link blows while the rated corners
keep margin and don't cascade, so the repair lands. **Net: good rigs survive, flat/drum-tight rigs
cascade — the thesis holds.** The decision-8 downdraft-semantic (fraction of total vs gust) is really
about loading a FLAT roof *steadily*; it won't fix the cliff, which is a cloth-stability ceiling near
tn 1.04. Worth a stability clamp on peak per-face force if you want a gentler failure curve.
[D] 2026-07-17 — 🪜 **LADDER STRETCH GOAL — DEFERRED, flagging early as asked.** It's bigger than what's
left of this sprint: carry-ladder is a *second* carry type (can't also carry a spare — hands-full),
placement needs a valid-surface test + a snap to fascia anchors, and ClimbLadder needs vertical
root motion the rig's rotation-only clips don't provide (same class of problem as the knockdown —
I'd drive the climb height in code and play the clip on top). That's a whole interaction sub-system,
not a polish item, and the §7 loop (the actual gate) is closed without it. Recommend it as a
Sprint-4 item once A's anchor rework (decision 2) lands the fascia anchors it targets. The clip is
baked and waiting (`ClimbLadder` is in the pack), so it's not blocked on assets.