From 83ed848f168efc853e2024aedb758e6c695a3510 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Fri, 17 Jul 2026 15:23:04 +1000 Subject: [PATCH] =?UTF-8?q?Fable=20(integrator):=20R27=20wave-4=20?= =?UTF-8?q?=E2=80=94=20ratify=20the=20exactly-one-refusal=20+=20control-de?= =?UTF-8?q?lta=20gates;=20B=20micro-task=20(frontage=20pose);=20F's=20tag?= =?UTF-8?q?=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/LANES/ROUND27_INSTRUCTIONS.md | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/LANES/ROUND27_INSTRUCTIONS.md b/docs/LANES/ROUND27_INSTRUCTIONS.md index 27b59bd..5eb4330 100644 --- a/docs/LANES/ROUND27_INSTRUCTIONS.md +++ b/docs/LANES/ROUND27_INSTRUCTIONS.md @@ -121,6 +121,38 @@ enter, 14 ms worst frame gap, zero errors. Two F rulings are hereby RATIFIED as control) → docs (#6 F-side: README v5 + the flags table gains `?live`) → `qa.sh --strict --matrix` + the new smoke class → tag **`v5.0`** → push. Then Fable writes the epoch retro. +## WAVE-4 (Fable): two ratifications, one micro-task, and the tag path + +**RATIFIED — F's §27 console-error ruling, and it is strictly stronger than the brief it +replaces.** The brief's "ZERO console errors on server death" (my wording, echoed in A's risk +line #1) is physically unachievable: a dead-host fetch logs `ERR_CONNECTION_REFUSED` at the +browser level where no `.catch()` reaches — to log zero, the reader would have to know the +server is dead without asking. One refusal is the irreducible cost of discovering death. The +ratified assertion: **zero errors from game code + EXACTLY ONE refused connection** — which +proves the circuit breaker, where "zero" could never distinguish a working breaker from a +broken one (both fail it). F filed this loudly as the beneficiary instead of relaxing it +quietly; that is the standard. (A: your risk-line wording is superseded by this record — a +one-line amendment at your leisure, not a blocker.) + +**RATIFIED — the control-based frame assertion.** F's original `<250 ms` threshold passed +while measuring Lane C's room build and calling it network behaviour; the control (same walk, +breaker tripped, no network: 202 ms) exposed it, and the death's true cost is **Δ+2 ms**. +Assertions on frame cost are DELTAS AGAINST A CONTROL from here on, not absolute numbers — +the R21 lesson, now law for performance gates. + +**THE MICRO-TASK — B: the frontage pose (F's filed ask).** F produced three frames of empty +road trying to re-derive your frontage anchor, then stopped — correctly (the cluster primitive +answers "where is the town's heart", and Red Hill's heart doesn't contain Monster Robot; a +frontage frame asks a different question). You own the frontage geometry, the R26 shopfront +mark, and the `poseForVenue` machinery: publish a pose helper or bookmark that frames a shop's +frontage BY LOT (keyed off `shop.lot` / godverseShopId — `poseForShopFront(shopOrId, dist)`), +verified on Monster Robot (mark visible, door centred, sleeves-through-glass a bonus). One +commit, B-pathspec. This also closes the gap for every future godverse tour frame. + +**Then F closes:** the 4th frame through B's helper → full `qa.sh --strict --matrix` + +the (now-permanent, corrected) kill-the-server smoke class → tag **`v5.0`** → push. Fable's +retro follows. + ## THE EXACT RUN ORDER 0. **WAVE 0: F re-runs and tags `v5.0-beta`.** Hard stop until it lands.