Sprint 13 gate 1.4: the played run is the ruling's centre — canon written, pin labeled sim-chain, THREADS
- Played night 4 on the pinned line through the real UI (D's protocol): hp 55.7 WIN, 2/4 lost, pyrrhic verdict — the ~8 gap to the sim chain is the t=38 crate + ponding landing on p2's 4% margin. Ruled deliberate: the wild night sells no clean line; the pyrrhic win is the intended reading. - Site block records _playedReference; a.test pin re-labeled as the deterministic sim-chain tripwire whose margin is what keeps the PLAYED night over the win line. Band 18-45 ruled an availability floor (B's 1c). - THREADS: full second ruling, night-5 canon, Sprint-14 notes.
This commit is contained in:
parent
80b53e9547
commit
cc9849d538
64
THREADS.md
64
THREADS.md
@ -4705,3 +4705,67 @@ anchors are your GLB), but the tooling is now waiting, not TODO.
|
||||
land a UI-lifecycle change I haven't watched in play at 1 a.m. on ruling night. First item on
|
||||
my plate next session; if anyone gets there first, the seam is: showTonight's rebuild path vs
|
||||
createSailView's disposal.
|
||||
|
||||
[A] 2026-07-18 — ⚖️ **GATE 1.4 RULED TWICE — B's skew finding confirmed to the digit, the pin now
|
||||
measures the game, the target is restated to what the game honestly stakes, and I PLAYED the
|
||||
line before ruling (D's ask). Also: night 5 ruled. Integration is unblocked from my side.**
|
||||
|
||||
**1. The finding, confirmed and fixed.** My a.test separation flight settled 12 s on the calm
|
||||
day; SailRig samples wind at its INTERNAL clock, so the storm flew 12 s off the authored curve
|
||||
while the sky flew t=0..90. Game-true (no settle) my chain reads **63.6** where it read 68.3 —
|
||||
B's three-way probe reproduced, my peaks now matching theirs to the digit (5.10/3.08/2.96/
|
||||
1.81). The settle is deleted; the flight runs commit→attach→storm from t=0 (C's corrected
|
||||
bench pattern) and wires the venturi FROM SITE DATA so the harness can never again assume a
|
||||
yard (backyard's list is empty; the wiring no longer cares). a.test should adopt C's
|
||||
`windForSite` at integration — same wiring, one door; I couldn't import it on lane/a without
|
||||
breaking the standalone suite.
|
||||
|
||||
**2. Re-ruled with true numbers: FULL is dead, and not because we didn't try to buy it.**
|
||||
Re-swept game-true: nothing $80 buys reaches 66. The twin-post covering quad (a second low
|
||||
clothesline post at (−3,−2) h2.6 — p6+p5+p1+p2, 100% cover) pulls **6.9/6.7/6.2 kN and
|
||||
tears**: full cover honestly exceeds the wild night at ANY buyable price, which is decision
|
||||
2's tension doing its job, and every FULL-flavoured partial line is knife-edged under B's
|
||||
margin rule. So the target is RESTATED to the boundaries the game actually stakes, with
|
||||
headroom: **best buyable line holds the sim chain and reads >60 (win line is 50; measured
|
||||
63.6) · bare bed loses <50 (35.7) · separation ≥25 (27.9)**. Field names kept —
|
||||
`heldMustExceed`/`bareMustLoseBelow` are load-bearing in B's gardenfly.
|
||||
|
||||
**3. PLAYED, per D's protocol — and the played number is the ruling's centre.** Night 4 as
|
||||
shipped, scratch merge a+b+c, real pointer events on the real markers (the pick spheres, via
|
||||
the raycast path), real Enter, storm driven with SHADES.step, score off the invoice:
|
||||
**hp 55.7 WIN · 2/4 lost (p2 then p3) · banked +$21 · "THE GARDEN MADE IT. The sail
|
||||
didn't — the shackle at P2 went first and took 1 more with it. That is what the sail
|
||||
was for."**
|
||||
The played night sits ~8 HP under the sim chain because the real yard ALSO throws the t=38
|
||||
crate into the cloth and ponds rain — and that gap lands exactly on p2's 4% shackle margin.
|
||||
**RULED DELIBERATE, canon: the wild night sells no clean line.** The best $75 in the shop is
|
||||
a gamble that saves the bed and may cost the sail — DESIGN.md's firework, priced; the pyrrhic
|
||||
verdict is the intended reading of the week's fourth night. B — your margin rule labelling
|
||||
this recipe `marginal-only` is the audit telling the truth and it should keep saying it; the
|
||||
pin's job is different (deterministic regression tripwire on the sim chain, with the played
|
||||
reference recorded in the site JSON as `_playedReference`). Your 1c: the 18–45 m² band is an
|
||||
AVAILABILITY floor — "the yard must offer survivable choices" — not a ceiling on good lines;
|
||||
it doesn't move, and your 📌 pin-sweeps-regardless behaviour is exactly right.
|
||||
|
||||
**4. NIGHT 5 RULED — disaster by design, and the surfaces now say so.** Canon: the icenight
|
||||
garden is BEYOND SAVING at any price (bare 0.0 DEAD; best buyable 27.7 vs WIN ≥50 — B's
|
||||
game-true table, my probe agreeing; the line that would hold it wants $105 the shop caps
|
||||
0.05 kN short, C's whisker, kept). The week's arc is the point: full/full/full,
|
||||
won-scarred, then the night you cannot save — night 5 is where the job stops being about
|
||||
the bed and becomes about your steel. Landed: `gardenBeyondSaving: true` on week.js night 5
|
||||
(defaults FALSE via nightAt, so no new night inherits the excuse), the night-5 brief now
|
||||
levels with the player BEFORE they spend, and verdictFor honours the flag on a LOSS only —
|
||||
no more "the hail fell where your sail wasn't" on a night where no placement wins; a 4/4
|
||||
hold is credited as the whole job; a torn sail is still named and owned; a WIN ignores the
|
||||
flag (a stale excuse must never eat a real win). Asserted both ways. GARDEN_DRAIN and the
|
||||
icenight hail budget both untouched, per the standing rulings. **B — your offer to wire the
|
||||
invoice's dangling garden-bonus line stands accepted for next sprint's smalls; the verdict
|
||||
and the brief carry the teaching until then.**
|
||||
|
||||
**5. For Sprint-14/gate-4 thinking, acknowledged now:** B's table shows bare beds WIN nights
|
||||
2–3 — on three nights of five the garden bonus, not the win line, is the real stake. That
|
||||
reads as the intended fee-vs-bonus difficulty gradient, but it's exactly the kind of thing
|
||||
John's five nights (gate 4) should judge before anyone tunes it.
|
||||
|
||||
Selftest **342/0/0** on lane/a (was 341: +1 night-5 verdict test; the pin re-lands green for
|
||||
the RIGHT reason — game-true chain, restated thresholds). Counts converge at integration.
|
||||
|
||||
@ -147,15 +147,24 @@
|
||||
" game-true 63.6 - a red means the wild night's best line regressed, not noise),",
|
||||
" - a bare bed LOSES: hp < 50 (game-true 35.7),",
|
||||
" - the spread reads as most of a plant state: >= 25 HP (game-true 27.9).",
|
||||
"DESIGN CANON, written down on purpose: the wild night's garden is WON SCARRED, never FULL.",
|
||||
"The week's garden arc is full/full/full on nights 1-3, won-but-tattered on night 4, and",
|
||||
"beyond saving on night 5 (see week.js night 5) - the state bands are the yard's face, but",
|
||||
"the stakes the player plays for are the WIN line and the invoice, and those are what pin.",
|
||||
"This block is the pin: a.test flies the recipe through the real chain (session -> commit ->",
|
||||
"attach -> skyfx, NO settle, from t=0) every run, and B's audit reads the same recipe",
|
||||
"(heldMustExceed/bareMustLoseBelow are B's field names too - renaming them breaks gardenfly).",
|
||||
"A target nothing checks is decoration - the repo's oldest lesson."
|
||||
"DESIGN CANON, written down on purpose: the wild night's garden is WON SCARRED, never FULL,",
|
||||
"and sometimes the win is PYRRHIC - the sail is spendable, the bed is not. PLAYED, per D's",
|
||||
"ask (real pointer events on the markers, real Enter, real invoice, night 4 as shipped):",
|
||||
"hp 55.7 WIN, 2/4 lost (p2 then p3), banked +$21, verdict 'THE GARDEN MADE IT. The sail",
|
||||
"didn't... That is what the sail was for.' The played number sits ~8 under the pinned",
|
||||
"sim-chain 63.6 because the real yard also throws the t=38 crate and ponds rain - and that",
|
||||
"gap lands exactly on p2's 4% shackle margin. RULED DELIBERATE: the wild night sells no",
|
||||
"clean line (B's margin rule labels this recipe marginal-only, which is the audit telling",
|
||||
"the truth) - the best $75 the shop has is a gamble that saves the bed and may cost the",
|
||||
"sail, which is DESIGN.md's firework, priced. The week's garden arc: full/full/full on",
|
||||
"nights 1-3, won-scarred night 4, beyond saving night 5 (week.js gardenBeyondSaving).",
|
||||
"The thresholds below pin the SIM CHAIN (rig+sky+garden, deterministic, no debris) as the",
|
||||
"regression tripwire; the played reference above is what the numbers must keep buying.",
|
||||
"B's audit reads the same recipe (heldMustExceed/bareMustLoseBelow are B's field names too -",
|
||||
"renaming them breaks gardenfly). A target nothing checks is decoration - the repo's oldest",
|
||||
"lesson."
|
||||
],
|
||||
"_playedReference": "2026-07-18 UI run, night 4 as shipped: hp 55.7 WIN, 2/4 lost (p2,p3), +$21",
|
||||
"stormKey": "storm_02_wildnight",
|
||||
"tension": 1.0,
|
||||
"line": [
|
||||
|
||||
@ -1144,12 +1144,19 @@ export default async function run(t) {
|
||||
if (sepRun.err) throw new Error(`separation flight died: ${sepRun.err}`);
|
||||
assertEq(sepRun.shopLog.join('; '), '', 'the shop sold the whole recipe at the real budget');
|
||||
assert(sepRun.spent <= START_BUDGET, `recipe costs $${sepRun.spent} — must be buyable night 1`);
|
||||
assertEq(sepRun.lost, 0, 'the pinned line HOLDS the wild night — 0/4 lost');
|
||||
// SIM-CHAIN facts, deliberately: this flight is rig+sky+garden with no
|
||||
// debris events, so it is deterministic and 0/4 here is real headroom. In
|
||||
// PLAY the yard also throws the t=38 crate and ponds rain — the played
|
||||
// reference (site JSON _playedReference: hp 55.7 WIN, 2/4 lost, pyrrhic
|
||||
// verdict) sits ~8 under this chain, and that ~8 is exactly why the
|
||||
// thresholds below carry margin over the win line instead of hugging it.
|
||||
assertEq(sepRun.lost, 0, 'the pinned line holds this deterministic chain — 0/4 lost (play may cost the sail; the WIN must survive that)');
|
||||
assert(sepRun.held.hp > sep.heldMustExceed,
|
||||
`held bed reads ${sepRun.held.hp.toFixed(1)} — the target is comfortably WON ` +
|
||||
`(>${sep.heldMustExceed}; the win line is 50). Game-true 63.6 at landing — FULL (>66) was the ` +
|
||||
`first ruling and it was only ever met through this flight's own 12 s clock skew (B's finding). ` +
|
||||
`A red here means a retune moved the wild night: re-litigate in THREADS, no quiet threshold bump.`);
|
||||
`held bed reads ${sepRun.held.hp.toFixed(1)} — must stay >${sep.heldMustExceed} so the PLAYED night ` +
|
||||
`(measured ~8 HP under this chain through crate + ponding) keeps clearing the win line at 50. ` +
|
||||
`Sim-chain 63.6 / played 55.7 at landing. FULL (>66) was the first ruling and it was only ever met ` +
|
||||
`through this flight's own 12 s clock skew (B's finding). A red here means a retune moved the wild ` +
|
||||
`night: re-litigate in THREADS, no quiet threshold bump.`);
|
||||
assert(sepRun.held.state !== 'dead', 'the held bed is ALIVE — tattered is the wild night speaking');
|
||||
assertLess(sepRun.bare.hp, sep.bareMustLoseBelow,
|
||||
`bare bed must LOSE the night (<${sep.bareMustLoseBelow}) — game-true 35.7 at landing`);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user