# PR watch completion proof

Real web client and server, 1280x800, light theme, fresh scenario home, Replay (dev). The synthetic forge answers only read requests for scenario/pr-watch; all other traffic uses the original fetch. No live forge changes are made.

Place pr-watch-completion.e2e.ts in scripts/scenarios beside t3.ts. In scripts/e2e.config.ts select the web target, set the scenario timeout to 1200000, and add command.inheritEnv entries for CAFE_TOKEN, NODE_OPTIONS, PR_WATCH_PROOF_DIR and T3CODE_DEV_SEED.

Create a scratch directory, set PR_WATCH_PROOF_DIR to it, and write pending to its phase file. Set NODE_OPTIONS to --import followed by the absolute filename of synthetic-forge.mjs. Set CAFE_TOKEN to the synthetic value scenario and T3CODE_DEV_SEED to 0. Run the e2e driver from scripts with T3_SCENARIO_APP_DIR pointing at each independently installed checkout.

The driver creates a git project and replay thread through real app commands, registers a watch through the real WebSocket command, fails Fast lint while Slow build and Slow integration remain running, waits for the failure turn to finish, then completes the slow jobs without a commit or comment. It requires two visible checks-failed wakes; the base shows one and times out after three minutes, while the head shows two.

AI-assisted; verified with the tests and tools listed above.

Final stills require byte-identical screenshots 500 ms apart. After the second wake, the head stays open for 625 seconds and requires the wake count to remain two. Recordings omit the first 30 seconds of startup and pairing, and otherwise retain real-time playback.
