92 lines
6.3 KiB
Markdown
92 lines
6.3 KiB
Markdown
# PROCITY — Round 21 lane instructions (from Fable, integrator)
|
||
|
||
Date: 2026-07-16 · **R20 verdict: the density round delivered — but the beta is NOT tagged.**
|
||
What landed (all verified in notes): **A** capped posters 438→31 (+ a new `REAL_TOWN_GIG_GOLDENS`
|
||
guard) and absorbed the 3–6× densities (292 shops across five towns, drops down to 5.5% and now
|
||
counted BY CAUSE, pub facade bias extended, goldens re-pinned once); **C** published the
|
||
class→archetype mapping; **E** widened the fetch under John's SUBTLE directive — enforced by
|
||
construction (heroes never subsampled, texture capped at 3× heroes, deterministic seed-subsample,
|
||
every drop counted); **B** ruled the tram by shop adjacency (the alpha tram fronted 0 shops on 4
|
||
of 5 real towns — "it really was a highway bus"), fenced katoomba/fremantle/bendigo per the
|
||
fallback, and found+fixed the phantom-stop bug (Newtown: 149 stops → 16); **D** delivered the
|
||
density A/B — heroes kept footfall (17→19 visits) while the street got 3.8× busier — and published
|
||
a model self-correction (the sparsity null% was an artefact of measuring at 21:00 from the one
|
||
isolated venue; the record is corrected in place). Quality is at series-best.
|
||
|
||
**Open (why there's no tag):** F never ran (gate + tag), C's density door-soak (R20 ledger #6)
|
||
wasn't done, B never consumed E's `index.json` (`hud.js:11` still hardcodes `REAL_TOWNS`), and D
|
||
filed the **main-street relocation finding**: katoomba's pub sits 1,000 m from the retail cluster
|
||
(1 shop within 160 m vs the RSL's 13) — a gig with no passing crowd. Round 21 closes all of it.
|
||
Tag **`v4.0-beta`** at close.
|
||
|
||
## The ledger
|
||
|
||
1. **Venue cluster bias (A — D's relocation finding).** At real-town density, venue candidates
|
||
should prefer retail-cluster adjacency: bias `pickVenues` toward candidates with ≥N shops
|
||
within ~160 m (you own N and the weighting; keep the kind placement flavors — pub corner,
|
||
band_room fringe, rsl off-spine — as biases within the cluster-adjacent set, not absolutes).
|
||
**Synthetic + fixtures must be a no-op** (goldens frozen — the synthetic town is one dense
|
||
cluster anyway); real-town goldens re-pin ONCE (base+gig, amendment law). Acceptance: no venue
|
||
in any of the five towns sits with <3 shops in its 160 m radius unless the town genuinely has
|
||
no better candidate (castlemaine's floor may — say so if it does).
|
||
2. **Selector from the index (B — the missed R20 #5).** Drop the `hud.js:11` hardcode; fetch
|
||
E's `web/assets/towns/index.json` (fail-soft: index missing → current hardcode as fallback,
|
||
zero errors). Selector shows shop counts from the index if it's cheap. Nothing else — your
|
||
tram/ground work is done and verified.
|
||
3. **Density door-soak (C — the missed R20 #6).** The five towns at their new densities, sampled
|
||
doors per town (~25/town covers every archetype incl. the texture classes' first real
|
||
appearance — milkbar/dept/stall interiors on real shops), assert valid interiors / no carve /
|
||
budgets / types resolve per your §6 table. One table, five rows. **Run AFTER A lands** (venue
|
||
relocation changes which lots are venues).
|
||
4. **Relocation verify (D).** After A: re-run the katoomba venue-adjacency numbers (the pub
|
||
should now sit in/near the cluster; your venue-win % and the "gig with no passing crowd"
|
||
observation should improve). One before/after line per town. Your GIG_RANGE chunk-blindness
|
||
finding stays filed for v4.x (agreed — not a mid-beta hot-path change).
|
||
5. **Town-pack pull-forward (E — NON-GATING for the tag).** Begin v4.0's curated pack: propose
|
||
the candidate list (~15–25 AU towns with real secondhand density — you have the data instincts
|
||
from the first five), fetch + emit as **data-only commits** (same discipline: bounded bbox,
|
||
raw snapshots, C's mapping, SUBTLE guardrails, index.json grows). A absorbs + pins in R22 —
|
||
do NOT block the beta tag on any of it. If Overpass rate-limits at pack scale, batch politely
|
||
(sleep between towns) — the standing auth covers the fetches, courtesy covers the cadence.
|
||
6. **The beta gate (F, last).**
|
||
a. Five-town matrix at density (boot/determinism/budget/district/noassets/roads), against A's
|
||
R21 re-pinned goldens.
|
||
b. **`venue_night` re-measure** — A's poster cap must close your +965-tri edge; record the
|
||
new number.
|
||
c. Tram in the matrix: newtown + castlemaine RUN (stops sane), the three fenced towns show
|
||
no tram and no errors (B's fence signal).
|
||
d. **Selector gating ruling** (your R19 open call): always-in-HUD vs `?dbg`-gated — rule it,
|
||
one line, done.
|
||
e. Beta money shot: the densest real main street at golden hour (fremantle or katoomba
|
||
post-widening — continuous shopfronts, crowd, heroes among texture), into
|
||
`docs/shots/v4_beta/`.
|
||
f. Docs (README beta paragraph, LANE_F_NOTES §20/§21 incl. the honest why-R20-had-no-tag
|
||
record), tag **`v4.0-beta`**, push (standing authorization).
|
||
|
||
## Laws
|
||
|
||
Charter unchanged. One golden move this round (A's #1, batched base+gig, once). Synthetic
|
||
`0x3fa36874`, gig `0xb1d48ea1`, fixtures, classic — frozen. E's pack commits are data-only and
|
||
touch no golden until A absorbs them (R22).
|
||
|
||
## THE EXACT RUN ORDER (John asked)
|
||
|
||
1. **Start together: A + B + E.** (A: venue bias — the only golden-moving item, the round's
|
||
spine. B: selector-from-index — independent. E: town-pack fetches — independent, non-gating.)
|
||
2. **When A commits (goldens re-pinned): start C + D.** (C: door-soak on the relocated world.
|
||
D: relocation verify. Both read A's handshake note for the new goldens.)
|
||
3. **When C + D have committed (and B is in): start F.** (E does NOT gate F — if E's pack is
|
||
still fetching, F tags without it.)
|
||
|
||
Three waves: **[A, B, E] → [C, D] → [F].**
|
||
|
||
## Standing
|
||
|
||
- **John — nothing blocks this round.** FYI: Fable assigned D's relocation finding to A as a
|
||
cluster-adjacency bias (real towns only, synthetic untouched); E begins the v4.0 town pack
|
||
early as data-only commits. Both are course-corrections inside the chartered epoch.
|
||
- **v4.0 preview (R22, do not start beyond E's data):** A absorbs + pins the pack · the release
|
||
tour on real streets · docs freeze across lanes · the `v4.0` tag · then the epoch retro.
|
||
- **Backlog:** GIG_RANGE chunk-neighbour lookup (D, v4.x) · instrument LOD · tram tri diet ·
|
||
audioEmitter · flag retirement · awning ripple · editor · multiplayer.
|