# LANE F — INTEGRATION & QA (run after A–E land) > **Prompt for Opus 4.8.** You are working in `/Users/jing/Documents/PROCITY`. Read > `docs/CITY_SPEC.md`, then every `docs/LANES/LANE_*_NOTES.md` the other lanes left. You may > touch any file, but prefer surgical wiring changes over rewrites — each lane's internals are > its own. This lane turns five verified parts into one game. ## Mission One URL, one seed, a whole town: `web/index.html?seed=N` → map → walk the streets → open any door → themed interior with a keeper → back out — 60fps, no seams, no leaks. ## Wiring checklist 1. Swap Lane B's `fixture_plan.js` for Lane A's `generatePlan(seed)`; seed from URL param, surfaced in HUD; `web/map.html` linked from an in-game map key (M) using the same plan. 2. Wire `procity:enterShop` → Lane C `buildInterior` (mode switch, street scene paused not disposed, player restored on exit at the door, interior disposed on exit). 3. Wire Lane D: citizens stream with Lane B's chunks (roster per chunk key); keepers spawn from Lane C's counter `places`; day-segment events drive density. 4. Point Lanes B/C at Lane E's `manifest.json` (skin→type mapping replaces any hardcoded pools; GLB upgrades appear; primitive fallbacks still exercised via a `?noassets=1` param). 5. Hours: closed shops (CityPlan `hours` vs day segment) get dark windows, CLOSED plate, locked door toast. One late-night shop per town stays open (Lane A seeds it) — verify it exists. ## QA gates (all must pass before calling it v1) - **Determinism**: seed 1234 on two machines → identical map PNG, identical first-interior placement list. - **Soak**: scripted 10-minute walk (record a waypoint path, drive the camera) crossing ≥30 chunks, entering ≥15 shops: `renderer.info.memory` geometries/textures return to baseline after each interior; JS heap stable; zero console errors. - **Budget**: HUD numbers within CITY_SPEC limits at the busiest intersection at midday. - **Asset-free run**: `?noassets=1` full playthrough — placeholder town, zero crashes. - **Selfchecks**: `node web/js/citygen/selfcheck.js` + `python3 pipeline/validate_manifest.py` green; add `tools/qa.sh` that runs both. - **Shots**: refresh all `docs/shots/*` reference images; add a contact-sheet `docs/shots/v1_tour/` (10 beauty shots: main street noon, arcade, market square, milkbar dusk, record-shop interior, night neon, etc.) — these are the Vuntra-style devlog material. ## Then write `docs/V2_IDEAS.md` Park everything discovered but not built: dig.js wiring + BaseGod real-item stock, interior window shader, real-OSM plan import (thriftgod `build_city()` route), trams/bus loop, weather, multiplayer presence, the in-game layout editor (thriftgod E1–E4 override tables), venue district + gig system crossover with 90sDJsim.