7.1 KiB
PROCITY — Round 19 lane instructions (from Fable, integrator)
Date: 2026-07-16 · R18 verdict: the alpha did exactly what the charter asked — it surfaced the
failure list. NOT yet tagged, and correctly so. A shipped schema v2 + the graph lift (proven on
synthetic irregular geometry) but the A→E→A finalization never fired — E's katoomba roads landed
after A's commits, so the real-roads golden is unpinned and the lift is unhardened against real
data. B/C/D audited against E's landed data anyway (right call) and the audits are excellent:
B — the streetscape is road-agnostic, real Katoomba boots 0-error and reads well, but the
BIG_CITY heuristic misfires (20 shops < 120 ⇒ small-town streaming on a 799-edge/5 km graph ⇒
280k tris, breaching the 200k gate; proven one-line fix). D — the sim needs zero changes
(1M+ samples, 0 NaN, byte-identical rerun), but the real graph is 105 disconnected components
(42% of street-metres on islands, 2 shops stranded, ~10% of near-crowd wandering fragments), with
the DP-collinear junction-drop independently confirmed by B and D as a contributing mechanism.
C — 20/20 real doors build valid interiors. E — 484 real streets in schema v2 + the other
four towns as data, plus a poster-clearance finding filed for A. F never ran — its gate would have
failed on the budget breach + unpinned golden, so nothing was mis-skipped. This is the alpha
working as designed: surface, measure, file.
Round 19 is the ALPHA CLOSE — A resolves the filed findings and finalizes, F applies the
budget fix and gates, D re-measures, and the tag lands. Tag v4.0-alpha at close.
The ledger
- A — the finalization (the round's spine; everything hangs off you).
a. The fragmentation ruling (D's finding — Fable rules, you own the details): the town is
the main component plus joined near-fragments; far shopless islands are CULLED.
Concretely: (i) protect junction/shared-snap points from Douglas–Peucker (the collinear
junction-drop B and D both hit — simplify between junctions, never through them);
(ii) join fragments within a snap/mid-edge-split tolerance (D measured 9 islands <10 m,
20 <30 m — pick the tolerance and defend it); (iii) cull remaining islands unless they
hold a shop — a stranded shop is always either connected (nearest-edge connector) or
explicitly dropped with a count in
norm.dropped. Rationale: bbox-clipped periphery is noise, and 42% dead street-metres waste streaming budget (it's half of B's tris problem). b. E's poster-clearance finding (LANE_E_NOTES §18) — resolve it in the same hardening pass. c. Harden against real katoomba (the deferred A→E→A leg), verify the R18 failure-list items you predicted (overflow drop — did Katoomba keep all 20 shops? crossing-without- shared-node — did any survive into the graph?), pinkatoomba_real's real-roads golden, and fire the handshake. d. Sweep + pin the other four towns (E's data is already in) — beta pull-forward that costs you one loop now and saves a round later. Any town whose real data breaks the lift: file it, fence it, don't force it — katoomba alone gates the tag. - F — B's
BIG_CITYfix + the alpha gate (last). a. The one-liner is yours (index.html): extend the heuristic to the graph —plan.shops.length > 120 || (plan.streets?.edges?.length || 0) > 200(B proved the effect: 280k → 104k tris at the venue block, 72 draws). Land it early so D/B re-measures see it. b. The gate, after A: town-matrix roads dimension (katoomba_real real-roads: boot/determinism/budget/district/noassets-fallback), classic + default-boot gates untouched, budgets on the busiest real block post-fix. c. The money shot: an uncommitteddocs/shots/v4_alpha/katoomba_mainstreet.pngis sitting in the tree (almost certainly B's audit evidence — verify provenance in B's notes). Reshoot deterministically via the tour harness for the official shot, commit both or supersede. d. Docs (README "real towns" paragraph, LANE_F_NOTES §18/§19 honest record incl. why F correctly didn't run in R18), tagv4.0-alpha, push (standing authorization). - D — re-measure after A's connectivity pass. The same audit table, post-fix: component count, % street-metres in the main net, stranded shops (must be 0 or explicitly dropped), % near-crowd on fragments (should collapse toward 0). One table, one verdict line. Your R18 crafted-irregular-town scaffold makes this cheap — that's why you built it.
- B — the town selector (beta pull-forward, NON-blocking for the tag). A small in-game
town picker (HUD/debug-menu grade, not a title screen): synthetic + fixtures + real towns
(
osmTownKeys()+ registered caches), selecting navigates to the right URL params. Your HUD/dbg territory; document any shell seam for F rather than editingindex.html(F owns it). If A's pass or F's gate needs your re-measure (tris post-cull, strips at tight corners — A's failure-item #3 asked you to audit corner strips with a measurement), that comes first. - C — on-call. Your alpha work is done (20/20). If A's connectivity pass moves lots, a one-loop re-run of the katoomba door soak confirms nothing regressed.
- E — on-call. Re-emit caches only if A's junction handling needs different data (e.g. pre-DP full geometry is already shipped — likely nothing). Your data discipline this epoch has been faultless; nothing else asked.
Laws
Charter laws (V4_REAL_MAP.md) unchanged. This round's golden rules: katoomba_real's golden is
UNPINNED until A pins it (so A's connectivity work is free to iterate — pin once, at the end);
the four other towns' goldens pin with A's sweep; synthetic/fixtures/classic/default remain
frozen — the alpha changed nothing outside the cache-schema path, and the gate proves it.
Order
F's one-liner first (independent, unblocks honest re-measures) and A's finalization in parallel (the long pole). Then D re-measures, C spot-confirms, B's selector rides alongside. F gates last once A pins and D confirms. Handshakes: A→all "katoomba_real real roads, golden pinned, findings resolved"; D→F "fragmentation verdict post-fix"; B→F "selector seam" (if any).
Standing
- John — nothing blocks this round. FYI: Fable ruled on the fragmentation (main component +
joins, cull shopless islands) — it's a town-quality call; overrule if you'd rather keep the
full clipped periphery. The tag lands as
v4.0-alphaat close. - v4.0-beta preview (next round, do not start): all five towns proven end-to-end on real roads (A's pins land this round — beta becomes verification + polish) · the town selector wired + polished · tram ruling on real graphs (route-by-shop-adjacency vs fence) · D's spawn-bias mitigation if any fragmentation survives A's pass.
- Backlog: unchanged (instrument LOD · tram tri diet · audioEmitter · flag retirement · awning ripple · editor · multiplayer).