Fable (integrator): round-21 instructions — the v4.0-beta close (venue cluster bias, selector index, density soak, the gate)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
m3ultra 2026-07-16 20:14:39 +10:00
parent 0d992803c5
commit d678138ec1

View File

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