Sprint 17 integration [I] entry: the board live, seven nights, convergence recorded

This commit is contained in:
type-two 2026-07-21 06:32:13 +10:00
parent 9498dfc1b9
commit a012225259

View File

@ -9394,3 +9394,58 @@ anchors are your GLB), but the tooling is now waiting, not TODO.
for the same night — a fiction question, not a bug. Night 2 happens to offer the same
southerly over two yards and reads noticeably more coherent for it. Yours to rule if it
ever matters; the band tells the truth either way.
[I] 2026-07-21 — **SPRINT 17 INTEGRATION (main) — THE BOARD IS LIVE, SEVEN NIGHTS, arc 2 open.**
Selftest **522/0/0**, the exact sum (D's 515-integration + lane/b's 3 corroded cross-lane pins,
green now that lane/e is present + lane/c's 4 offerBand/pairing pins). Verified in the browser
and deployed to partly.party/hardyards. This integration was UNUSUAL and worth recording:
**Two full sets of lane sessions ran — mine (a workflow, on Opus after the Fable limit killed
the first wave) and a parallel set on John's other Mac.** Every lane hit the collision and
CONVERGED rather than clobbered: B reset to the landed 0.2/0.3/2 and added only gate 3; C reset
onto the other session's better forecast design and added only the offer band + pairing law; D
dropped their whole pool-yard cut and adopted the other session's (which ships ONE corroded post,
dodging the two-rust-post exposure-harness split their own cut walked into). E resumed the
Fable-killed session's uncommitted tree, found it was mid-negative-control (both GLBs were the
UNTELLED post, two asserts defective — one that couldn't fail, one whose stated reason was
backwards), and rebuilt it honestly. The convergence protocol C invented in S14 held across four
lanes and two machines. lane/d's own "pt-1 integration" commit did the heavy merge; I layered
lane/b and lane/c's newest commits on top.
**The one integrator hunk, applied verbatim (C filed it; hud/main are A's files):** C measured
that A's board LIED ABOUT NIGHT 7 — the soaker's offer read SOFTER than the buster's on the two
printed lines (55 vs 76 km/h gusts) while carrying 6× the hail (14.9 s vs 2.4) and 2.7× the rain.
The board was recommending its own trap in the storm's own voice. `offerBand(def, lead)` returns
the ORDERED list (wind · hail · rain · change · confidence) so the card can never drop a fact by
picking two fields. Applied the main.js `band:` line + the hud.js card map + two CSS rules (the
hail line lit brighter — the one a player must not skim). VERIFIED LIVE: night 7's two cards now
read the soaker as pays-less/risks-less/worse-night, the game arguing instead of flattering. The
fix is the same species as A's own `stormsToPreload(nights, pool)` split — an omission that is
possible eventually happens.
**What shipped, gate by gate:** the JOB BOARD (A) — two offers a morning, seeded deterministically
off week+night, the chosen job carrying a WHOLE night entry so sheet/quote/invoice/ledger/warranty/
rep read it through the seven surfaces they already had, ZERO changed lines; CONSTRAINTS (A data +
B enforcement) — house-ban refused at pick time in the client's own words, budget cap thrown at
commit, SCORE IT drops banned candidates and prices at the client's ceiling; the CORRODED TIER (E)
— 0.55 on the ladder because it is the only rung whose true capacity is unknowable by inspection,
$45, the tell verified to read at 20 m by the game's own renderer; the POOL YARD (D) — authored
cold, the legal tie-offs and the trustworthy tie-offs deliberately DIFFERENT SETS, in the game only
by being chosen off the board (the Karalis place, live on night 1's board with the corroded post
billed in its risk column).
**Rulings (A):** hail-light balance is CANON (the mild-night market buys the steel and the
collateral, not the bed — the refused separation pins already say so); constraint premiums +25%
(anchor ban) / +20% (budget cap), both flagged UNMEASURED and cut-first; the rain drain-weight
lever DECLINED at its proper price (its own gate, full re-measure).
**Carried to SPRINT18 (its callout types are John's gate-4 pick):** A's `stormsToPreload` preload
assert can't currently fail (every pool storm also lives in NIGHTS — the calm-day coincidence
again; split it so a pool-only storm can bite); C's `stoneWord` has no floor (size 0 words itself
"fine pea stones"); D's two-corroded-post exposure-harness split ($115 per-structure vs $45 per-key)
is the receipt for arc-2's multi-hazard yards; B's optional heal-control strengthening (spy the
call, not the event).
**Gate 4 stands and it now steers the next sprint: John plays the seven — partly.party/hardyards,
a board offering choices, a constrained client or two — and picks Sprint 18's callout type:
emergency mid-storm arrival, the cowboy audit, or warranty-as-a-full-night.**