1# UQO WP 27 — The Invisible Hand of Machines. One-command no-API replication: `make replicate`.2PY ?= .venv/bin/python3W ?= 645.PHONY: all setup test smoke calibrate scale classical pilot confirmatory library figures tables paper replicate clean67all: test classical figures tables paper89setup:10 uv sync --extra dev1112test:13 $(PY) -m pytest tests -q1415smoke: # 100 agents, fixed seed, zero paid calls, accounting verified16 $(PY) scripts/smoke_test.py1718calibrate:19 $(PY) scripts/10_calibration_sweep.py2021scale:22 $(PY) scripts/11_scale_benchmark.py2324classical: # 16 cells x 30 matched seeds, no API25 $(PY) -m market_agents.cli design configs/classical_confirmatory.yaml --workers $(W) --root results/runs26 $(PY) -m market_agents.cli design configs/exploratory.yaml --workers $(W) --root results/runs2728pilot: # paid: ~3 USD (OpenAI). Requires OPENAI_API_KEY in .env29 $(PY) -m market_agents.cli budget configs/pilot_openai.yaml30 $(PY) -m market_agents.cli design configs/pilot_openai.yaml --workers 3 --cache results/cache/llm_cache.sqlite --root results/runs3132confirmatory: # paid: ~30 USD (OpenAI)33 $(PY) -m market_agents.cli budget configs/confirmatory_openai.yaml34 $(PY) -m market_agents.cli design configs/confirmatory_openai.yaml --workers 5 --cache results/cache/llm_cache.sqlite --root results/runs3536library: # frozen decision library from recorded runs + replay at N = 1,000 (no API)37 $(PY) scripts/60_frozen_library.py3839theory:40 $(PY) scripts/90_theory_checks.py4142figures:43 $(PY) scripts/40_figures.py4445tables:46 $(PY) scripts/50_tables.py47 mkdir -p paper/figures paper/tables48 cp results/figures/*.pdf paper/figures/49 cp results/tables/*.tex paper/tables/5051paper: tables52 cd paper && latexmk -pdf main.tex5354replicate: test smoke classical theory figures tables # everything that needs no API key5556clean:57 cd paper && latexmk -C58