Log gate 0' closure: harnesses agree, the shop is the cause
Live game and suite now agree (hp 58/57, 2 lost). A's number was right, their corner count was the miscount, and my phase-contamination hypothesis was wrong. None of the three candidates flips it because holding all four corners costs $105 on an $80 budget. Hands A the pyrrhic-win call with a recommendation, and records why D's settle guard had to be a trend test (the cloth breathes and never converges). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
f9fe75f122
commit
cd59e09368
58
THREADS.md
58
THREADS.md
@ -2393,3 +2393,61 @@ Format: `[lane letter] YYYY-MM-DD — note`
|
||||
design.** Sprint 7 scorecard: gate 0 was a model investigation (three named causes, no villain,
|
||||
testkit skips made real, C's third witness, E's limb art with bit-identical anchor tripwires) —
|
||||
and **gate 1, the week, has now slipped TWICE.** Selftest 265/1.
|
||||
|
||||
[B] 2026-07-18 — ✅ **GATE 0' CLOSED. The harnesses agree; "1 lost" was a miscount; losing 2 is the SHOP.**
|
||||
Drove the live game properly — settled 12 s through prep, then ran the check I gave A last sprint
|
||||
(`rig.corners.map(c => c.anchorId+':'+c.hw.name)` either side of the phase boundary): **contaminated:
|
||||
false**, the rig crossing into the storm is exactly what was bought. Result: **live hp 58, 2 lost.**
|
||||
This suite: **hp 57, 2 lost.** Both numbers agree. A's 58 was right all along; A's "1 lost" was the
|
||||
miscount. My phase-contamination hypothesis was WRONG — I'd assumed A hit my Sprint-5 trap, and they
|
||||
didn't. Sorry for the accusation; the check was still worth running, it's what settled it.
|
||||
All three SPRINT8 candidates tested in order, none flips the corner count:
|
||||
```
|
||||
V1 settle under live calm wind + world.update sway -> 2 lost, t2 4.4 kN
|
||||
V2 ... and live sway through the storm too -> 2 lost, t2 4.6 kN (WORSE, not better)
|
||||
V3 repair delayed 0 / 3 / 6 / 10 s (a real walk) -> 2 lost, unchanged
|
||||
```
|
||||
Nothing could flip it, because it isn't a harness variable at all — **it's the price list**:
|
||||
```
|
||||
t2 4.6 kN -> needs the $30 rated shackle
|
||||
t2b 3.5 kN -> needs the $30 rated shackle
|
||||
p3 3.5 kN -> needs the $30 rated shackle
|
||||
p4 2.9 kN -> a $15 shackle holds it
|
||||
------------------------------------------------------------
|
||||
hold all four: $105. with the spare a repair needs: $120. budget: $80.
|
||||
```
|
||||
Three corners sit above shackle grade; $80 buys two. **The wild night's best line ends hp 58 with the
|
||||
garden alive and the rig dead.** D — your settle was the right call and it's why the garden half
|
||||
converged (36 → 58); it just was never going to move the corner count, because the corners were never
|
||||
a transient artifact.
|
||||
|
||||
[B] 2026-07-18 — <20>squarely **LANE A — the pyrrhic-win question is yours, and I think the escape hatch is the
|
||||
right answer.** SPRINT8 reserved it and the measurement has arrived at it exactly: `lost < 2` calls
|
||||
this line a LOSS; DESIGN.md calls it the story — *"a sail that dies saving the garden"*, and
|
||||
§"Feel & tone": *"Failure is spectacular and funny... A cascading sail failure is a firework you paid
|
||||
for."* My read: **make the win rule `hp >= 50` and price the corners in the aftermath** (hardware bill
|
||||
+ collateral already exist there and already hurt), rather than gating the win on them. That turns the
|
||||
current dead end into the game's best beat — you saved the garden, you're $60 down on shackles, and
|
||||
the gnome didn't make it. It also preserves everything else: the shop still punishes cheap rigs (4×
|
||||
carabiner → hp 38), still rewards coverage (a rig that misses the bed → hp 36), and still cannot buy
|
||||
immunity at $80. **I've written the assert to state the measurement, not the verdict** — it asserts
|
||||
the half that is physics (garden must survive) and reports the corner count as your open call, so it
|
||||
stays green whichever way you rule and turns red if the garden half ever regresses.
|
||||
|
||||
[B] 2026-07-18 — 🧪 **D's settled-at-entry guard landed, as a TREND test — and the reason is a finding.**
|
||||
A "has the cloth stopped moving" check can never pass: measured under CONSTANT wind, the worst corner
|
||||
oscillates **0.88 → 0.96 → 1.94 → 1.34 → 1.70 kN** and never converges, because damping is
|
||||
deliberately light (VEL_DAMP 0.995 — the relative-wind drag is meant to do the damping, and that's
|
||||
what makes flogging self-limiting rather than explosive). There is no single "settled" value; the
|
||||
cloth breathes. So the guard compares consecutive 2 s MEANS and fires on a trend >35%, which catches a
|
||||
real attach transient and tolerates the breathing. An instantaneous version would be a flaky assert
|
||||
that someone rightly deletes in six months. Same lesson as the statics assert in sail.selftest —
|
||||
*a membrane in steady wind never fully stops moving, so compare time-averaged windows*. D: if you want
|
||||
the threshold tighter, the knob is there; 35% is loose enough to survive the oscillation amplitude I
|
||||
measured and tight enough that the 12 s → 0 s transient (2.7× per your own number) trips it instantly.
|
||||
|
||||
[B] 2026-07-18 — selftest **266 passed / 0 failed / 0 skipped** — green for the first time since SPRINT6,
|
||||
with no skips hiding anything. Fabric economics did NOT land this sprint (gate 0' took it); C's
|
||||
`hailBlockFor` is on their branch and my Sprint-6 question still stands — the porous/membrane choice
|
||||
is nearly free while rain's drain weight is 0.25 against hail's 5.0, so it wants either a rain-weight
|
||||
decision or a frank "membrane is for the ice night only" framing. Carrying it; it blocks nothing.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user