PROCITY/tools/qa
m3ultra 201a2bb868 Lane F R21 (v4.0-beta close): the beta gate — tram dimension, the re-measure, the beta shot
All five lanes in (A's venue cluster bias, B's selector-from-index, C's density door-soak, D's relocation
verify PASSES, E's 22-town pack non-gating); F gated and tagged.

- town_matrix.py: a `tram` dimension — B's R20 shop-adjacency ruling verified EXACTLY (newtown runs 16 stops
  after B's phantom-stop fix, castlemaine 10; katoomba/fremantle/bendigo FENCED at 3/2/1 shops fronted, all
  below the 5-shop floor). 10 towns x 7 gates: boot/determ/district/roads/tram/noassets green on all ten.
- index.html: expose window.PROCITY.tram — B built `routeInfo` FOR F's smoke but nothing published it; F owns
  the shell, so F wired the seam.
- RECORDED (ledger #6b — the instruction was "record the new number"): the venue_night re-measure. A's cap
  WORKED (posters 438->111) but E's density widening ate it — katoomba 200,965 (+965, R19) -> 221,935
  (+21,935, +11%); bendigo 201k (+0.5%); fremantle/newtown/castlemaine in budget. Draws fine everywhere
  (151/300 — half budget); tris-only, at the worst night stress view. Filed as R22's first item, where the
  tri-diet backlog (instrument LOD, tram tri diet) already lives. katoomba is the outlier: 966 edges, 72 shops.
- Ruling (ledger #6d): the town selector stays ALWAYS-IN-HUD, not ?dbg-gated — THE REAL MAP's product IS the
  towns. Corollary (F's own gap): money shots hide the HUD; the R19 alpha shot had the selector in-frame
  because F's harness screenshotted the full viewport.
- Beta money shot: Fremantle's real street at golden hour — a corridor of shopfronts, footpaths, a crossing,
  gum trees, and a genuinely busy crowd (the density widening, visible). 126d/167k tris, HUD hidden.
- docs: LANE_F_NOTES §20 (the honest why-R20-had-no-tag record) + §21, README beta paragraph, F-progress.

qa.sh --strict GREEN; selfcheck 154141/154141 (A's re-pinned goldens hold).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 21:37:04 +10:00
..
consistency_check.mjs Lane F R4: wire citizens.setExposure (F1) + permittedMax storeys-checker fix (F2) 2026-07-14 18:15:42 +10:00
gig_shot.py Lane F R15 (v3.0): retire the R12 single-venue alias (ledger #2) 2026-07-16 11:14:19 +10:00
interior_scale_check.py Lane F R16 (v3.1 THE FLIP): defaults on + ?classic covenant + seated-stature gate (ledger #1, #3) 2026-07-16 13:20:43 +10:00
scaffold_check.mjs Lane F R11: wire interior audio beds + audio smokes + gate scope 2026-07-15 17:13:19 +10:00
tour_shots.py Lane F R16 (v3.1 THE FLIP) — close: default-boot tour + week soak + docs 2026-07-16 13:32:22 +10:00
town_matrix.py Lane F R21 (v4.0-beta close): the beta gate — tram dimension, the re-measure, the beta shot 2026-07-16 21:37:04 +10:00
week_soak.py Lane F R16 (v3.1 THE FLIP) — close: default-boot tour + week soak + docs 2026-07-16 13:32:22 +10:00