# WP29 — Reproducibility (commands actually executed during the study) Environment: macOS 27.0 (controller), Python 3.12 venv (`uv venv .venv --python 3.12 && uv pip install -p .venv/bin/python -e .`), Claude Code 2.1.314 (npm) on controller and executor nodes, executor venvs with numpy 2.3.4 / pandas 2.3.3 / scipy 1.16.2 / statsmodels 0.14.5 / matplotlib 3.10.7. ## Mode 1 — Infrastructure tests (no provider access) ```bash make test # 8 tests: state machine, invariants, events, gate, evaluator, session ledger, bundle hygiene .venv/bin/python evaluators/run_validations.py # seeded evaluator validation (needs ~/wp29-oracles/) ``` ## Mode 2 — Artefact replay (no provider access) ```bash make analyze # exports from runs/state.sqlite → estimates, tables, figures, macros, appendices, gallery make paper # latexmk → paper/main.pdf make replay # release/validate_release.py: clean-copy replay of the headline analysis, byte comparison, manifest, secret scan ``` ## Mode 3 — Fresh live replication (API key + executor hosts + hidden oracles required) ```bash make deploy && make probe # gate + key file on nodes; sentinel isolation probes PYTHONPATH=src .venv/bin/python -m pgar.cli assign --split confirmatory --tasks <24 ids> --repeats 3 --seed 301 PYTHONPATH=src .venv/bin/python -m pgar.cli run --split confirmatory --workers 8 PYTHONPATH=src .venv/bin/python -m pgar.recovery_experiment r1|r2|r3|r4 ``` Hosted-model stochasticity is not seedable; compare at the task-cluster level. Exact per-run commands (argv) are stored in the `sessions` table (`command_json`), and every run's effective-context hash, task hash and code commit in its manifest.