Fable (integrator): round-17 instructions — v3.2 the tail + the real-map scout
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9277238462
commit
2ce1b9a640
137
docs/LANES/ROUND17_INSTRUCTIONS.md
Normal file
137
docs/LANES/ROUND17_INSTRUCTIONS.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# PROCITY — Round 17 lane instructions (from Fable, integrator)
|
||||||
|
|
||||||
|
Date: 2026-07-16 · **v3.1 SHIPPED** — THE FLIP is live on origin (`9277238`, tag `v3.1`). The
|
||||||
|
default boot is the full town: gigs + weather + winmap + tram, the seated drummer, town-wide
|
||||||
|
pools, `?classic=1` as the frozen covenant (`0x3fa36874`), default pinned to gig golden
|
||||||
|
`0xb1d48ea1`. Default-boot budgets have huge margin (worst street view 185 draws / 131k tris).
|
||||||
|
|
||||||
|
**R16 review — two lanes overrode the brief with evidence, and both were right.** D proved my
|
||||||
|
prescribed `_rotWithHips` mangles these rigs (bind-pose Hips mismatch — the exact failure
|
||||||
|
`_rotOnly`'s comment documents) and shipped the honest alternative (opt-in seated foot-replant,
|
||||||
|
byte-identical proof for every existing consumer). A proved the corner-poster "nudge" was
|
||||||
|
geometrically impossible (0/187 slides recover clearance — the crossing edge is parallel to the
|
||||||
|
facade) and fixed the root cause in `pickVenues` instead (0/851 posters below the floor across
|
||||||
|
400 seeds). This is the standard: **the brief is a hypothesis; the measurement wins.** B absorbed
|
||||||
|
the order inversion correctly (explicit all-flags URLs as the stand-in default), E's clip work was
|
||||||
|
exemplary (mesh-stripped, licence-zoned, 195/195 bind), C's backline handoff matched D's pose to
|
||||||
|
the millimetre. v3.1 was the cleanest epoch close yet.
|
||||||
|
|
||||||
|
Round 17 is **v3.2: THE TAIL + THE SCOUT** — drain the deferred-polish ledger (each item small,
|
||||||
|
each named for rounds), and run bounded groundwork for the next epoch so John can charter v4 on
|
||||||
|
evidence instead of promises. Tag **`v3.2`** at close.
|
||||||
|
|
||||||
|
## Where v4 stands (Fable's assessment — John picks, see Standing)
|
||||||
|
|
||||||
|
The V2_IDEAS parking lot has three surviving epoch-scale candidates (dig/real-stock ALREADY
|
||||||
|
SHIPPED in v2 — the README flags table, not the round ledgers, is the source of truth for what's
|
||||||
|
live): **the real map** (thriftgod `build_city()` route — Overpass → ~2,918 real AU shops → real
|
||||||
|
geography through the same CityPlan contract), **the in-game editor** (seeded-everything +
|
||||||
|
override tables), and **multiplayer presence**. My recommendation is **THE REAL MAP**: it's the
|
||||||
|
most PROCITY-native (the generator eating real geography), it has a proven reference
|
||||||
|
implementation and a proven consumer (`?plansrc=osm` + three fixtures incl. A's silverton), and it
|
||||||
|
composes with everything shipped — venues, citizens, interiors, and the dig all hang off the plan
|
||||||
|
contract and never change. R17 scouts it with real data (A+E below); the full charter is R18,
|
||||||
|
after John sees a real town boot.
|
||||||
|
|
||||||
|
## The ledger
|
||||||
|
|
||||||
|
1. **Drummer pelvic-lean pass (D — the R16 honest limit).** The upright bent-leg sit reads stiff
|
||||||
|
from side/overhead angles. A manual pelvic-lean on top of the played clip (a small constant
|
||||||
|
Spine/Hips lean applied post-mix for seated figs only, or a hand-keyed additive — D's call).
|
||||||
|
Same byte-identical discipline: seated-only path, standing untouched.
|
||||||
|
2. **Bench-sit loiter (D — the carried R16 stretch).** Same `sit.glb`, the sim loiter hook has
|
||||||
|
waited since v1: street peds occasionally sit at benches/verandah steps (seeded choice, seeded
|
||||||
|
duration, the seated re-plant + `procitySeated` tag already exist). Budget/determinism stated;
|
||||||
|
classic boot untouched (clip fetch is already `!CLASSIC`-gated).
|
||||||
|
3. **Backline render confirmation (C — close the R16 pending line).** C's verify of D's wired GLB
|
||||||
|
at `backline[0]` was "pending D's R16 commit"; D landed. One render pass per archetype
|
||||||
|
(pub/band_room/rsl), confirm no interpenetration at the measured clearances, one line in your
|
||||||
|
notes. The handshake closes.
|
||||||
|
4. **`publish.py --verify` false drift (E).** `sit.glb` (like `vintage-cash-register.glb`) is
|
||||||
|
non-`procity_`-prefixed, so the drift filter reports it "not live" when it IS live. Teach the
|
||||||
|
verifier the published-name list instead of the prefix heuristic — it bites every future clip.
|
||||||
|
5. **Wind sway (B — parked since R7; ship it or kill it).** The one missing weather element now
|
||||||
|
that weather is default-on. Vertex-shader sway on trees/awnings, weather-driven (calm → rain
|
||||||
|
gusts). It touches shared materials — the reason it's been parked; coordinate the material
|
||||||
|
seam with C/E only if actually needed (trees/awnings are B-built street geometry — verify
|
||||||
|
first, it may be entirely yours). `?classic=1` must stay byte-identical (weather is off there);
|
||||||
|
`?weather=0` sways nothing. If a real cross-lane material conflict surfaces, write it up and
|
||||||
|
KILL the item permanently instead — either way it leaves the backlog this round.
|
||||||
|
6. **The real-map scout (A + E — bounded, data-first, NO new game systems).**
|
||||||
|
- **E**: port thriftgod's `build_city()` Overpass route into `pipeline/build_towns.py` →
|
||||||
|
produce **3–5 real AU town caches** (`city_source.json`-shaped; Katoomba-real should be one,
|
||||||
|
for the fixture comparison) with the dedupe/suburb/parody-name/seeded-hours pipeline.
|
||||||
|
Committed as data under `web/assets/towns/` (or A's preferred home). **Provenance: OSM is
|
||||||
|
ODbL — attribution ships with the data** (a `SOURCES.md` + an in-repo notice; you own the
|
||||||
|
licence table). Overpass fetch is outward-facing network — John OK'd the scout (Standing),
|
||||||
|
cache aggressively, hit the API once per town.
|
||||||
|
- **A**: define/pin the cache contract (E builds to it), feed the real caches through
|
||||||
|
`plan_osm` — real towns are messier than fixtures (dead ends, no spine, odd densities);
|
||||||
|
harden until all 3–5 boot with valid plans + district placement. Pin a golden per real town;
|
||||||
|
add them to the sweep. **Scope fence: no new plan features** — the scout proves the existing
|
||||||
|
contract eats real data, nothing more.
|
||||||
|
7. **Town-matrix smoke (F).** The gate side of the scout: run the core smokes (boot, determinism,
|
||||||
|
budgets, district placement, `?noassets`) across the full town matrix — synthetic hero seeds +
|
||||||
|
3 fixtures + E's real caches. One table in your notes: town × gate. This is the evidence John
|
||||||
|
charters v4 on.
|
||||||
|
|
||||||
|
Parked still (v3.3+/v4 backlog): instrument `_lo` LOD · tram_stop close-ped tri diet ·
|
||||||
|
`audioEmitter` · flag retirement (classic keeps soaking) · the editor · multiplayer presence.
|
||||||
|
|
||||||
|
## Lane A — the cache contract + real towns through the plan (ledger #6)
|
||||||
|
|
||||||
|
Publish the contract FIRST (half-day rule — E builds the pipeline against it; you own what
|
||||||
|
`plan_osm` accepts). Then harden against E's real caches as they land, pin per-town goldens,
|
||||||
|
extend the sweep. Report the ugliest real-geometry failure you had to absorb — that list is the
|
||||||
|
v4 charter's risk section.
|
||||||
|
|
||||||
|
## Lane B — wind sway ships or dies (ledger #5)
|
||||||
|
|
||||||
|
Weather-driven vertex sway, classic/weather-off byte-identical, budget stated (it's a shader —
|
||||||
|
expect ~0 draws). If shared-material reality kills it, the kill write-up is a full deliverable —
|
||||||
|
name the exact conflict so it never haunts the backlog again.
|
||||||
|
|
||||||
|
## Lane C — close the backline handshake (ledger #3)
|
||||||
|
|
||||||
|
One render pass, three archetypes, one note line. Then on-call (A may want interior sanity checks
|
||||||
|
on real-town shop types — your registry fallbacks should already cover unknown types; confirm if
|
||||||
|
asked).
|
||||||
|
|
||||||
|
## Lane D — the drummer's dignity + the bench (ledger #1, #2)
|
||||||
|
|
||||||
|
Pelvic-lean first (small, contained), bench-sit second. Both ride existing seams (`sit.glb`,
|
||||||
|
seated re-plant, loiter hook, `procitySeated`). Byte-identical proofs as R16 — the parallel-path
|
||||||
|
discipline is now your signature; keep it.
|
||||||
|
|
||||||
|
## Lane E — the town pipeline + the verify fix (ledger #4, #6)
|
||||||
|
|
||||||
|
The scout pipeline is the round's biggest single item — data discipline over cleverness: cache the
|
||||||
|
Overpass responses raw (re-runs must not re-fetch), ODbL attribution in-repo, parody names through
|
||||||
|
the existing generator, provenance table amended (v3.2 marker). The verify fix is a warm-up.
|
||||||
|
|
||||||
|
## Lane F — the matrix + the close (ledger #7)
|
||||||
|
|
||||||
|
1. Town-matrix smoke across synthetic + fixtures + real caches (after A/E land).
|
||||||
|
2. Round close: `qa.sh --strict --soak` green on the default boot, bookmark spot-check (B's sway
|
||||||
|
is in old frames now), docs (README flags table if `?weather` semantics grew a sway note,
|
||||||
|
LANE_F_NOTES §17), tag **`v3.2`**, push main + tag (standing authorization).
|
||||||
|
|
||||||
|
## Order
|
||||||
|
|
||||||
|
**A publishes the cache contract first**; E's pipeline + B/C/D tail items run in parallel (all
|
||||||
|
disjoint); A hardens as E's caches land; **F last** (matrix needs A+E; close needs everyone).
|
||||||
|
Handshakes: A→E the contract; E→A each cache as it lands; D→C n/a this round; B→F "sway shipped"
|
||||||
|
or "sway killed"; A+E→F "matrix inputs ready".
|
||||||
|
|
||||||
|
## Standing
|
||||||
|
|
||||||
|
- **John — one decision + one authorization:**
|
||||||
|
1. **v4 headline** (decide by R18, not needed for this round): Fable recommends **THE REAL MAP**
|
||||||
|
(real AU towns through the existing plan contract). Alternatives: the in-game editor +
|
||||||
|
override layer, or multiplayer presence. R17's scout gives you a real town booted in the
|
||||||
|
engine to judge by — say the word at R18 kickoff.
|
||||||
|
2. **Overpass fetch OK** (this round, blocks E's ledger #6): the scout hits the public Overpass
|
||||||
|
API a handful of times (once per town, cached raw thereafter) — outward-facing network, so
|
||||||
|
flag it now: silence = OK, veto before E starts if not.
|
||||||
|
- **v3.3+/v4 backlog:** instrument LOD · tram tri diet · audioEmitter · flag retirement · the two
|
||||||
|
unpicked v4 candidates.
|
||||||
Loading…
Reference in New Issue
Block a user