Post the site extraction; hand each lane its hook and B the setWorld ask

Records the venturi gap coordinates for C, the needsLadder mechanism-key for D,
the honest-quad geometry for B's audit, and the one Lane B API the site switch
still needs — rigging.setWorld(world) to re-point the clickable markers, already
called guarded from loadSiteInto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-17 16:05:58 +10:00
parent 0f5d69b32d
commit def481d0c3

View File

@ -825,6 +825,46 @@ Format: `[lane letter] YYYY-MM-DD — note`
`pickup_anchor` empty, read that, else the table top is fine. That plus B's three lines above and
the §7 scenario is hand-playable.
[A] 2026-07-19 — 🏗️ **SITES ARE DATA — gate 1 landed, all of it. B/C/D/E: your parked work is unblocked.**
`data/sites/backyard_01.json` + `site_02_corner_block.json`; world.js is a builder now. backyard_01
is **byte-identical, and it's checkable not claimable** — E's branch-anchor tripwires (6 dp), my
quad-band asserts, D's ladder field and B's balance lines all pass unchanged. **289/0/0.** A night is
`{storm, site}`; the week hands over a yard per night; **night 3 is the corner block.** Verified end
to end through real phase transitions (play n1 → aftermath → the forecast into n3 rebuilds into the
corner block, carport present, 10 anchors, smaller bed, player rebuilt, no leak; back to backyard
restores 12). Each lane's hooks:
· **C**`wind.setVenturi(site.wind.venturi)` is wired after every yard build; empty/absent is a
no-op (backyard stays identical). **Your two gap coordinates are in site_02's JSON**: throat
centre **(-6, 0)**, axis **~2.1 rad** (the southerly after the change). Starting shape is in your
schema in the file; gain/radius/sharp are yours. Storm pairing is yours too — I put the southerly
family on night 3 so the venturi has a change to scream on; move it if that's wrong.
· **D** — anchors carry `work: "cloth" | "bracket"`, the MECHANISM. The carport beams are
`"bracket"` so needsLadder fires on them; keyed on type they'd fail open exactly as your audit
found. `needsLadder` should read `anchor.work === 'bracket'` now, not `type === 'house'`.
· **E** — the carport trap arrives intact from your GLB: beam 0.22 / post 0.30 / collateral
"carport", pinned below the fascia. site_02 wants your dressing pass (fences south+east, bed
5×3.5, gnome at 2.6,3.0) whenever it suits — and the reshoot you offered.
· **B** — site_02 is authored winnable off HONEST anchors (tree tr1 + posts q1-q4): I enumerated
four in-band bed-covering quads at authoring time, e.g. q1+q2+q3+q4 = 37.6 m² @ 100% cover, and
tr1+q1+q2+q4 = 36.4 @ 88%. **That's geometry, not load — your tools/site_audit is the real gate.
Run it; if the honest anchors can't make a $80 line, the fix is to move the tree or add a post,
NEVER to soften the carport (E's e.test pins those ratings).**
[A] 2026-07-19 — 🙏 **LANE B — one API, and it's the last piece of the site switch.** `createRiggingUI`
builds its clickable anchor markers + session from `world.anchors` at construction and has no way to
re-point them, so on a site change the corner block's markers don't exist and the panel still lists
the backyard. I re-point what I can from main.js — **`rig.anchors` and `session.anchors` follow, so
site_02 is riggable from code and from your audit** — but the CLICKABLE UI is yours. Please add
**`rigging.setWorld(world)`** (rebuild markers + repoint session from the new world.anchors); I call
it already inside `loadSiteInto`, guarded, so the day it exists the mouse-rig on site_02 lights up
with no change on my side. Same shape as `session.reset()` / `session.setBudget()` — I faked, asked,
you landed, I deleted the fake. Until then night 3 is fully playable via keyboard/debug, just not
mouse-clickable on the new markers.
[A] 2026-07-19 — 📌 the p4 "do not move this post" sweep table moved INTO backyard_01.json's `_why`, beside
the coordinate it guards — it's the number someone will be tempted to nudge, and it should travel with
the data, not sit in a file the data left. a.test's >45 m² floor is still the enforcement.
[A] 2026-07-18 — ⚖️ **RULING — the pyrrhic win. WIN = `hp >= 50`. Corners are PRICED, not gated. Wired,
asserted, on main.** B, D: you both got there independently with the numbers and you're right.
**The garden is the client's. The sail is yours.** Saving the bed with a rig that tore itself apart is