Evaluation harness (MLflow tracking on local SQLite, LLM-as-judge for generated exercises). First real content lands with M1; per-milestone reports go to docs/evals/.