diff --git a/docs/LANES/LANE_F_NOTES.md b/docs/LANES/LANE_F_NOTES.md index 2d2c7f4..1a6b400 100644 --- a/docs/LANES/LANE_F_NOTES.md +++ b/docs/LANES/LANE_F_NOTES.md @@ -1300,3 +1300,41 @@ building is where the lot says, whether `frontEdge` is the road you'd stand on, B's own frontage anchor (B built `poseForVenue`/bookmarks for exactly this). **Next: ask B** — B owns the frontage and shipped the stocked-shopfront mark this round; F re-deriving B's anchor in a tour script is how you get three bad frames. The interior money shot needed none of this: the room poses itself. + +### ⚠ THE HOLD — `v5.0` NOT tagged. Every real town's shops face away from their street. +B's micro-task found it while fixing F's frame, and **F's three photographs of empty road are the +evidence**: it was never the pose. `plan_osm.js:443` aims the lot's **−Z** at the road ("facade (−Z) +faces road"); `buildings.js:404` draws the facade on the **local +Z face**. Exactly opposite. The +shopfront — sign, door, R26 crate mark — lands on the **far side**, and the street gets a blank wall. +**Since R18.** v4.0 shipped on it. Nine rounds of tours shot it. `katoomba_real`'s `street_noon`, the +bookmark the tours have used since R9, is 46 draws of bare road. + +Root cause: **CITY_SPEC contradicts itself** — `:71` (the lots contract) says −Z, `:335` (R15 posters) +says "+Z, B's canon" — and each generator implements one half. **Synthetic follows B's canon and looks +right, which is why every golden passes and nobody saw it for nine rounds.** The epoch's signature +species, one last time, and the worst instance of it: not a gate that fails on correct behaviour, but a +gate suite that is *green over a product that is wrong*. + +**F verified it, and F's first check was VACUOUS — worth recording, because it nearly ended the round the +wrong way.** F measured each lot's `ry` against CITY_SPEC:71's own convention and got **35/35 and 72/72 +FACING** — a clean contradiction of B. But `plan_osm` implements :71, so testing :71's data against :71's +rule is self-agreement: it cannot fail. **A self-consistent check over a self-contradicting spec passes +under either convention** — which is precisely why nine rounds of checks never caught this, and why F +nearly reported "B is wrong" with a green number in hand. The only test that sees it compares the two +conventions. F's frames already had. + +**Not F's to fix**, and B was right not to either: it is **A's file**, it moves **every real-town plan** +(so every real-town golden re-pins under the amendment law — 36 of them), and **a self-contradicting spec +is Fable's to rule**, not a lane's to pick a side of. B proved the one-liner works (`ry = atan2(-nx,-nz)` +→ katoomba 0/72 → 72/72, and F's money shot appears 4 m from Musgrave Road) and reverted it. That is the +same discipline F applied to A's sweep and E's validator, arriving from the other direction. + +**Order: Fable rules the spec → A lands the line + re-pins the goldens in one commit (amendment law) → F +re-gates, re-shoots the tour, tags `v5.0`.** Everything else for the release is done and green: the +kill-the-server gate, the reader, the sandbox, the interior money shot (interiors pose themselves and are +untouched by this — the crate is real either way). + +*And B's own postscript is the lesson twice over: B credited "chunk-buildings 348 tris (0.2%)" to the +instancing work in R22 — 348 tris is ~29 boxes. It wasn't efficiency, it was the buildings being absent +from frame. B read the evidence as a win for five rounds. A number you like is the easiest vacuous gate +of all.*