diff --git a/docs/LANES/ROUND37_INSTRUCTIONS.md b/docs/LANES/ROUND37_INSTRUCTIONS.md index 48fe47b..739e0a3 100644 --- a/docs/LANES/ROUND37_INSTRUCTIONS.md +++ b/docs/LANES/ROUND37_INSTRUCTIONS.md @@ -107,6 +107,42 @@ starts to fork, the fence comes down and classic takes the footpath. *John may overrule; it is a one-token change (drop `!classic`), and B has proven both sides render identically to their intended baselines.* +## FABLE'S SECOND MID-ROUND RULING — CLASSIC'S POST-v2 FETCH DELTA (F's escalation, §0.5) + +F built the allow-list by deriving it from the **v2.0 tag at gate time** rather than from my +brief's literal ("four depot GLBs + same-origin"), and was right to: my shape **would have gone +green straight through the R36 breach**, because `models/peds/woman_dj_01.glb` is same-origin. +Deriving from `git ls-tree v2.0` enumerates the covenanted 21 ped files where today's directory +holds 32. That is the correct mechanism and it stands. + +Doing it, F measured a **+6 file delta** between the real v2.0 tree's wire and today's +`?classic=1`, and refused to improvise a verdict on a six-epoch-old fact. **RULED:** + +- **The 5 audio files (R11, `f7dd44f`): RATIFIED as baseline.** The covenant preserves "the + exact v2 town", and **v2.1 was v2's final tagged state** — audio shipped inside v2, so + classic fetching it is classic being correct, exactly as the four furniture GLBs are. +- **`assets/towns/index.json` (R20/R21): NOT baseline — carried as a NAMED, PRINTED exception, + not silently.** It is v4 selector machinery in a v2 museum. It changes nothing about the + classic town (a UI list, no geometry, no identity, no seeded draw), so it is not the R36 + species and it does not get gated in a floor round. It goes on the allow-list **labelled as a + post-v2 exception** so it can never read as baseline. +- **Filed to the v8 debt ledger, for R38 or later:** *should `?classic=1` show the town selector + at all?* In v2 there was no selector (it landed R19). Hiding it under classic would retire the + exception at the source and cost one branch — but it is a question about what classic *means*, + which is a design ruling, not a leak to plug mid-round. + +**Also ratified from F's report:** the budget of record is **292 draws / 124,793 tris** (the +280-vs-191 split was **camera bearing** — 110 draws of spread, the audit took `DBG.teleport`'s +default yaw 0 which is the worst bearing, the spike took a travel-facing yaw; both correct, +different quantities). My "viewport is the variable" hypothesis was **disproven** — F ran +1280×720 vs 2560×1440 with everything else fixed and got byte-identical counts; three's culling +is frustum-shaped, not pixel-shaped. Shared instance cap: **256**, binding companions ≤24 +tris/instance and proximity-first spending. **Margin is 8 draws, not twenty.** + +**Filed, not fixed (R38+):** `?r=3` on the default town measures **307 draws** — an ungated +override that breaches the ≤300 law, with no gate covering it. Documented in the README as a +diagnostic, not a supported boot; whether `?r=` gets clamped is a later ruling. + ## Standing - John's three rulings are made; nothing in this round needs him. diff --git a/docs/REVIEW_CITY_PATTERNS.md b/docs/REVIEW_CITY_PATTERNS.md index 7c70be4..5ede237 100644 --- a/docs/REVIEW_CITY_PATTERNS.md +++ b/docs/REVIEW_CITY_PATTERNS.md @@ -22,7 +22,7 @@ The visible cost of that, today, on the boot every player gets: **all 14 gig pos Every street-side content idea in this review — a bus stop with a real platform, a vendor pitched on a verge, a dog on a nature strip, a parked car at a kerb — collides with this before it collides with anything else. **The highest-leverage change available is not new content. It is deciding where the kerb is.** It costs about twenty lines and zero draws. -**Two corrections to house folklore, both measured.** First: the draw budget. The "~131 draws / ~185 worst street view, roughly 100+ draws of headroom" figure is a *teleport-to-bookmark* number and it does not survive a walk. Walked in 8m steps down the main spine, the default boot peaks at **280 draws of 300**. The real margin is about twenty. Triangles, however, are wide open — 99k–124k of 200k, with the two independent measurement sessions disagreeing enough that the tri baseline needs a re-pin. **Spend triangles, not draws.** A town-wide single `InstancedMesh` costs 1 draw regardless of population (venue.js runs 381 light pools that way, verified); a new per-chunk instanced type costs +1 draw × up to 31 live chunks. +**Two corrections to house folklore, both measured.** First: the draw budget. The "~131 draws / ~185 worst street view, roughly 100+ draws of headroom" figure is a *teleport-to-bookmark* number and it does not survive a walk. Walked in 8m steps down the main spine, the default boot peaks at **280 draws of 300** *(R37 re-measured and PINNED it at **292 draws / 124,793 tris**; the 280-vs-191 split was camera bearing, not method — see LANE_F_NOTES §37)*. The real margin is about twenty. Triangles, however, are wide open — 99k–124k of 200k, with the two independent measurement sessions disagreeing enough that the tri baseline needs a re-pin. **Spend triangles, not draws.** A town-wide single `InstancedMesh` costs 1 draw regardless of population (venue.js runs 381 light pools that way, verified); a new per-chunk instanced type costs +1 draw × up to 31 live chunks. Second, and larger: **all 21 real towns are 100% `use:'shop'` lots with exactly one district, `mainstreet`.** No house lots, no yard lots, no stall lots, no market block, no residential backstreets. The town the design language describes — the market square, the backstreets, the yards — exists on precisely one town: the synthetic one, which is also the classic one. This kills or halves a third of what was proposed, and it is the most important strategic finding in the packet. diff --git a/docs/THE_FRONTIER.md b/docs/THE_FRONTIER.md index 927fcb7..5250b9a 100644 --- a/docs/THE_FRONTIER.md +++ b/docs/THE_FRONTIER.md @@ -142,7 +142,7 @@ Candidates, ranked by honest cost: A 16-agent top-down review (5 lane cartographers · asset-capability audit · design research · 4 design themes × adversarial verify · synthesis) measured this shelf against the code and corrected several of its assumptions. **Read that review before charting anything below.** -Headlines that change this document: the draw budget of record is **280/300 walked**, not the +Headlines that change this document: the draw budget of record is **292/300 walked** (R37-pinned; 280 was the same measurement at a coarser step), not the ~131 bookmark figure (spend TRIS, not draws) · **all 21 real towns are 100% `use:'shop'` lots with one district** — every residential/market/yard idea here is synthetic-town-only until the civic-layer fetch lands, which promotes the civic layer from "nice" to **the strategic v9** · diff --git a/docs/V8_SOMEONE_LIVES_HERE.md b/docs/V8_SOMEONE_LIVES_HERE.md index 5a349a9..8f80de9 100644 --- a/docs/V8_SOMEONE_LIVES_HERE.md +++ b/docs/V8_SOMEONE_LIVES_HERE.md @@ -127,10 +127,12 @@ the baseline the covenant preserves. The hazard is real; the breach is not.)* **WAVE 0 — THE FLOOR** *(one round, three lanes, all micro, must precede content)* 0.1 the kerb ruling landed as code + the `?verge=0` control · 0.2 repair `smoke_tram` (it asserts one thing, prints a SKIP when absent, and **passes on the fenced path** — a live -vacuous-gate violation inside our own suite) · **0.3 SETTLE THE BUDGET OF RECORD — now the -round's FIRST job**: two independent measurements disagree (280/300 walked vs 191 default / -167 classic by teleport-walk), so nothing spends against a number nobody can reproduce; walk -it on a real GPU, re-pin, and settle ONE shared instance cap while you are there · 0.4 wire +vacuous-gate violation inside our own suite) · **0.3 SETTLE THE BUDGET OF RECORD — DONE (R37)**: the 280-vs-191 split was the CAMERA +BEARING (110 draws of spread; the audit took `DBG.teleport`'s default yaw 0 = the worst +bearing, the spike supplied a travel-facing yaw = mid-range — both correct, different +quantities). **PINNED: 292 draws / 124,793 tris**, worst-draw and worst-tri on DIFFERENT +frames, 8 draws of margin. Shared instance cap **256**, with ≤24 tris/instance and +proximity-first spending · 0.4 wire `ctx.onChunkBuilt`/`onChunkDisposed` (producer and consumer both shipped since R3, never connected) · **0.5 give `classic_regression` a network allow-list** (the four v2-era depot GLBs + same-origin) — it currently makes no network assertion at all, which is why the R36