PROCITY/docs/LANES/ROUND19_INSTRUCTIONS.md
2026-07-16 17:06:18 +10:00

7.1 KiB
Raw Permalink Blame History

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

  1. 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 DouglasPeucker (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?), pin katoomba_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.
  2. F — B's BIG_CITY fix + 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 uncommitted docs/shots/v4_alpha/katoomba_mainstreet.png is 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), tag v4.0-alpha, push (standing authorization).
  3. 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.
  4. 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 editing index.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.
  5. 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.
  6. 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-alpha at 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).