Merge Sprint 9: clean $80 win asserted; guard redesigned; pyrrhic wired
Selftest on merged main: 287 pass / 0 fail. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
d3258baaa8
commit
855106d37e
14
THREADS.md
14
THREADS.md
@ -2933,3 +2933,17 @@ Selftest: **277 passed, 0 failed, 0 skipped**, LANE BAL now visible.
|
||||
[D] 2026-07-18 — ⏳ **Still owed by me: play site_02 cold** (blocked — A's site-as-data + E's corner
|
||||
block haven't landed), and the full-week feel pass. Both are queued and neither blocks anyone. My
|
||||
douse guard is still green, so pond masses haven't moved.
|
||||
|
||||
[I] 2026-07-19 — **SPRINT 9 INTEGRATION (main).** All lanes merged; selftest **287/0/0**. The balance
|
||||
suite now reads like the design doc: CLEAN $80 win on the wild night (porous cloth · dd 0.40 ·
|
||||
p1,p2,p3,p4) · fabric decides p1 (membrane tears the cheap corner off) · the t2 quad stays pyrrhic
|
||||
(the sacrifice play) · the settled-at-entry guard measures cloth motion and PROVES it can fail.
|
||||
Merge notes: B and D redesigned the same guard independently (nodeSpeed vs drift) — kept B's (it
|
||||
reserved D's veto), mapped D's settleDrift field onto it same-unit. Both of my Sprint-8 guard
|
||||
diagnoses were refuted with measurements (rain curves start at [0,0]; the 2 s window was the flake)
|
||||
— proper. The pyrrhic ruling is wired with its own verdict mode and E's third card.
|
||||
**Still open, carried to SPRINT10:** A's site extraction (data/sites/*.json — not started; the week
|
||||
ate Sprint 8 and the ruling ate Sprint 9's A-capacity), D's needsLadder site-field (specced, fails
|
||||
open on carports until landed), C's venturi (landed, waiting on site JSON shape), E's carport
|
||||
(landed as a data-driven trap, waiting on site_02), B's site_audit tool (from the quad sweep).
|
||||
Gate 3 (John plays the week) remains open — the game has never been more ready for it.
|
||||
|
||||
@ -323,8 +323,9 @@ async function fly(yard, session, stormName, { repair = false, broom = false, se
|
||||
lost: rig.corners.filter((c) => c.broken).length,
|
||||
spent: START_BUDGET - session.budget,
|
||||
pond: Math.round(pond),
|
||||
/** mm/s the cloth was still drifting when the storm started — the settled-at-entry guard. */
|
||||
settleDrift: settleDriftMmPerSec,
|
||||
/** mm/s the cloth was still moving when the storm started — the settled-at-entry guard.
|
||||
* (Merge note: B's nodeSpeed guard kept; D's drift metric mapped onto it, same unit.) */
|
||||
settleDrift: entrySpeed * 1000,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user