# docs/shots — visual regression + devlog reference tree Owned by Lane F (each lane also drops its own acceptance screenshots here). ``` docs/shots/ laneA/ … A: 5 seeds rendered in map.html (spine, arcade, market, milkbars) laneB/ … B: 3 fixed street cameras (P-key shot harness) laneC/ … C: 9 types × 5 archetypes interior grid laneD/ … D: near / mid tiers + busy main street laneE/ … E: skin contact sheets (new skins vs originals) v1_tour/ … F: the 10 beauty shots (see tools/shots.py TOUR) — the devlog set before/ … F: last known-good capture, for side-by-side regression references/ … real-world reference photos named per shot (street_noon.jpg, arcade.png, …) contact.html … generated by tools/shots.py — this-run | before | reference ``` ## Capture (Lane F, once Lane B's shell + `window.DBG` hook land) ``` cd web && python3 -m http.server 8130 # terminal 1 python3 -m venv tools/.venv # once tools/.venv/bin/pip install playwright tools/.venv/bin/python -m playwright install chromium tools/.venv/bin/python tools/shots.py v1_tour --seed 20261990 # terminal 2 open docs/shots/contact.html ``` Before a risky change, snapshot the good state into `before/` (`tools/.venv/bin/python tools/shots.py before`), then re-run and eyeball `contact.html`. The v1 tour list (LANE_F_INTEGRATION §Shots): main-street noon, arcade, market square, milkbar dusk, night neon, warehouse fringe, residential collar, record interior, opshop interior, busy crossroads. Adjust `TOUR` in `tools/shots.py` as the town evolves.