Fable (integrator): round-20 instructions — v4.0-beta THE FIVE TOWNS (density widening, poster cap, tram ruling)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-16 18:13:05 +10:00
parent ddd1e6827e
commit 9029e4cbc5

View File

@ -0,0 +1,100 @@
# 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.