1# UQO WP 26 — Can Autonomous AI Agents Discover the Fundamental Value of Real Estate?2# One-command reproduction of everything that does not need paid API calls: `make all`.3# Live LLM runs are explicit (`make pilot`, `make validation`, `make final`) and need keys in .env.4PY ?= python3 -W ignore56.PHONY: all setup test synth data features geo baselines smoke evaluate figures tables paper clean78all: test synth data features baselines theory fundamental smoke evaluate tables paper910setup:11 $(PY) -m pip install -e ".[dev]"1213test:14 $(PY) -m pytest tests -q1516synth:17 $(PY) -m agentic_valuation.data.synthetic18 $(PY) scripts/01_build_analytic.py --synthetic19 $(PY) scripts/02_splits.py --synthetic20 $(PY) scripts/03_features.py --synthetic2122data:23 $(PY) scripts/01_build_analytic.py24 $(PY) scripts/02_splits.py25 $(PY) scripts/05_leakage_audit.py2627features:28 $(PY) scripts/04_geo.py29 $(PY) scripts/03_features.py3031baselines:32 $(PY) scripts/10_train_baselines.py3334smoke: # mock provider, synthetic data, no keys35 AV_PROVIDER_MODE=mock $(PY) scripts/30_run_arm.py --arm F_independent --synthetic --n 5 --run-id smoke_F36 AV_PROVIDER_MODE=mock $(PY) scripts/30_run_arm.py --arm G_debate --rounds 2 --synthetic --n 5 --run-id smoke_G23738pilot: # live, 24 properties of the validation subsample (see configs/budgets.yaml)39 $(PY) scripts/33_run_tier.py pilot --live4041validation:42 $(PY) scripts/33_run_tier.py validation --live4344final:45 $(PY) scripts/33_run_tier.py final --live4647fundamental:48 $(PY) scripts/50_repeat_sales.py49 $(PY) scripts/52_rents_usercost.py50 $(PY) scripts/51_eval_vs_resale.py5152theory:53 $(PY) scripts/41_theory_sim.py54 $(PY) scripts/40_welfare_sim.py5556weights: # after the validation tier: aggregation weights + conformal scales, then the protocol freeze57 $(PY) scripts/34_fit_weights.py58 $(PY) scripts/31_freeze.py5960evaluate:61 $(PY) scripts/15_descriptives.py62 $(PY) scripts/20_evaluate.py63 $(PY) scripts/35_rounds_curve.py --split test64 $(PY) scripts/21_figures.py6566tables: evaluate67 mkdir -p paper/tables paper/figures68 cp results/tables/*.tex paper/tables/ 2>/dev/null || true69 cp figures/*.pdf paper/figures/ 2>/dev/null || true7071paper:72 cd paper && latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex >/dev/null && echo "paper/main.pdf built"7374clean:75 cd paper && latexmk -C >/dev/null 2>&1 || true76 find . -name __pycache__ -prune -exec rm -rf {} +77