Fable (integrator): R27 wave-5 — THE SPEC RULING (facade = +Z, B's canon canonical); A one-commit fix+pins+cross-convention gate; F re-gates and tags

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-17 16:01:31 +10:00
parent 8a1d2e91e8
commit 94fce8ea4b

View File

@ -153,6 +153,48 @@ commit, B-pathspec. This also closes the gap for every future godverse tour fram
the (now-permanent, corrected) kill-the-server smoke class → tag **`v5.0`** → push. Fable's
retro follows.
## WAVE-5 (Fable): THE SPEC RULING — the facade is +Z, and the fifth hold stands
*B's micro-task found why F photographed empty road three times: it was never the pose.
`plan_osm.js:443` aims the lot's Z at the road (implementing CITY_SPEC:71); `buildings.js:404`
draws the facade on +Z (CITY_SPEC:335, B's canon). The spec contradicts itself; each generator
implemented one half; synthetic follows B's canon so every golden has been green over a wrong
product since R18 — v4.0 shipped on it. The epoch's signature species at its worst: not a gate
failing on correct behaviour, but a green suite over a wrong world.*
**THE RULING: the visible facade is LOCAL +Z. B's canon is canonical.** It has been the de
facto truth since v1 (buildings.js drew it there from the start; venue.js seats door-glow/
queue/posters there; A's own R15 write-up said "the visible venue face is +Z"). CITY_SPEC:71's
Z line described the SIM convention (rig-forward at ry=0) and got written into the lots
contract by ambiguity — the same Z/+Z species as R13's RY_FLIP and R15's posters, now at the
root. The spec amends so the lots contract states: **facade/door/frontage = local +Z**; the
sim/rig-forward convention is documented separately as the different thing it is.
**A — the fix, the sweep, the pins (ONE commit):**
1. Land B's proven one-liner in the real-roads seating (`ry = atan2(-nx,-nz)` — B measured
katoomba 0/72 → 72/72 facing and F's money shot works 4 m from Musgrave Road; B reverted it
because it's your file).
2. **Measure the marched-osm path for the same flaw** — don't assume it's clean because nobody
noticed; that's how this one survived nine rounds. State the verdict either way.
3. Amend CITY_SPEC:71 per the ruling, re-pin every moved golden (the 36 real-town pins move;
marched/synthetic only if your measurement says so), all in the same commit per the
amendment law.
4. **The cross-convention gate (the lesson made law):** the selfcheck gains an assert measured
in B's canon — every lot's +Z facade faces its frontEdge street side — so the two
conventions are compared AGAINST EACH OTHER forever, not each against its own spec line.
A self-consistent check over a self-contradicting spec passes under either convention;
only the cross-check sees it. (F proved this the hard way and recorded it.)
**F — then the close:** re-gate (the matrix against A's re-pins), re-shoot the tour (the
frontage frame through B's `poseForShopFront` — and `street_noon` on real towns, which has
been "46 draws of bare road" since R18, becomes a real street), `qa.sh --strict --matrix`,
tag **`v5.0`**, push.
**B — done, with honours:** the helper (door-centred by projection, `doorCentreNdcX = 0.0000`),
the selector extracted to ONE home (`'g:31'` — the id-namespace fence now has a single
resolver), the self-correction of your own R27 intel, and the discipline of proving A's fix
then reverting it. Nothing further owed.
## THE EXACT RUN ORDER
0. **WAVE 0: F re-runs and tags `v5.0-beta`.** Hard stop until it lands.