Reproducibility — WP-AI-0001
bash
cd ia/wp-ai-0001
python3 -m pip install -e ".[dev]" # or: uv pip install -e ".[dev]"
python3 -m pytest tests -q # unit + causal-sanity tests (CPU, < 30 s)
python3 scripts/audit_environment.py # writes docs/ENVIRONMENT_AUDIT.json (add --cluster to probe nodes)
python3 scripts/run_pilot.py --quick --device cpu --seeds 0 1 --n-boot 200 # CPU smoke test, ≈ 25 s
python3 scripts/run_pilot.py --seeds 0 1 2 --steps 3000 # Tier-0 pilot (MPS ≈ 5 min)
python3 scripts/train_models.py # 17-model matrix (≈ 13 min MPS)
python3 scripts/run_transplant.py # exploratory transplant run (≈ 3 min)
python3 scripts/run_transplant.py --tag confirmatory --seed-base 90000 # confirmatory run (prereg v1.0)
python3 scripts/eval_persistent.py --run <graft run id> --seed-base 95000 # saved adapter in a fresh process
python3 scripts/confirmatory_analysis.py --run <confirmatory run id> # pre-declared contrasts + Holm
python3 scripts/run_tier1.py [--quick] [--split dev|confirmatory] [--pairs a:b ...] # open-weight models (MLX)
python3 scripts/build_figures.py --run <run id>; python3 scripts/build_tables.py --graft ... ; scripts/build_paper.sh- Every run writes
experiments/manifests/<run_id>.json(git commit, config hash, data hashes, seeds, libraries, hardware, status history), appends toexperiments/registry/runs.jsonl, and stores results inexperiments/summaries/<run_id>/(results.json,SUMMARY.md). Per-item predictions are inartifacts/runs/<run_id>/(git-ignored), models inartifacts/models/<run_id>/. - Run IDs are deterministic functions of the experiment id and config hash; re-running with the same config
reuses trained models from
artifacts/models/<run_id>/(delete to retrain). - Determinism: PyTorch on MPS was verified bitwise-repeatable for this model (
noop.deterministic_repeat); localization sweeps repeated twice differ by 0.0. Training determinism across devices is not claimed (CPU vs MPS kernels differ); seeds reproduce training on the same device/library versions. - Data are synthetic and regenerated from seeds; the split hashes recorded in manifests must match.
- Secrets: none required. No tokens are read; paths are relative to the project root.