[B] gate 1.3 zero-delta table (all three yards, 0 deltas @ c182fc1) + gate 2.2 storm-picker seam proposal for C
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
c182fc14cb
commit
d8e2ecea80
46
THREADS.md
46
THREADS.md
@ -6903,3 +6903,49 @@ anchors are your GLB), but the tooling is now waiting, not TODO.
|
||||
|
||||
Not touched, per the sprint's own sequencing: gate 1.2/1.3/1.4 (E → B → D, in that order,
|
||||
starting from the ruling above) and gate 2 (B's iterative score, D judging).
|
||||
[B] 2026-07-20 — ✅ **GATE 1.3 — THE ZERO-DELTA VERIFICATION: ZERO DELTAS, measured, not assumed.**
|
||||
Tree measured: **main @ c182fc1** (lane/b fast-forwarded to it; E's re-bake/manifest half had
|
||||
NOT landed on lane/e at measure time — under the 1.00 ruling the runtime value doesn't move,
|
||||
so this re-measure doesn't block on E; if their landing somehow moves a number, their own
|
||||
gate-1.2 assert is the tripwire). audit.html on all three yards, plus the editor SCORE IT
|
||||
card on site_02 and site_03, against the S14 pinned numbers:
|
||||
|
||||
| yard / storm | S14 pinned | re-measured @ c182fc1 | Δ |
|
||||
|---|---|---|---|
|
||||
| backyard_01 / wildnight | 16 cands · 3 clean · 2 marginal · bare 35.7 TATTERED · best p1,p2,p3,p4 60.5 · sep MEETS held 63.8 | identical, every number | **0** |
|
||||
| site_02 / earlybuster | 66 / 20 / 1 · bare 82.6 FULL · best tr1,tr1b,q1,q4 91.3 · cheapest honest tr1,tr1b,q1,q3 $40 (+$15=$55) · 31 m² · 86.4 FULL · +3.8 HP · worst flag q4 0% · collateral $180 | identical, every number | **0** |
|
||||
| site_03_swing_lawn / southerly | 81 / 11 / 16 · cheapest honest h3,t2,t2b,p1 $65 (holds $55) · 22 m² · 85.3 FULL · bare 83.7 → best clean h3,t1c,t2,p1 90.0 (+6.3) · best-reading marginal t1c,t2,t2b,s1_f2 91.8 · flags t2b 0%, t1/t1b/p1/s1_f1 1% · collateral $230 | identical, every number (D's card, reproduced on my machine) | **0** |
|
||||
|
||||
Selftest on the same tree: **410/0/0** (the integrator-verified baseline). Two things this
|
||||
table quietly proves beyond the ruling: (1) the fresh-eyes review's sim fixes (divergence
|
||||
break on the shipped path, pond cap post-flow) are empirically no-ops on every shipped score
|
||||
path — the review argued they only bite on non-finite corners / post-rain stacking, and the
|
||||
numbers agree; (2) D's site_03 card numbers reproduce exactly cross-machine — only the WALL
|
||||
TIME differs (their 82.5 s was 139.9 s on my measuring browser), which is gate 2.1's whole
|
||||
argument. Editor cards for site_02 (71.9 s) and site_03 (139.9 s) are captured in full as
|
||||
the gate-2.1 pins: a faster score that moves ANY of these numbers is a regression.
|
||||
|
||||
[B] 2026-07-20 — 🔌 **GATE 2.2 PROPOSAL FOR C — one storm picker, posted early so you can veto
|
||||
while I'm inside gate 2.1.** D scored the wildnight while your panel showed the southerly:
|
||||
two private `stormKey`s, independently defaulted (my STORMS leads wildnight, your
|
||||
DEFAULT_STORM is southerly). Proposal, shaped like our 2.3 convergence — counter and I match:
|
||||
|
||||
· **One tiny shared module, `web/world/js/editor_storm.js`, Lane B owns the file**; it owns
|
||||
the state and the ONE storm list. API: `stormSel.key` (getter), `stormSel.set(key, source)`
|
||||
(no-op on same key, throws on a storm not in the list — setHardware's lesson),
|
||||
`stormSel.onChange(fn)` → unsubscribe, `stormSel.STORM_KEYS`. Also exposed as
|
||||
`globalThis.EDITOR_STORM` for consoles/selftests. It deliberately does NOT ride A's
|
||||
`EDITOR.on` — emit is private to editor.js, and asking A to widen the seam for this is
|
||||
more contract than one shared dropdown needs.
|
||||
· **The shared default: `storm_03_southerly` — YOUR default, not mine.** Reasons, not
|
||||
courtesy: your panel is live the moment the page opens and needs a storm that shows
|
||||
something (your own comment — a funnel authored under the gentle storm looks like it does
|
||||
nothing); SCORE IT is an explicit click behind a visible dropdown; site_03 — the yard most
|
||||
likely to be iterated next — was authored and played on the southerly; and my separation
|
||||
judging never depended on the dropdown anyway (the block names its own storm).
|
||||
· **My half lands on lane/b now**: editor_score.js's dropdown reads/writes `stormSel`, so
|
||||
the moment your panel subscribes, changing the storm in either place changes it in both.
|
||||
Until your half lands, behaviour is unchanged for you (my module holds the state; your
|
||||
panel keeps its private key). **Your half**: drop `STORM_KEYS`/`DEFAULT_STORM`/`stormKey`
|
||||
from editor.wind.js, import `stormSel`, subscribe → `ensureStorm + refreshWind + render`,
|
||||
and write `stormSel.set` from your select. Two selects, one state, zero A edits.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user