Session-only acceptance and rehearsal¶
Run from the intact checkout with Python 3.13+. The rehearsal is a stdlib program that retains its files in a new external directory:
python bin/session_rehearsal.py C:/path/to/new-practice
python bin/session_rehearsal.py C:/path/to/another-new-practice --export
The first form exercises setup, a production brief, scene/shot creation, question/answer, prompt reservation and resumption, a refused fire cue for a BLOCKED prompt, held free intent, supplied synthetic media landing/binding, approved/needs_work/rejected example verdicts, live/clear/reselect, a Review question, saved cut, prepared export, durable handoff and fresh-process inspection. The second additionally creates a one-second CPU fixture clip and completes a real libx264 export, then repeats export-resume and verifies unchanged output bytes. ffmpeg and ffprobe must be on PATH for that form. Neither form calls a provider, GPU service, app server or frontend.
The target must be empty and outside the checkout. Runs are retained rather than overwritten. The script does not select its workspace for your normal sessions; use studio_setup.py select <run>/workspace deliberately, and select your original workspace again afterward. rehearsal.json records every command's exit/output and elapsed seconds, selected workspace, platform and export state/hash. UTC start/completion timestamps and total elapsed seconds describe automated wall time on that machine, including setup and fixture encoding; they do not measure active human time or creative throughput. A failure retains its partial run and error for inspection; use a new directory after fixing the problem. Example verdicts are synthetic software data, never authorization for a real production.
For current-production measurement, cost coverage and the human observation protocol, see Workflow baseline. Keep synthetic timing, historical production evidence and participant observations separate.
Repeatable verification¶
The repository verification entry point is:
python -m pip install -r requirements/test.txt
python bin/check_session_first.py
This runs the isolated minimal-install and lifecycle acceptance alongside operation validation, conflict/retry/recovery and adapter regression tests. The pytest driver needs the test profile; lifecycle subprocesses use a clean virtual environment with no pip or system packages and run with -S. The encoding acceptance case explicitly skips if ffmpeg/ffprobe are absent; a skipped encode is not a successful export test. Use an environment with both executables for the full lane.
Within each rehearsal command, import instrumentation rejects Pillow, NumPy, OpenCV, ONNX Runtime and the embedded Claude SDK. Socket connect/bind/address resolution is refused. The subprocess environment drops credentials, personal workspace/vault settings and inherited render connections; its PATH excludes Node. The prompt evaluator's existing isolated child remains its own process. This instrumentation verifies the named command paths; it is not an OS security sandbox or a claim that every future child process is constrained.
The existing hook adapter regression suites are separate: bin/tests/test_codex_studio.py and the spend-hook tests. Synthetic hook results do not certify a live client or connector. Follow Codex activation and record actual client evidence in the pilot.
Observed evidence¶
On 2026-09-26, Windows 11 build 26200 / CPython 3.13.14 passed the 282-test session verification lane, including clean-venv metadata and real software-export acceptance. The direct export rehearsal retained a completed assembly--practice.mp4; retries did not change its hash. No macOS/Linux success is inferred from this run. The broader operation suites cover deliberate interruption and stale-revision cases; the user rehearsal models resumption through fresh command processes and prepared requests rather than killing an encoder.
The same 282-test lane passed after incorporating master through de2049f5. A subsequent orphan-review-revision regression increased the lane's collected count by one; its 19-test prompt-operation suite passed separately. The post-integration gate/preflight/spend/index/Spine/HTTP run passed 929 tests with one skip, and client-hook checks passed 100. These overlapping runs are not a single project-wide total. The rehearsal now also covers a brief gate receipt, inconclusive/clear verdict transitions, a persistent note and cut-marker editing.
The core contract remains bounded: participating shared writers use transaction journals; legacy writers outside those operations do not acquire the same locks. Local hard-link support is required for no-overwrite media/export installation. File hashes and journals preserve recoverability; they do not promise instantaneous multi-file visibility or network-share durability. Actual teammate comprehension, cross-client handoff and app usability still require the human pilot.