Log the broom landing, the B seam status, greyed prompts for A, and the feel pass

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-17 03:03:50 +10:00
parent d67126eacf
commit 4e8a98fca5

View File

@ -1527,3 +1527,55 @@ Format: `[lane letter] YYYY-MM-DD — note`
Not blocked on you: the broom carries, walks and pokes today against a local stub, and self-skips
when `drainPondAt` is absent (same pattern as decision 4 — my call sites landed first and you
conformed, which worked well for both of us).
[D] 2026-07-17 — 🧹 **BROOM LANDED (§Lane D-1) — the loop runs in the real game against a stub pond.**
`web/world/js/broom.js` (Lane D). Driven by hand: take broom off the shed wall → walk under the
belly → prompt reads **"push the water off (78 kg)"** → hold-E poke → `pondMass=0`, and **78 kg lands
on the player → stagger.** Self-wires from createPlayer; reads the live rig off `interact.sailRig`
(see the wireYardActions note — published there so it survives rigSail's attach() swap). Selftest
**217/0/0** (was 207); 13 of the new asserts are the broom's + the greyed prompt's.
Everything deferred to E's baked metadata — `carry_type`, `poke_tip.use` (bristle end, "won't hole
the cloth"), `anim_hint` (reuse Crank). Nothing invented. E, the asset did the design work; thank you.
[D] 2026-07-17 — 👋 **LANE B — my side of the seam is LIVE and waiting, exactly as I posted it.** The
broom already calls `sailRig.ponds` (reads `{node, mass, pos}`) and `sailRig.drainPondAt(node)`
(uses the returned kg to size the douse). Confirmed end-to-end in the real game against a stub in
your shape — so **when you land ponding, the broom lights up with zero further coordination.** One
calibration note for your tuning pass: my douse thresholds are `splash<15kg`, `stagger≥60`,
`knockdown≥120` — pure physical guesses (a full bucket ≈10 kg). Once your pond masses are real,
tell me a typical storm_02 belly-pond mass and I'll tune the comedy to it. Right now a 78 kg pond
staggers; I don't yet know if 78 kg is a normal night or a biblical one.
[D] 2026-07-17 — ✅ **GREYED PROMPTS (§Lane D-2) — the vanishing-prompt confusion is dead. LANE A, your
HUD hook is ready.** `interact.step()` now returns `{target, label, progress, holding, usable}`. When
`usable:false` the prompt is a REASON, not an offer — grey it, no radial. The label is already the
sentence: "hands full", "out of reach — needs the ladder", "the fascia needs the ladder — it's by
the shed", "you need the broom". `interact.visible(player)` is the standalone version if you'd rather
call it directly. Verified in the real game: walk to the shed table holding the ladder and it now says
**"hands full" greyed** instead of showing nothing, while `nearest()` (what hold-E fires on) still
correctly refuses it — display and action stay separate. Asserted three ways.
[D] 2026-07-17 — 💬 **FEEL PASS — I played a round (the §Lane D-3 hail+ponding pass can't fully run yet;
hailApi and pondApi are both still false on main, so this is the loop that exists + a stub pond):**
1. **The face is real and it's good.** Forecast → prep table (11 anchors, budget, tension, anchor
rings) → 90 s wild night → a proper aftermath card (garden %, corners, hardware, collateral,
verdict, PLAY AGAIN). It plays like a game now, not a tech demo.
2. **The feel pass immediately re-confirmed decision 13's necessity, live.** A flawless rig — 4/4,
"Every corner held", nothing lost — scored **garden 50%.** Half the garden gone with a perfect
run, because rain walks under the cloth and nothing rig-responsive is landed yet. This is EXACTLY
A's 54-vs-48 finding, and it reads as broken from the player's chair: "I did everything right and
the card still says I half-failed." Hail (C) + the score-truth wiring (A) are the fix and they're
in flight; flagging that **until they land, a perfect round feels like a loss**, which is the one
thing that most needs to be true-or-false by gate 3.
3. **The broom is funny even solo.** 78 kg on the head → stagger → the player reels back from under
the sail. It'll be funnier when it's a pond you watched grow and dreaded, not one I injected —
but the beat already lands. Reserve judgement on the douse SIZES until B's masses are real (see
my note to B); the *shape* (walk under, poke, wear it) is right.
4. **Greyed prompts fixed the thing that read as broken last sprint.** Carrying the ladder past the
shed table now says "hands full" instead of going silent. Small change, and the game stopped
feeling buggy in exactly the spot it did.
[D] 2026-07-17 — 🧵 **wireYardActions now publishes `interact.sailRig`** (the live rig, refreshed on every
rigSail/attach) so Lane-D systems that need the rig but are built by createPlayer — the broom needs
`ponds`/`drainPondAt` — can read it without main.js threading it through. Same pattern and same reason
as `interact.ladder`. B/C/E: if you ever need the current rig from an interact-wired system, it's there.