.PHONY: all frame sample extract-smoke batches aggregate experiments figures tables paper test clean-paper sync-paper PY := .venv/bin/python all: frame sample aggregate experiments figures tables paper frame: $(PY) src/ingestion/build_frame.py sample: $(PY) src/ingestion/sample.py extract-smoke: $(PY) scripts/03_smoke_test.py 2 3 batches: # requires ANTHROPIC_API_KEY (or WP20_ENV_FILE); submits all tiers $(PY) scripts/04_run_batches.py submit $(PY) scripts/04_run_batches.py status collect: $(PY) scripts/04_run_batches.py collect aggregate: $(PY) scripts/05_aggregate.py $(PY) scripts/05_aggregate.py _sold experiments: $(PY) scripts/06_exp_agreement.py > logs/06.log $(PY) scripts/07_exp_cost.py > logs/07.log figures: $(PY) src/visualization/figures.py tables: $(PY) src/visualization/tables.py literature: $(PY) scripts/lit_verify.py $(PY) scripts/10_literature_matrix.py sync-paper: mkdir -p paper/figures paper/tables cp results/figures/*.pdf paper/figures/ cp results/tables/tex/*.tex paper/tables/ manifest: $(PY) scripts/11_manifest.py paper: sync-paper manifest cd paper && latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex test: $(PY) -m pytest -q tests clean-paper: cd paper && latexmk -C