Verification first, and B's R39 heading fix did NOT clear the gate alone. Measured today
(tools/qa/door_footpath_check.mjs, new): synthetic 447/493 foot (90.7%) · katoomba 71/72 ·
fitzroy 138/139 · bowral 28/30 (93.3%) — from R39's 0/493, 0/72, 0/139, 0/30.
Two residue species, handled differently ON PURPOSE:
1. A 0.85m kerb miss on real towns — plan_osm's setback puts the facade past the corridor
edge, so the shell's d/2+0.6 door point lands just off the verge. Fixed by new D-owned
door_snap.js, applied in sim.setShops: clamps each door into the registry vergeBand of
its nearest footpath-bearing edge, 6m cap. Corpus: fixes 4, breaks 0. Live-shell verified
(493 points, 2 moved, max 5.41m — matches node exactly). Real towns now 72/72, 139/139, 30/30.
2. The synthetic's 36 strict misses are market stalls and arcade shops WHOSE FRONT IS THE
MARKET SQUARE. An uncapped snap would 'pass' them by teleporting a door 59.85m to a street
they do not front — passing the gate by breaking the truth it measures. The gate instead
scores walkable front ground (footpath ∪ market/arcade block ground) = 473/493 (95.9%) and
reports the strict number alongside.
The check ships its own falsifiability CONTROL (the R8-R39 back point must score under the
floor: reads 0.4-13.3%) and a fix-only arm (clamp breaks 0, asserted forever). Deterministic.
Remaining 20 synthetic misses are artefacts of the fixed nudge at index.html:433-437 — not
D's file; measured, exact fix documented for F. Goldens untouched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>