91a606a875
20 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
293a82c5e8 |
R42 THE LOOK: five lane-runs — the pub is dressed, the decks read, and the town is cast
John looked at R41's proof shots and named three faults. All three are fixed, at zero draw cost, and every lane corrected somebody's numbers on the way — including its own. E-LOOK (§42.1+§42.2a) — THE PREMISE WAS WRONG. "The pub props have no texture" (my brief, quoting E's own R41 note) is false: all 37 carry COLOR_0 and three.js renders it. The colour was BLEACHED — jukebox at saturation 0.02, 15 assets under 0.05; what the source library called colour was baked AO. So the fix was a palette imposed on colour already present, in place: 46 assets, draw delta +0 and tri delta +0 on every one, proved the honest way — the concatenated POSITION/NORMAL/TEXCOORD/index bytes are sha1-identical to R41, so footprints and origins provably did not move. (A first-pass bbox check ignored node rotations and "found" 3 phantom violations; thrown out for the byte comparison.) The banquette was 1990s office teal and went burgundy; the beer umbrella was white and went brewery green. THE DECK, diagnosed before being touched: 7 greys, chassis 0.05 luminance on a 0.033 bench = 1.21:1, and the one high-contrast feature was INSIDE-OUT (white ring around a dark disc; a turntable is a dark record on a light platter). Now Technics silver at 6.74:1, black vinyl, red start/stop. Node contract re-read from the shipped GLB: 4/4 + 1/1 PASS. Filed to R43, not fixed: deck_1200_rigged has NO PLINTH (bottom 43mm of 119mm lost to R41 join damage). E-CAST (§42.3) — 19 of 24 ship. Rejected: comical_luchador_01 (Mixamo Ch43, purple mask reading EL CHUPACABRA, identified from the file's own material name), a 3-heads-tall cartoon child, a robed wuxia elder, a WW2 infantryman — and dj_phrtt_01, AN UNCLOTHED BODY whose only texture is a bare-skin atlas, which was in the DEFAULT crowd and live on the depot. It is the R41 deny-list's failure class through a different door: an innocent name from another pipeline. Only rendering all 24 and LOOKING found it. Ruling 2 (prefer CC0) was REFUSED ON MEASUREMENT: Quaternius is 25 nodes / 23 joints and ZERO of 64 canonical tracks bind — it would have loaded silently and never animated. Replacements came from Mixamo's Ch## pool, filtered to the contract-clean 65-bone family (candidates ran 65..99 bones; named characters carry facial/hair bones). THE LICENCE GAP WAS UNREAD, NOT MISSING: every source FBX carries ApplicationVendor "Mixamo, Inc." internally. Adobe royalty-free, no attribution owed. B's amber rows are now real. B (§42.5) — MY ASSIGNED FIX WAS USELESS AND B PROVED IT. document.fonts.ready shipped, then measured: the atlas canvases are already byte-identical across boots, the game ships NO webfonts (document.fonts.size === 0), and ready fires 50ms BEFORE the first fillText. The real cause of unreproducible bookmarks is the wall-clock CROWD — 983 changed px of 921,600, ALL in the pedestrian band; 0 px with the crowd out. New DBG.freeze() takes stable bookmarks 2/5 -> 5/5. Also found: ?pop=0 boots 140 citizens (0 is falsy against the default). THE BENCH: D's filing correct on both counts. Front-vs-road 90.0deg -> 0.0deg, min=med=max over 60/60 instances; the streetlight arm now reaches 1.05m over the road where it reached 0.00. Both used a base yaw that pointed +Z down the street while their own comments claimed otherwise — the side term was already right, which is why it survived 41 rounds of reading. Also: on any box with CDN access 9 of 60 benches are the depot GLB, 90deg out from the house law — normalised at the geometry, once, at load. benchStops(plan) exported as one truth. C (§42.2b) — 122 vs 123 WAS THE CAMERA ASPECT, and nobody was wrong. Draw counts are post-frustum-cull and the sweep camera inherits the window aspect: 1.25->116, 1.60->122 (C's harness), 1.778->123 (F's), 2.37->124. Pinned MEASURE_ASPECT=16/9 with a 1.25 control. E's "keep the bench dark" advice was measured and declined with reason (deck-vs-bench was already 4.73:1, over threshold). "Reads as a black box" is a claim about pixels, so C measured pixels: near-black in the booth crop 57.5% -> 26.7%, distinct colours 228 -> 389. Bench rebuilt 3->7 boxes with an open record bay; headphones on the mixer; faceDoor aims booths at the player's entry — alignment within 45deg went 49% -> 92%. Two bugs found by looking: a fitting could be planted INSIDE A WALL (0.77m of a 0.86m half-depth in plaster), and every booth part sat 25mm sunk into its own worktop. D (§42.4) — five swaps IN PLACE at the same index (pickRig indexes these arrays and pedIndex is in the identity signature and the impostor atlas; removal would renumber the town). Identity signature pre- vs post-swap: 0 differing lines of 150 — who each citizen is did not move, only which body they wear. dj_phrtt_01 verified gone AT THE WIRE, not from source: a fresh default boot fetches 32 ped GLBs, none retired. THE CONTROL ARM FOUND A 41-ROUND-OLD BUG: the ped being RETIRED, comical_boy_01, binds only 3,132 of 3,460 tracks — six thumb bones lack the mixamorig prefix. It had been silently dropping six tracks per clip since it shipped. Testing the thing being thrown away found it. Imported B's benchStops mid-round: sitters now 0.0deg to the road, signatures byte-identical across the rewire. Corrected F's filing: the browse smoke was flaky-by-construction (a 16-25s race against a live sim), not deterministically red. F (§42.6) — qa.sh --strict 24 passed / 0 failed / 0 warn / 0 skipped. New Gate 11: period law (0/5 banned; CONTROL: R41's roster trips all five) and roster licence (24/24, 0 unverified; CONTROL: an amber row turns 20 red). r41_shots.py promoted warn -> strict. R41'S BYTE-HASH BAN IS REVERSED AND ITS STATED REASON WITHDRAWN AS WRONG. A gate may pin a hash under five in-run assertions (classic+flags boot, freeze().stillLive all-false, a second freeze removing 0 draws, settle until DBG.info() stops changing, hash with the dbg panel hidden): 5/5 bookmarks now pin to one sha256 over 3 fresh boots. Two findings got it there — the chunk streamer (a fixed settle is a bet on load) and the fps readout, which with everything else frozen was the last thing moving at 53-62 px. ?pop=0 fixed (Number.isFinite) — a no-op for 35 rounds. Three red flags_check gates fixed. Street: noon 282 · NIGHT 291/300 — the nine-draw margin INTACT, every R41 row reproducing to the digit. Interior at pinned 16:9: 123 @ dept/auto, margin 227. selfcheck 157,647/157,647, 0x5f76e76 unmoved. No tag — John's playtest rules the epoch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
d14cf7fa6e |
Lane F R41 §41.6: 18 gates green — the deny-list, the wardrobe switch, and no byte-hash goldens
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> |
||
|
|
c3384b92c9 |
Lane F R40 §40.6: the notepad — F8, the tour, and the gate that caught the harness
THE PLAYTEST HARNESS, for John's bug-hunt session. F8 anywhere drops a structured note: pos, mode, shop id+name when inside, street/locality via A's address layer, seed, town, clock segment, live flags, fps, draws — plus a screenshot and a typed one-liner (Esc cancels, Enter saves). Notes persist under the delta law (bounded, survive reload, export/import, corrupt store REJECTED WHOLE and loudly) and export as one JSON of tickets, schema documented in LANE_F_NOTES §40. Zero cost when unused; classic-gated by construction. ?bugtour=1 walks the whole game in 11 stops (N advances, each with a caption of what to look at): spawn → street_day → shop_buy → dig → opshop_bin (caption says the contents are deliberately unarmed) → gig_night → tram → rain → night → fog_map → second_town. DBG loads without ?dbg=1 so the tour is one flag. THE GATE CAUGHT THE HARNESS. The first full strict run went RED on exactly one arm — R30c classic purity, because the playtest constructor read localStorage eagerly on ?game=0. Fixed (lazy store), re-verified on the targeted smoke, and the new gate now carries its own instrumented zero-calls arm so it cannot recur. Wave-1 asks, all taken: D's door_footpath_check and B's r40_lane_b wired into qa.sh · D's index.html:433-437 door nudge now derives from buildShopfront's doorRect · A's filed D2 closed (index.html:541 uses the canonical isOpen; remaining divergent call sites listed for their owners) · README's stale ?r=N 307 row and the flags_check label that still called the town selector a debt question, both corrected. qa.sh --strict: 12 passed · 0 failed · 0 warn · 0 skipped. selfcheck 157,647/157,647, 0x5f76e76 unmoved. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
f522021765 |
Lane F R37 (v8 wave 0, 0.1 F-half): THE KERB GATE — poster clearance measured on the PAINT, and the ?verge=0 control fires at exactly 14
New STRICT smoke_kerb. Lane A's corrected selfcheck asks the plan-side question (is the poster's
offset inside vergeBand(e)[0]?) -- right for A's file, but it still reads no number that came from
Lane B, which is the precise failure that made the old gate vacuous. So F asks the runtime question,
of the paint: RAYCAST STRAIGHT DOWN AT EVERY RENDERED POSTER AND CLASSIFY THE TOPMOST GROUND HIT.
Classification is by MATERIAL IDENTITY -- skins.groundMat() is a cached factory, so the road mesh's
material IS the object groundMat('djsim-road') returns. No mesh names, no string matching, nothing
that drifts when B edits ground.js. Topmost rather than first, deliberately: B put the carriageway on
top at junctions (ROAD_Y 0 -> 0.04) so roads run through intersections, and what the player sees
under a poster is the top surface.
Six arms, all green on the final tree:
subject 14 posters rendered == 14 in plan.posters, every one within 0 m of its planned
position, read off the real venue-posters InstancedMesh matrices. Nobody had ever
asserted that the poster you see is the poster A placed. Zero posters => FAIL.
detector ctl A the centreline of the longest main (main@28 m, 137.5 m) classifies ROAD at y 0.04
detector ctl B 13 m off it (1 m inboard of the corridor edge) classifies FOOTPATH at y 0.02
THE RULING 0 of 14 posters stand on road paint -- tally {djsim-footpath: 14}
THE CONTROL the same leg under ?verge=0 FAILS at EXACTLY 14 -- tally {djsim-road: 14}.
Keyed to B's flag, never to a line number, matching A's discipline.
classic 13 m off the centreline is still ROAD under ?classic=1 and classic renders 0
posters -- Fable's CLASSIC KEEPS ITS PAINT ruling holds.
The two detector controls are the load-bearing part: "0 posters on road" is a sentence about nothing
unless the classifier is shown to say road AND footpath on the same boot.
TWO LANES, TWO INDEPENDENT METHODS, THE SAME NUMBER: A counted 14 plan-side by offset in node over
the plan; F counted 14 paint-side by raycast in the browser over B's geometry. Both flip to 0 on the
default boot.
Also lands Fable's ruling on classic's post-v2 fetch delta (
|
||
|
|
6afd1ed7a3 |
Lane F R37 (v8 wave 0, 0.3): THE BUDGET OF RECORD SETTLED — 292 draws / 124,793 tris, and the 280-vs-191 fight was about the CAMERA BEARING
Two sessions disagreed by 90 draws and neither was wrong. Worst draw per BEARING, 12 bearings x
102 stations down the same spine, one tree, one box: 0deg 284 · 30deg 248 · 60deg 208 · 90deg 177 ·
120deg 196 · 150deg 214 · 180deg 211 · 210deg 207 · 240deg 178 · 270deg 182 · 300deg 223 ·
330deg 267. 110 draws of spread from the camera direction alone, on identical positions -- and the
peak sits at yaw 0, the DEFAULT ARGUMENT of DBG.teleport(x, z, ry = 0). The city-patterns audit
took the default and landed on the worst bearing (280, reproduced at 282-292); the animal spike
supplied a yaw and landed mid-range (191, reproduced at 205-215). Correct numbers, different
quantities. Lane B's independent R37 walk (276 draws / 99,880 tris) and mine (282 / 99,878) agree
on TRIANGLES TO 2 -- the same frame through two harnesses.
THE PIN, default boot, synthetic golden seed, tree
|
||
|
|
d9d8cbfd3e |
Lane F R36 w2 (v7.0 close): THE FREEZE — README v7 section, charter risk verdicts, notes §36
README: the v7.0 section (the loop dig->guide->want->travel->list->paper, the delta-law machinery, the classic covenant) + the morning-paper manual row. V7_THE_GAME.md: the five charter risks get their retired-or-carried verdicts, v4-style, written by F under the single-lane-close ruling: economy RETIRED- structural (the named bot verifier carried to the live tier) · schema drift RETIRED (three optional widenings, zero migrations) · re-emit identity CARRIED (never fired; owned-item stability check unbuilt — the next re-emit round owns it) · scope gravity RETIRED (the stage gates held) · v6 collision RETIRED (the 2 a.m. commits were the one contact, swept R36w1 + gated R36w2). LANE_F_NOTES §36 + F-progress: the close record — both playtests, E's three flags closed by measurement, the DJ-roster hold, the full gate numbers (7 passed / 0 failed / 0 warn / 0 skipped · flags 0 fails / 1 warn (deliberate) · selfcheck 156,352/156,352 · figure-scale 29 figs incl. the 5 DJ bodies · MATRIX GREEN 10 towns x 7 gates · R32-35 smokes re-green on the final tree). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
c9e233a7e5 |
Fable (integrator): ROUND 34 CLOSED — GODBAY hammers, all green; v7.0 needs only the first five minutes
qa.sh --strict --matrix: 7 passed · 0 failed · 0 warn · 0 skipped, MATRIX 10 towns green. New STRICT smoke_godbay: consigned through the real crate DOM · ONE-HAMMER determinism (a frozen pre-sleep export slept twice lands byte-identical — the seeded gavel, measured not trusted) · honest bounded resolution (net $19 ≤ 2×$24×0.88) · the wake toast carried the morning paper · the ride to melbourne hammered a listing on arrival · ?game=0 has no crate to list from · 0 console errors. Money shots in docs/shots/v7_beta/ (the dawn paper + the ⚖ crate). The full v7 loop now closes end to end: dig the gem → keeper cash now or the gavel tomorrow → the wantlist points at another town → the ride costs a day and hammers your listings on arrival. Remaining for the v7.0 tag: THE FIRST FIVE MINUTES (onboarding), the tour, docs freeze — and John's hands on the whole thing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
776b10b599 |
Fable (integrator): ROUND 33 CLOSED — THE HUNT lands, all green; the beta's last system is in
qa.sh --strict --matrix on the final tree: 7 passed · 0 failed · 0 warn · 0 skipped, MATRIX 10
towns green. New STRICT smoke_wantlist_travel: ☆→★ through the real card (the save carried
{THE VERANDAHS — 'Servo at Midnight'}) · a keeper muttered the hunted artist within 2 shops
('saw one in Castlemaine just last week') · buying the wanted sleeve cleared the hunt · the
synthetic→melbourne ride cost EXACTLY one day with $179 and the find riding along · the
same-town reboot was free (the control discriminates) · the ride home charged again (day 3) ·
?game=0 built zero want DOM and muttered nothing · 0 console errors. Matrix note: town_matrix
shares one browser across towns so travel drifts the day as it walks — safe because
determinism double-boots the SAME town (free by the same-town rule); reasoned before landing.
Money shots: docs/shots/v7_beta/rumor_and_wantlist.png (the keeper's mutter over the toy
shop's 70s wallpaper + THE WANTLIST open in the crate) + want_card.png. README manual row.
v7.0-beta systems are now ALL BUILT — what remains of v7: Esc-in-person (John's hands), then
the v7.0 close (GodBay offline auctions, THE FIRST FIVE MINUTES, the tour, the tag).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||
|
|
9aae167d64 |
Fable (integrator): ROUND 32 CLOSED — v7.0-beta wave 1 all green; smoke_bible + the routing amendment
qa.sh --strict --matrix on the final tree: 7 passed · 0 failed · 0 warn · 0 skipped, MATRIX 10 towns green. New STRICT gate smoke_bible: band law over EVERY bin off the digOffers surface (80 offers/5 bins), the buy-everything ledger runs on THE GEM'S BIN so the finder-margin leg is non-vacuous (bin1: 2 gems, grail asking $19 vs keeper $30; ledger closes to the cent — Σask $333 → Σoffer $135, gems alone +$21, every non-gem strictly negative), scarcity measured (emptied bin 0/16 on re-open AND across a full reload; 16 pulls in the save) with the ?game=0 negative control re-opening 16/16 (the detector discriminates). sell_routing amended from the alpha inequality (credited < paid) to the exact formula (credited == min(basis−1, basis//2), basis = bandLow-or-pricePaid) — the fence moved from the receipt to the band, which is what charter law #2 always said; it passed on a banded standard item (+$4 on basis $8). _at_bin grows an idx param (back-compatible). Money shots in docs/shots/v7_beta/ (the guide card + the crate at the counter). LANE_F_NOTES §32 (incl. the JING5 fresh-checkout trap: gitignored web/assets/models synced from m3ultra — also un-warned the validator's 15 cross-pack checks). README manual: the guide/gem/scarcity rows. Remaining beta charter queued in the round doc: wantlist + rumors · travel costs a day · Esc-in-person · then GodBay. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
50385c0f08 |
Lane F R31 wave 1 (v7.0-alpha close): THE DIG FLIP — the alpha-blocker Fable's playtest found. DIG_ON = flagOn('dig') (default-ON, ?dig=0 opt-out, ?classic=1 off — the v3.1 pattern; the v2-era opt-in survived 6 epochs past the README's 'dig on' claim because every R30 gate booted dig=1 explicitly: the explicit-flag blindfold). Fenced forever: default_boot_gate asserts dig REACHABILITY on a NAKED boot (E at a bin → digActive true), classic_regression asserts dig INERT at the bin (zero pcdg DOM, measured not assumed). PROCITY.flags gains dig. Splash de-staled ('Every door opens.' — no more '(soon)'; controls line carries E riffle/sell · C crate · SLEEP to save) + README manual row (sell at counter · C crate · SLEEP = save/advance/rotate). PROCITY_QA_PORT env override (flags_check, interior_scale_check, town_matrix) so the suite runs port-isolated instead of silently reusing whatever holds :8130. Verified both ways on :8951 (naked boot digs + closes clean; dig=0 and classic zero dig DOM, classic ZERO storage calls; noassets digs parody, 0 errors). qa.sh --strict --matrix on :8931: 7/0/0/0, flags_check 0 fails 0 warns, MATRIX 10 towns green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
83ef8c9234 |
Fable (integrator): V7 RATIFIED + round-30 instructions (the save and the crate, wave 1) + README manual (measured controls)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
630042fbe1 |
Lane F R27: the kill-the-server gate GREEN — and two corrections to F's own gate
THE KILL-THE-SERVER GATE, permanent and green (charter law #1 made falsifiable): ARM 1 server-up · gone[3] → 117 survivors · items[] 120, identity AND ORDER intact · COLLATERAL 0 · `gone` carries the atlas id verbatim (R26 fence) ARM 2 killed mid-session · enter 6ms vs control 6ms (Δ+0) · worst frame 204ms vs control 202ms (Δ+2) · room complete from files · ZERO game errors · EXACTLY 1 refused connection ARM 3 server-down boot · pure tier 1, gone[0] · ZERO game errors · exactly 1 refusal SANDBOX · POST/PUT/PATCH/DELETE all 501 · a mint shop 404s The subject exists only because G built `make-fixture`: production `gone` is EMPTY (0 sales since 2026-07-01), so this gate would have passed vacuously forever on live data. CORRECTION 1 — "ZERO console errors on server death" is UNACHIEVABLE, and F measured why. A fetch to a dead host logs net::ERR_CONNECTION_REFUSED at the BROWSER level; no .catch() sees it. To log zero the reader would have to know the server is dead WITHOUT ASKING. One refusal is the irreducible cost of discovering death. F's replacement is strictly stronger: ZERO errors from game code, and EXACTLY ONE refusal — which PROVES the circuit breaker. Without the breaker it is one error per shop entry forever, and "zero" could never tell a working breaker from a broken one because both fail it. F is the beneficiary of this change, so it is filed loudly in §27 for Fable to ratify or overrule, not quietly relaxed. CORRECTION 2 — F's frame assertion was weak: `< 250ms` is a number with no control. ARM 2 first reported worst-frame 201ms and PASSED. But entering a shop rebuilds an interior, which costs the same with or without a server — so an absolute threshold measures Lane C's room build, not the network. The arm now walks the same shop with the breaker tripped and asserts the DELTA: 202ms control, 204ms killed, Δ+2ms. The death cost nothing the room didn't. F told A the same thing one round ago; a number without a control is not a measurement. THE TOUR — 3 of 4 frames, and the 4th is FILED NOT SHIPPED. The real crate (the money shot: its own 120 records, price stickers, the keeper), a mint crate (captioned MINT — plausible, not real), the classic covenant. 0 page errors. The FRONTAGE frame does not land after three attempts and F will not ship a frame that doesn't show what its caption claims: the cluster primitive answers "where is this town's heart", which is not the question a frontage frame asks — Red Hill's heart is 2 shops/60m and does not contain Monster Robot. Next: ask B, who owns the frontage and shipped its mark this round. Re-deriving B's anchor in a tour script is how you get three bad frames. Also: the interior beauty shot came back with the HUD across it — R21's lesson, fixed on the street frames only. Now every DOM overlay is hidden, not a guessed selector list. NOT TAGGED. qa.sh --strict --matrix and the frontage frame remain. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
8fd73acfa7 |
Lane F: the v5 README teaser — held three rounds, shipped with the tag
The teaser and the tag were one claim, so it waited until there was a tag to stand on.
v5.0-alpha is now live at
|
||
|
|
8ac3b18b36 |
Lane F R22 (v4.0 — THE EPOCH CLOSE): the re-measure, the selector, the release tour, the tag
The blocking gate is CLOSED, and the epoch closes green. - #1b THE BLOCKING RE-MEASURE: F's R21 re-measure made the tri diet blocking; B diagnosed layer-by-layer, the driver traced A -> E (A's own commit: "B's numbers say the fix is E's"), E fixed it, F re-measured: katoomba venue_night 221,935 (+11%) -> 108,365 (-51%); bendigo 201k -> 124,682; fremantle -> 88,397. Worst 124,682 — the 200k stress edge is closed. The measure-first loop worked end to end. - #3 DBG.enterShop(selector) (Lane G's ask): id · registry type · exact name · name substring, resolved most-specific-first so an id-shaped string can't be shadowed. One-liner QA on any of 23 towns. - #4 The release tour -> docs/shots/release_v4/: the Fremantle hero · the Fitzroy mecca · the Toowoomba thin tail · the synthetic control · the ?classic=1 covenant. Every real-town frame poses through F's R21 cluster primitive; B's R22 bookmarks anchor on the same retail heart, so tour and bookmarks agree by construction. HUD hidden throughout (F's R21 ruling corollary). The primitive earned itself twice: the first cut posed via street_noon and the MECCA CAME OUT AS BARE BITUMEN — the same trap as R21. Re-posed through the cluster, Fitzroy reads. - HONEST FINDING (filed v4.x): the brief asked for the thin tail as "proof the floor holds". It does not, and the frame says so — Toowoomba reads as an empty road. The floor is a RATIO, not a count: 0.008 shops/edge vs the heroes' 0.06-0.08. Shipped labelled honestly rather than swapped for a flattering town. - #6 Docs: README v4 section (the towns ARE the product), LANE_F_NOTES §22, F-progress. qa.sh --strict --matrix GREEN 7/7; MATRIX GREEN — 10 towns × 7 gates (the budget gate green everywhere for the first time); selfcheck 161,300/161,300 (A's 36 goldens + the 23-town pack). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
201a2bb868 |
Lane F R21 (v4.0-beta close): the beta gate — tram dimension, the re-measure, the beta shot
All five lanes in (A's venue cluster bias, B's selector-from-index, C's density door-soak, D's relocation verify PASSES, E's 22-town pack non-gating); F gated and tagged. - town_matrix.py: a `tram` dimension — B's R20 shop-adjacency ruling verified EXACTLY (newtown runs 16 stops after B's phantom-stop fix, castlemaine 10; katoomba/fremantle/bendigo FENCED at 3/2/1 shops fronted, all below the 5-shop floor). 10 towns x 7 gates: boot/determ/district/roads/tram/noassets green on all ten. - index.html: expose window.PROCITY.tram — B built `routeInfo` FOR F's smoke but nothing published it; F owns the shell, so F wired the seam. - RECORDED (ledger #6b — the instruction was "record the new number"): the venue_night re-measure. A's cap WORKED (posters 438->111) but E's density widening ate it — katoomba 200,965 (+965, R19) -> 221,935 (+21,935, +11%); bendigo 201k (+0.5%); fremantle/newtown/castlemaine in budget. Draws fine everywhere (151/300 — half budget); tris-only, at the worst night stress view. Filed as R22's first item, where the tri-diet backlog (instrument LOD, tram tri diet) already lives. katoomba is the outlier: 966 edges, 72 shops. - Ruling (ledger #6d): the town selector stays ALWAYS-IN-HUD, not ?dbg-gated — THE REAL MAP's product IS the towns. Corollary (F's own gap): money shots hide the HUD; the R19 alpha shot had the selector in-frame because F's harness screenshotted the full viewport. - Beta money shot: Fremantle's real street at golden hour — a corridor of shopfronts, footpaths, a crossing, gum trees, and a genuinely busy crowd (the density widening, visible). 126d/167k tris, HUD hidden. - docs: LANE_F_NOTES §20 (the honest why-R20-had-no-tag record) + §21, README beta paragraph, F-progress. qa.sh --strict GREEN; selfcheck 154141/154141 (A's re-pinned goldens hold). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
ddd1e6827e |
Lane F R19 (v4.0-alpha close): the alpha gate + roads dimension + the first real-street money shot
A resolved the R18 findings (fragmentation cull/join, poster clamp, goldens pinned) + D verified; F gated. - town_matrix.py: a `roads` dimension — a schema-v2 cache (roads[]) must build the REAL street graph (norm.mode==='roads', read via the plan_osm opts.report sink); synthetic/fixtures stay marched/synthetic. 10 towns x 6 gates: real roads green everywhere; classic/default proven untouched (roads ride the cache schema, not a flag — 0x3fa36874 frozen). - docs/shots/v4_alpha/katoomba_mainstreet.png: the first real-street money shot — Katoomba's actual main street (asphalt + lane markings, footpaths, a pedestrian crossing, a walking crowd, gig posters, B's town selector in-frame), PROCITY's look on real bones, 121k tris midday. - docs: LANE_F_NOTES §18 (why F correctly HELD in R18 — the gate would have failed by design) + §19 (the close), README real-roads note, F-progress. qa.sh --strict --soak GREEN 7/7. One filed NON-blocking finding: katoomba_real venue_night 200,965 tris (+965 / 0.5% over the soft ceiling, poster-count-scales-with-real-edges driven; midday play is 121k) — a v4.0-beta hardening item (A caps posters per real town), on the opt-in --matrix warn-gate, not a play view. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
e4a49b5bc8 |
Lane F R17 (v3.2): real towns boot in the engine + the town-matrix scout gate (ledger #7)
F wired the last mile of the real-map scout and gated the whole matrix. - index.js barrel re-exports registerTownCache/validateTownCache; the shell fetches + registers assets/towns/<key>.json before generatePlanFor when the town isn't a checked-in fixture — so ?plansrc=osm&town=bendigo_real boots a REAL AU town in the engine (the gap: E's caches were on disk + in the node selfcheck, but the shell never loaded them → silent Melbourne fallback). Fail-soft (404 / invalid / ?noassets -> fixture fallback); opt-in, never on the default or ?classic path. - tools/qa/town_matrix.py (opt-in qa.sh --matrix): boot / determinism / budget / district / ?noassets across 10 towns (2 synthetic hero seeds + 3 osm fixtures + E's 5 real AU caches). ALL 5x10 GREEN — Castlemaine at the 6-shop floor still lands a 3-venue district. The existing CityPlan contract eats real Australian geography: the evidence John charters v4 = THE REAL MAP on. - docs: LANE_F_NOTES §17 (the town x gate table), README real-town row, F-progress R17. qa.sh --strict --soak GREEN 7/7. Verified: ?plansrc=osm&town=bendigo_real -> Bendigo, 9 shops, 3 venues, 0 errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
9277238462 |
Lane F R16 (v3.1 THE FLIP) — close: default-boot tour + week soak + docs
The closing half of F's bookend. All gates green on the flipped tree (qa.sh --strict --soak: classic
regression + default-boot gate + smokes + no-giants incl. the seated drummer + the full-week soak).
- tour_shots.py -> docs/shots/release_v3_1/: the money shots on the DEFAULT boot (no per-shot flag juggling
now the flip covers it) + a ?classic=1 before/after ("the town before v3"). 7 shots, settled, 0 page errors.
- week_soak.py: re-pointed to the default boot; the leak check now treats an at/below-baseline OR non-climbing
trail as leak-free (a decreasing tex trail is GC/atlas-settle, not a leak — it was false-failing at warn-level).
- docs: README v3.1 flags table (defaults on + ?classic=1), CITY_SPEC v3.1 amendment (the rewritten prime
law + classic covenant, A's deferred edit), LANE_F_NOTES §16, F-progress R16.
Numbers (seed 20261990): default @ venue block 124 draws / 57k tris (<=300/200k); ?classic 161 draws / 24k
tris (the v2 baseline); seated drummer 1.32 m stature; week soak 42 cycles leak-free (net +0/-6).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
0490bdd07e |
Lane F R15 (v3.0): docs assembly — README v3, LANE_F_NOTES §14/§15, F-progress, freezes confirmed
- README: a v3.0 'venues & gigs, THE DISTRICT' section — what shipped, the flags table, the release tour
- LANE_F_NOTES §14 (R14: F never ran, brief carried) + §15 (the R15 release-close runbook, numbers, gotcha ledger)
- F-progress: R15 release-close summary at the top
- confirmed all five freezes committed (A a3911a4/35da83c, B eee60e0/a0b5784, C 62e38c5/2446ae3, D 9a65f51/66aec0f, E
|
||
|
|
a702a69f1e |
PROCITY scaffold: spec, research, 6 Opus lane prompts, core modules, vendored three r175, 69 inherited skins
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |