qa.sh --strict: 18 passed · 0 failed · 0 warn · 0 skipped. selfcheck 157,647/157,647, fingerprint 0x5f76e76 unmoved. No tag — John's playtest session rules the epoch. THE FIVE ASKS. [C] wardrobe wired via exported WARDROBE_BASE + stockBaseFor(shop), preloaded inside the existing STOCK_REAL gate: ON under ?stock=real (52 pack items, 69 garment ids on rendered meshes, 1 atlas, exactly 2 requests) and CHEAPER (59->55 draws, 111->100 textures); OFF is what ships by default, A/B'd against a reverted control tree — default arm identical on every counter (160 URLs same hash, 131/18,018 street, 59/28,505 interior). [D] three gates wired (r41_shots.py writes to TMPDIR so gate runs never rewrite committed shots). [E] clips_verify wired — 46 clips / 6 groups / 3,498,124 B. [B's bookmark finding] CONFIRMED AND WIDER: street_noon, shopfront_detail, crossroads_busy AND market_square all give 3 distinct hashes across 3 boots; only night_neon is stable. RULING: no gate pins a screenshot byte-hash on any bookmark — everything R41 asserts is a counter. Filed to B: one await document.fonts.ready in buildings.js. [C's drawSweep] CONFIRMED INDEPENDENTLY with F's own sweep (never calls C's): GLB-on worst 123 @ dept/auto. The phantom control (one stale room left in scene) reads 197 — +74 on every reading — decomposing R39/R40's '188' as 116 real + ~72 phantom. NEW GATES, controls demonstrated. r41_denylist.mjs (ruling 3): 738 files / 197.3 MiB scanned by path AND bytes, 7 banned names, 0 hits; the control plants a banned manifest row every run -> RED on 2 names -> removed -> GREEN. r41_integration.py: wardrobe both arms · interior <=350 on both instruments · ?noassets=1 zero across six fetch classes over a 3-shop walk (control fetches 5/6) · ?clips=0 142 URLs and ?classic=1 125 URLs with zero R41 cargo. BUDGETS. Street: noon 282 · NIGHT 291/120,093 — margin 9, INTACT · classic 269 byte-exact · ?clips=0 NIGHT 291, delta 0. No lane spent a street draw. Interior: true pre-R41 116, R41 123 @ dept/auto, margin 227; over 33 real shops worst 110; pub 49 quiet / 77 gig night. FILED BACK: flags_check's _enter_record_shop went RED on 8 smokes because §41.4's bins put every one of the first six record-shop counters inside 2.6 m — widened to the whole open set, verified not a game defect. smoke_djdance read _actions[0] and D's per-instance clip swapping made the mixer multi-action, so a healthy dancer was called a stall — now follows the clip by name. D's r41_shots.py browse arm is deterministically red here (re-enters the winner after a ~3 s/candidate scan, by which time the occupant has left) — wired WARN-level with the reason at the call site, fix handed to D. F's own r39_transmission.py had an unmeasured 30 s goto default that flaked once under a full strict run; pinned to 90 s. 11 proof frames in docs/shots/laneF_r41/ with sidecars: street_postures (5 rigs, 3 clips playing) against its ?clips=0 control (1 clip) · street_lean · browse_interior · pub_furnished + the honest kit before/after pair · record_dj_booth · opshop_wardrobe on/off · credits_panel with ODbL on screen. Every humanoid frame carries its R10 human-sized line. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
26 lines
2.7 KiB
Markdown
26 lines
2.7 KiB
Markdown
# R41 §41.6 — the proof tour (Lane F)
|
||
|
||
Regenerate: `tools/.venv/bin/python tools/qa/r41_tour.py` (seed 20261990, fresh headless context per
|
||
frame, own no-store server, 1280×720). Every camera is derived from where the thing actually is and
|
||
then the frame is checked for what is actually in it; every frame with a humanoid carries the R10
|
||
human-sized line in its `.txt` sidecar (stature feet→crown off the **posed** skeleton, as a ratio of
|
||
that citizen's own nominal height — fails on a giant >2.0 m or a fold <55%, never on an absolute
|
||
seated band).
|
||
|
||
**These are EVIDENCE, not goldens.** No R41 gate pins a screenshot hash: measured on this tree,
|
||
4 of the 5 classic bookmarks are not byte-reproducible across boots (see `F-progress.md` § Round 41,
|
||
ask 4). Everything asserted is a counter — draws, tris, fetch surface, item ids, texture URLs,
|
||
stature — and every counter in these captions is reproducible.
|
||
|
||
| frame | what it proves |
|
||
|---|---|
|
||
| `street_postures.jpg` | D's §41.3 headline: 5 rigs, **3 distinct clips actually playing** (`Walk`, `walk_shopping_bag`, `sit_impatient`), a citizen on a real Lane B bench. 173 draws of ≤300. |
|
||
| `street_postures_clips0.jpg` | **the control** — the same seed, the same camera, `?clips=0`: 4 rigs, **1 clip** (`Walk`), clip bank 0/0/0 B. This is R40's street. |
|
||
| `street_lean.jpg` | the third new street state: a citizen on `lean_wall_leg_up` against a shopfront + 4 walkers. |
|
||
| `browse_interior.jpg` | a browser at a Lane C browse point on `browse_hold_idle` — holding something, not standing to attention — with the keeper on his own seeded idle. |
|
||
| `pub_furnished.jpg` | the hero: the pub on gig night. The band and the crowd are the R13 gig layer, **not** R41 cargo — which is why the fittings claim is measured in the pair below and not here. |
|
||
| `pub_kit_after.jpg` / `pub_kit_before.jpg` | the honest A/B: same pub, same seed, same camera, 18:30 so no gig crowd on either arm. `noKit:true` drops exactly the R41 specs: **13 → 8 fittings, 49 → 38 draws, 49,708 → 6,948 tris**. |
|
||
| `record_dj_booth.jpg` | the rigged DJ booth: `deck_1200_rigged` (platter + tonearm) and `mixer_ttm54i_rigged` on the booth bench. Placed and contract-recorded; nothing drives them (C §41.4-7). |
|
||
| `opshop_wardrobe.jpg` / `opshop_wardrobe_off.jpg` | the wardrobe pair: same shop, same camera. ON = 52 named 1990s Australian garments off ONE 246 KB atlas, 69 on rendered meshes. OFF = the procedural canvas, **which is what ships by default** (`?stock=real` is opt-in). |
|
||
| `credits_panel.jpg` | Lane B's §41.5 surface on an OSM boot: the HUD link reads `© OpenStreetMap contributors · credits (F2)` and the panel prints the ODbL credit verbatim. |
|