1# Replication guide — UQO WP 3523## Environment4- macOS or Linux, Python 3.12 (managed with `uv`), TeX Live with `latexmk` and the `aer` bibliography style, `make`.5- Pinned dependencies in `pyproject.toml` (numpy 2.3.4, pandas 2.3.3, scipy 1.16.2, statsmodels 0.14.5, lifelines 0.30.0,6 scikit-learn 1.7.2, networkx 3.5, matplotlib 3.10.7, pyreadr 0.5.3, openpyxl 3.1.5, pyarrow 21.0.0, pytest 8.4.2, …).78```bash9uv venv -p 3.12 .venv && uv pip install -p .venv/bin/python -e .10```1112## One-command reproduction13```bash14make all # fetch → data → measure → econ → sim → figures → paper15make test # 11 tests16```17Individual targets, in dependency order:1819| target | command | outputs | time (M5 Max laptop) |20|---|---|---|---|21| fetch | `python -m wp35.acquisition.fetch` | `data/raw/*`, `data/metadata/source_registry.json` | ~1 min (65 MB) |22| data | `python -m wp35.harmonization.build_panels` | `data/processed/*.parquet`, `results/diagnostics/*`, coverage figures | ~1 min |23| measure | `python -m wp35.measurement.build_indices` | `data/processed/*_indices.parquet`, `results/empirical/measurement_*`, `power_h2a_*` | ~10 s |24| econ | `python -m wp35.econometrics.run_all` (= h1, h2_seshat, h2_modern) | `results/empirical/h1_*`, `h2_*`, `h4_*`, `h5_*` | ~15 min (modern panel dominates) |25| sim | `python -m wp35.simulations.run_experiments && python -m wp35.simulations.analyze` | `results/simulated/*` and `fig_sim_*` | ~1 min on 12 cores |26| figures | `python -m wp35.visualization.make_all` | `paper/tables/*.tex`, `paper/figures/*.pdf` | ~10 s |27| paper | `python -m wp35.validation.build_bib && cd paper && latexmk -pdf main.tex` | `paper/references.bib`, `paper/main.pdf` | ~1 min |2829## Determinism30- Estimation seed 20261101 (cross-validation folds, power simulations); simulation seeds 0–7; IRT is deterministic (EM).31- `python -m wp35.validation.verify_bib` re-queries Crossref and may differ if Crossref metadata changes; the verified list used for the paper is `research/prior_art.csv` + `research/bib_overrides.csv`.3233## Provenance of every number34Each table fragment in `paper/tables/` is written by `src/wp35/visualization/make_all.py` from a file in `results/`;35each figure likewise. The execution log `results/logs/execution_log.md` records every command and every correction36made during the study; `results/logs/final_research_audit.md` lists completed, failed and blocked tasks.3738## Pre-registration39`research/preregistration.md` was frozen before any predictor–outcome association was computed; SHA-25640`ecda8804e17f931789be8e274ba1ff989000de356700a85b638b043928182e3a` (recorded in `research/decisions.md`, D-003).41Verify with `shasum -a 256 research/preregistration.md`.42