PROCITY/docs/LANES
m3ultra bee7563a76 Lane E R27 (v5.0): provenance v5-final — and the roster gap the freeze caught (ledger #6)
THE BUG THE FREEZE FOUND: redhill_godverse was ON DISK but NOT IN THE ROSTER — for three rounds. The v5
provenance table needed real numbers, so I measured instead of carrying the v4 row forward. The count
didn't match: 23 caches on disk, 22 rostered. The missing one was redhill_godverse — THE TOWN THE ENTIRE
v5 EPOCH WALKS TO.

Mine, squarely. index.json is Lane E's file (write_index()). G's redhill_godverse landed in R24 (86e2985)
AFTER my last index run (5815dfb) and nobody re-rostered it. An addition isn't done when the cache is
written — it's done when the roster is regenerated. That is the exact mirror of my own R24 lesson ("a
retirement isn't done when the cache is deleted; it's done when the consumers are swept"): I wrote the
lesson for deletions and missed its reflection for additions.

WHY FOUR GREEN ROUNDS NEVER CAUGHT IT — a gate-shape lesson. Nothing was broken for the gates: selfcheck
enumerates web/assets/towns/*.json DIRECTLY (so it saw the town; A even pinned its goldens) and F's crate
smoke boots BY KEY (?town=redhill_godverse). The roster's only consumer is B's HUD selector (hud.js, my
R20 ledger #2 design). So the single symptom was that A PLAYER COULD NOT CHOOSE THE HEADLINE TOWN FROM THE
DROPDOWN — invisible to every automated check by construction. A gate that reads around the artifact under
test cannot test it: the vacuous-gate species, one layer out.
Fixed: re-ran write_index() -> 23 rostered, 23 on disk, 0 missing. Only index.json moved (every cache
byte-identical again). selfcheck ALL GREEN 156,212, golden 0x3fa36874 untouched. qa.sh --strict --matrix
7 passed / 0 failed / 0 warn.

-> F (#5, the tour): the money shot walks Musgrave Road into Monster Robot Party. If any tour frame reaches
that town THROUGH B's SELECTOR rather than by key, it could not have found it before this commit; by key it
always worked. Worth one glance at your framing path.
-> B: the dropdown now carries both godverse towns. Your `${t.state ? ', ' + t.state : ''}` handles their
empty state gracefully — nothing needed, and the defensive write is why this cost nothing cosmetically.
-> G: your godverse caches carry no `state`, so they roster as state:''. Harmless (B degrades cleanly). For
"Red Hill, QLD" in the picker, emit `state` — write_index() already prefers the cache's own field.

PROVENANCE v5-FINAL. The ⟨v5.0-FINAL⟩ rows are measured, not inherited — the town-pack row still claimed
v4's "22 towns / 1192 shops", stale since my R24 ballarat retirement and redhill build (now 21 real / 1196
shops / 299 heroes, + both godverse towns = 23 rostered). Added the two v5 art rows: the real-stock atlas
(1 crate, 120 items, Monster Robot's own POS, sku_ ids) and the mint atlases (14 crates, 224 items, seeded
from real dealgod listings, mint_ ids). These are the table's FIRST AMBER ROWS — everything before v5 was
green web-ok; real product photography is the first asset class this project ships that a human must clear
before public release.

I VERIFIED MY OWN PROSE AND IT CAUGHT ME: I first wrote the mint crates as "6 record · 6 book · 3 toy" —
that is the breakdown of all FIFTEEN crates, which includes Monster Robot's REAL record crate. The 14 mint
crates are 5 record · 6 book · 3 toy. A count attributed to the wrong population, one line from being
frozen into the release record. Every other claim in the table re-measured true (21/1196/299/8 states/23
rostered/roster==disk/72/37/120 items/224 items/both zones in-house-green).

THE LICENCE LINE'S STORY, recorded as a mechanism. The amber rows are guarded by exactly one printed line,
so the freeze says why it took two rounds to make honest: R23's glob matched 0 files and returned 0; R25's
permissive `or` fallback let the print go silent while the check still passed — the flag stopped reaching a
human on real product photos while the gate said OK. Now: one spelling, one lookup with one owner, and the
line is COUNTED (judged N => N lines, or FAIL). Both zones print — mint carries the same in-house-green
flag, because minting changes whose stock a crate CLAIMS to be, never whose photograph it IS. Frozen today
at: atlas-QA OK — 15 per-shop atlas(es) valid, 15 licence line(s) shown, 0 warning(s).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 13:59:49 +10:00
..
FABLE_TO_LANE_G.md Fable (integrator): response to Lane G — Draco ruling (no-Draco depot), density ruling, bug triage, G2/G3 sequence 2026-07-16 20:34:30 +10:00
LANE_A_CITYGEN.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_A_NOTES.md Lane A round 27 (v5.0): the docs freeze — CITY_SPEC v5 + the risk list judged (ledger #6) 2026-07-17 13:52:47 +10:00
LANE_B_NOTES.md Lane B R27 (on-call): the R26 handshake verified against G's real manifest 2026-07-17 13:52:57 +10:00
LANE_B_STREETSCAPE.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_C_AUDIO.md Lane C R14 (v3.0 release): venue audit + docs freeze + guitar_amp ruling 2026-07-16 08:40:42 +10:00
LANE_C_GLB_VALIDATION.md Lane C R5 C3: re-measure interiors after Lane E's hero-prop bake 2026-07-14 21:16:15 +10:00
LANE_C_INTERIORS.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_C_NOTES.md Lane C round-9: draw-headroom note for D's browser rigs (F1 handoff) 2026-07-15 09:57:55 +10:00
LANE_C_PUB.md Lane C R27 (v5.0): the tier-2 seam ruling + LANE_C_PUB v5-FROZEN (ledgers #2, #6) 2026-07-17 13:53:02 +10:00
LANE_D_CITIZENS.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_D_NOTES.md Lane D R23 (v5.0-alpha): the GIG_RANGE chunk-neighbour fix — scoped to the gig path (ledger #6) 2026-07-16 23:06:07 +10:00
LANE_E_ASSETS.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_E_NOTES.md Lane E R27 (v5.0): provenance v5-final — and the roster gap the freeze caught (ledger #6) 2026-07-17 13:59:49 +10:00
LANE_F_INTEGRATION.md PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins 2026-07-14 10:46:40 +10:00
LANE_F_NOTES.md Lane F R26 wave 4: the re-run — 6/1/0 → 7/0/0, QA GREEN, v5.0-beta tagged 2026-07-17 13:36:44 +10:00
LANE_G_GODVERSE.md Lane G (GODVERSE, ultra) R1: real-shop census adapter — 18 real Newtown shops on the real road graph 2026-07-16 20:19:14 +10:00
ROUND3_INSTRUCTIONS.md Lane F R5 start: archive R3/R4 instruction claims + v2 flags table + v1.1 watch 2026-07-14 20:48:19 +10:00
ROUND4_INSTRUCTIONS.md Lane F R5 start: archive R3/R4 instruction claims + v2 flags table + v1.1 watch 2026-07-14 20:48:19 +10:00
ROUND5_INSTRUCTIONS.md Fable (integrator): round-6 lane instructions — finish v2 wiring + pay review debts (A plansrc carried, F enforcement harness, C draw batching, orphaned assets) 2026-07-14 22:21:31 +10:00
ROUND6_INSTRUCTIONS.md Fable (integrator): round-7 lane instructions — roster default-on flip + GODVERSE real stock + weather + strict harness 2026-07-14 23:53:54 +10:00
ROUND7_INSTRUCTIONS.md Fable (integrator): round-8 lane instructions — catch-up (A/B carried) + the town comes alive (patronage, buy loop, weather, pack breadth) 2026-07-15 02:06:34 +10:00
ROUND8_INSTRUCTIONS.md Fable (integrator): round-9 lane instructions — the v2.0 ship round (interior presence, buy-anywhere, tram, tour, docs freeze) 2026-07-15 09:16:59 +10:00
ROUND9_INSTRUCTIONS.md Fable (integrator): round-9 lane instructions — the v2.0 ship round (interior presence, buy-anywhere, tram, tour, docs freeze) 2026-07-15 09:16:59 +10:00
ROUND10_INSTRUCTIONS.md Fable (integrator): round-10 instructions — interior giant-rig blocker, v2.0 tag pulled 2026-07-15 12:12:55 +10:00
ROUND11_INSTRUCTIONS.md Fable (integrator): v2.0 shipped; round-11 instructions — the audio round 2026-07-15 14:08:32 +10:00
ROUND12_INSTRUCTIONS.md Fable (integrator): round-12 instructions — v3.0-alpha, one pub end-to-end 2026-07-15 17:32:34 +10:00
ROUND13_INSTRUCTIONS.md Fable (integrator): round-13 instructions — v3.0-beta, the district 2026-07-15 21:30:01 +10:00
ROUND14_INSTRUCTIONS.md Fable: R14 kickoff rulings recorded (push done, flag stays opt-in, genres final) + gitignore local session files 2026-07-16 00:59:42 +10:00
ROUND15_INSTRUCTIONS.md Fable (integrator): round-15 instructions — close the v3.0 release (F's carried brief + poster-face fix + amp fix) 2026-07-16 09:21:39 +10:00
ROUND16_INSTRUCTIONS.md Fable (integrator): round-16 instructions — v3.1 THE FLIP (defaults on, classic covenant, drummer sits, town-wide pools) 2026-07-16 12:01:26 +10:00
ROUND17_INSTRUCTIONS.md Fable: R17 kickoff rulings — v4 = THE REAL MAP (John), Overpass fetch authorized 2026-07-16 14:05:50 +10:00
ROUND18_INSTRUCTIONS.md Fable (integrator): v4 REAL MAP charter + round-18 instructions — v4.0-alpha REAL ROADS (katoomba_real) 2026-07-16 15:29:10 +10:00
ROUND19_INSTRUCTIONS.md Fable (integrator): round-19 instructions — the v4.0-alpha close (fragmentation ruling, BIG_CITY fix, the gate) 2026-07-16 17:06:18 +10:00
ROUND20_INSTRUCTIONS.md Fable: R20 kickoff ruling — density widening approved (John), directive: subtle, texture not takeover 2026-07-16 18:14:53 +10:00
ROUND21_INSTRUCTIONS.md Fable (integrator): round-21 instructions — the v4.0-beta close (venue cluster bias, selector index, density soak, the gate) 2026-07-16 20:14:39 +10:00
ROUND22_INSTRUCTIONS.md Fable (integrator): round-22 instructions — v4.0 THE EPOCH CLOSE (tri diet first, pack absorb, release tour, G items) 2026-07-16 21:44:03 +10:00
ROUND23_INSTRUCTIONS.md Fable (integrator): v5 THE REAL SHOP charter + round-23 instructions — v5.0-alpha THE FIRST REAL CRATE 2026-07-16 22:48:59 +10:00
ROUND24_INSTRUCTIONS.md Fable (integrator): round-24 instructions — the alpha completion (contract fix, identity field, redhill, honest gates) + two new laws 2026-07-17 00:21:51 +10:00
ROUND25_INSTRUCTIONS.md Fable (integrator): round-25 instructions — the tag, earned (sweep vs Ruling 2, licence line, sku ids, F closes) 2026-07-17 02:14:02 +10:00
ROUND26_INSTRUCTIONS.md Fable (integrator): R26 wave 4 — the mint-id ruling (prefixes are namespace fences); C one line, E one line, F tags 2026-07-17 11:49:38 +10:00
ROUND27_INSTRUCTIONS.md Fable (integrator): round-27 instructions — v5.0 THE LIVE CRATE (wave 0: beta tag; then tier-2 read-live, the kill-the-server gate, the tour, the tag) 2026-07-17 13:27:28 +10:00