PROCITY/docs/LANES/ROUND21_INSTRUCTIONS.md
2026-07-16 20:14:39 +10:00

92 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 36× 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 (~1525 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 §2021 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.