PROCITY/web/js/world
m3ultra 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>
2026-08-07 12:29:02 +10:00
..
audio.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
buildings.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
character.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
chunks.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
dbg.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
discovery.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
fixture_plan.js Lane B (Streetscape): chunk-streamed walkable town shell 2026-07-14 14:28:47 +10:00
furniture.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
gig_state.js Lane F R30 (v7.0-alpha ledgers #1+#3): THE SAVE CORE + SLEEP=SAVE=TOMORROW — save.js (procity-save/1, delta law by shape, loud reject + stash, beforeunload), game-backed wallet facade on the proven seam, buy seams record the collection (type/sku|slotId/title, C's §9 asks), day-salted stock rotation (stk-* seam in interiors/layout [marked], dig binSeed; day 1 = pre-v7, REAL never rotates), gig weekNight = (day-1)%7 (amended from day%7 with the measurement, §30.3), wake at DAWN. classic/game=0: layer never constructed, ZERO storage touches measured. Verified 7 legs green in fresh contexts; qa.sh --strict 6/6, 0 warn 2026-07-18 14:26:35 +10:00
ground.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
hud.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
interior_mode.js Lane F R40 §40.6: the notepad — F8, the tour, and the gate that caught the harness 2026-08-07 12:29:02 +10:00
lighting.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
magpie.js Lane B R39 (Fable's ruling): the magpie takes E's GLB use-if-ready, and the fallback's white moves 2026-08-03 21:37:24 +10:00
minimap.js Lane B R40 §40.3 (+E's §40.4 rule): the 307 was fiction, the town speaks its street names 2026-08-07 12:28:08 +10:00
planutil.js Lane B (Streetscape): chunk-streamed walkable town shell 2026-07-14 14:28:47 +10:00
player.js Lane B (Streetscape): chunk-streamed walkable town shell 2026-07-14 14:28:47 +10:00
playtest.js Lane F R40 §40.6: the notepad — F8, the tour, and the gate that caught the harness 2026-08-07 12:29:02 +10:00
save.js Lane B R39 39.2: THE FOG — the map shows what you walked past, and is finally readable 2026-08-03 21:04:34 +10:00
skins.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
tram.js Lane B round 20 (v4.0-beta): the tram ruling — route by shop adjacency + per-town fence (ledger #3/#4) 2026-07-16 19:35:56 +10:00
venue.js Lane B R30 (v7.0-alpha ledger #4): THE COLLECTION UI + SLEEP surface — the crate panel in hud.js (cover thumb = pack-atlas CSS crop off the sku, per-shop/town-wide bases, parody = glyph by design; where+day honest, foreign towns fall back to townKey), game bar day/$/CRATE count + SLEEP on F's §30.1 contract; construction-gated on PROCITY.game itself (classic/game=0 ⇒ zero DOM/listeners, measured); venue.js compat venueShopId = live weekNight getter (F's §30.4 filing, 116→490 across a sleep). Verified vs F's REAL committed core (nothing stubbed) on no-store :8151 snapshot; qa 6/6 2026-07-18 14:37:15 +10:00
washing.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00
weather.js Lane B round 17 (v3.2): wind sway SHIPS -- weather-driven gum-tree sway (ledger #5, parked since R7) 2026-07-16 14:30:09 +10:00
wind.js Lane B R38 (v8 WAVE 1, INHABITATION): all four runtime items — the whole round costs +1 walked draw 2026-08-03 18:53:26 +10:00