# Capture procedure

Environment: real web app, Chromium, Linux, light theme, 1280 × 800 viewport.
Each checkout runs its own dev server and fresh T3 home with T3CODE_DEV_SEED=0.
No copied database or replay provider. Claude completes every model turn.

1. Initialize an empty git project and run seed.py against the checkout.
2. Open the resulting thread. The CLI-created prompts appear under Agent; they
   use real provider turns, not fabricated transcript rows.
3. Expand the third prompt, click Edit from here, then Revert and keep changes.
4. Append: "What is the retained code word? Reply with only that word. Do not use tools."
   (The browser's contenteditable fill appended to the restored third prompt.) Send.
5. On base, the app shows Provider error twice; the provider log records the same
   missing UUID twice. On head, the response is MARIGOLD.
6. Stop and restart that checkout's dev stack. Expand the second prompt and
   choose Edit from here → Revert and keep changes. Replace the draft with:
   "After restart and earlier rollback, what is the retained code word? Reply with only that word. Do not use tools."
   Send. Both sides respond MARIGOLD; this is a retained capability, not a second
   demonstrated base failure.

The primary comparison was also repeated on a fresh head thread after restarting
its server before the first revert, matching the base's dev-server recovery restart.

Privacy: model labels are hidden in the DOM before recording; the workspace
panel is closed. Published captures crop the sidebar, retaining the app's main
conversation and controls. No conversation content or errors are altered.
The seed script takes its model as an argument so private runtime identifiers
are absent from the published script.

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