# Reproduce the synthetic evidence

Use the supplied base and head in separate installed worktrees. Extract scripts into `/tmp/lead-25031-r1/evidence-capture`; script paths are deliberately concrete. Never reuse a live T3 database. Start each checkout with `T3CODE_DEV_SEED=0 vp run dev --host 0.0.0.0`, capturing its PID and actual ports. For the original historical fixture timestamps, add `NODE_OPTIONS=--import=/tmp/lead-25031-r1/evidence-capture/frozen-clock.mjs` during initial seeding, then stop/restart that owned server without NODE_OPTIONS before settings subscriptions and captures. A permanently frozen Date.now can stall server debounces; it is not the capture clock.

Run `python3 make-failure-provider.py` once; it creates the local replay provider that emits a deliberate protocol failure, labelled HARNESS. For each checkout, invoke `node rpc-driver.mjs <checkout> <backend-port> seed`, then the same command with actions `extra single`, `extra five`, `sibling-project`, `handoff`, and `settle-parents`. Seed receipts and schema-decoded thread projections are in the archive. The driver's `before`/`after` directory depends on the checkout ending in `-base`. Each invocation writes a new timestamped run. Its private auth token files are local-only and were excluded from uploads.

Browser: pair each preview tab to its own isolated server with an ephemeral locally generated credential; do not publish it. Set functions stores `tabs`, `ports`, `envs` to those fresh values. Evaluate browser-helpers.js in functions.exec, then browser-driver.js. W01/W02/W03 interaction recipes are at the bottom of that driver; palette-harness.js is evaluated in preview_evaluate with a real app thread mounted. The exact W01/W03 tool action program was not retained; their described replay sequence is reconstructed, while actual continuous clips remain supplied. Settings saves are the real RPC operations, with reconciliation against live config subscriptions. Server settings overrides merge; explicit null removes `proof-sibling`. Empty object does not remove it.

Android: prepare via `vp run mobile:install android --prepare`; lease named Pixel9 with device-pool; install cached dev client with `vp run mobile:install android --session <session> --metro http://<tailnet>:8081`. Start after Metro8081 and base Metro8082 on all interfaces; use the same physical device and cached native fingerprint8006860c65. Connect both fresh backends using test-t3-mobile's pair-client.sh and confirm both environment catalog entries before deep linking. Update the session and fresh environment IDs in native-driver.py. native-settings.py and native-handoff.py call it. mobile-clock.mjs controls only clock/status-bar presentation through the native JS runtime; native-align-scroll.js calls public ScrollView.scrollTo. No native store snapshots are injected.

Stills: same viewport/theme/state, fonts loaded, pointer away; two whole-surface images500ms apart must be pixel-identical. diffs.py makes zero-threshold RGB×16 and threshold16/255 comparisons plus labelled sheets. review-media.py creates storyboards; black unused tile padding is not a video frame. The index explicitly excludes incomparable scroll/layout/clock captures. Raw diagnostic material is not passing evidence. Use the individual script URLs as canonical; browser-driver.js was completed after initial packaging and replaced in scripts-and-provenance.zip before upload.

Cleanup: close owned tabs and device sessions, stop captured PIDs, remove only owned fresh .t3 and base checkout. No commits/pushes/PR edits were made.
