PROCITY/docs/LANES/ROUND20_INSTRUCTIONS.md
2026-07-16 18:13:05 +10:00

7.3 KiB
Raw Blame History

PROCITY — Round 20 lane instructions (from Fable, integrator)

Date: 2026-07-16 · v4.0-alpha SHIPPED (tag on origin, ddd1e68). The alpha close was textbook: A's junction-protected DouglasPeucker + bridge/cull took Katoomba from 105 components → 1 (100% street-metres connected, 0 silently-stranded shops — every drop counted), D re-measured with the R18 harness and confirmed the ruling landed clean (near-crowd on fragments: ~10% → 0%), F landed B's BIG_CITY one-liner early exactly as ordered (280k → 12k tris in play) and gated the close, B shipped the town selector with zero shell seam (hud.js owns it end-to-end) plus the corner-strip spot-check, C re-soaked 19/19 doors, E stayed cleanly on-call. The money shot is the epoch thesis made real: Katoomba's actual main street — asphalt, zebra crossing, walking crowd, gig posters, PROCITY's look on real bones. All five real-town goldens are pinned.

Round 20 is v4.0-beta: THE FIVE TOWNS — the two honest alpha findings become the beta's headline (density), the tram gets its ruling, and every real town is proven end-to-end. Tag v4.0-beta at close.

The two filed findings that shape this round

  1. Poster density scales with edges, not shops (A's R19 finding + F's one open budget edge): real Katoomba emits 438 posters (~14 on synthetic), which reads busy and drives the one matrix breach — venue_night at 200,965 tris (+0.5% over the 200k soft ceiling). In-play views are fine (121k); this is the stress view.
  2. Real towns are sparse (F's density note): 19 secondhand shops spread across a whole real town ⇒ a real street with life on it, not a retail strip. The vision says "walk the actual main street" — main streets have bakeries, cafes, chemists, clothes shops. We fetch only the thriftgod heritage classes.

The ledger

  1. Poster cap (A). Cap spine posters per real town — seeded subsample of the pole run, scaled by shop count not edge count (you own the number; ~23× the synthetic feel is the target, not 438). Real-town goldens re-pin (amendment law, one commit); synthetic + gig frozen. This closes F's venue_night edge — tell F to re-measure.
  2. THE DENSITY WIDENING (the beta headline — C rules, E fetches, A absorbs). Fable's ruling (John veto in Standing): real towns fetch general retail, not just secondhand — the main street should hold its real bakery, cafe, chemist, newsagent, clothes shops. Mechanics:
    • C publishes FIRST: the OSM-class → registry-archetype mapping table (e.g. cafe/bakery → milkbar, pharmacy/newsagent/clothes → retail/opshop flavors — C owns which existing archetype each class wears; no new archetypes this round, the mapping is the deliverable; your R18 proof says unknowns degrade safely anyway). Publish in LANE_C_PUB (v4-beta marker).
    • E re-fetches with the widened shop=* class list (same bbox, raw-cached, one more Overpass pass per town under the standing authorization), maps per C's table, re-emits the five caches (v2, deterministic) + web/assets/towns/index.json (key, town, state, shop count, roads flag) so B's selector stops hardcoding REAL_TOWNS.
    • A absorbs the density: five towns re-run at 36× shop count — seating capacity, overflow accounting (norm.dropped stays honest), venue placement still lands, goldens re-pin once at the end. If a town's real density overwhelms an edge, widen capacity or split runs — your R18 overflow fence, now load-tested.
  3. The tram ruling (B). Alpha left the tram on an arbitrary longest-chain (21% of mains). Beta ruling: route by shop adjacency — pick the main chain whose edges front the most shops (the actual high street; on synthetic towns this must resolve to the current spine so the goldens/feel don't move). If the shop-adjacent chain reads wrong on any real town, fence the tram per-town instead (the edges > 200 signal you left ready) and say which towns run it.
  4. Ground polish at real intersections (B). The R19 spot-check accepted overlap-fill; now the finer pass: acute-angle junctions and z-fighting at the 58 degree-4 intersections. Fix what's cheap, file what's structural (A's lot geometry) with measurements.
  5. Selector polish (B + F). Derive towns from E's index.json (drop the hardcode); F rules the gating (always-on HUD vs ?dbg) at close — F's call, one line either way.
  6. Interiors across the five (C). After E's widened caches land: sampled door-soak per town (the R18/R19 harness — every town, sampled doors at the new density, all types resolve, no carve fails, budgets). One table, five rows.
  7. Citizens at density (D). Re-run the R18 audit on the densest post-widening town: patronage at 36× targets, chunk rosters, determinism, identity — and the gig crowd on all five towns' venues (the district gate covers placement; you cover behaviour). Cheap by design — your scaffolds exist. File anything that leaks with measurements.
  8. The beta gate (F, last). Full five-town matrix on real roads (boot/determinism/budget/ district/noassets/roads per town), the venue_night re-measure post-poster-cap (the +965 edge must close), classic + default gates frozen as ever, selector gating ruling, beta money shot (the densest real main street at golden hour — the retail strip reading), docs (README beta paragraph, notes §20), tag v4.0-beta, push (standing authorization).

Laws

Charter (V4_REAL_MAP.md) unchanged. Golden discipline this round: real-town goldens re-pin twice at most (A's poster cap; A's density absorb — batch them if the timing allows), each under the amendment law; synthetic 0x3fa36874, gig 0xb1d48ea1, fixtures — frozen. E's caches stay deterministic (same raw → same cache); the widened fetch is a NEW raw snapshot, committed like the first. Budgets unchanged and now measured at real density — if the widened towns bust them in play (not just stress views), that's a Fable scope call, say so loudly.

Order

C's mapping table first (half-day rule — E builds to it), A's poster cap in parallel (independent). Then E (fetch + re-emit + index), then A absorbs, then B / C / D verify at density (B's tram + ground items are independent of density — start anytime). F last. Handshakes: C→E the table; E→A "caches re-emitted"; A→all "densities absorbed, goldens pinned"; B→F tram verdict + selector; C/D→F density verdicts.

Standing

  • John — one ruling to veto (kickoff): the density widening (ledger #2) — real towns will gain their real cafes, bakeries, chemists etc. as enterable shops wearing existing interior archetypes. It changes the texture of real towns from "secondhand crawl" toward "real main street" (the charter's vision). Veto or trim the class list before C/E start if you want the towns to stay pure-secondhand. FYI: tram routes by shop adjacency (B may fence per-town); the selector ships from an index; poster density gets capped.
  • v4.0 preview (next round, do not start): the curated town pack (~1525 towns through E's pipeline at scale) · the release tour on real streets · docs freeze · the v4.0 tag.
  • Backlog: instrument LOD · tram tri diet · audioEmitter · flag retirement · awning ripple · editor · multiplayer.