Skip to content

Prompt evals and the optimizer

How are the prompts measured? Every model-driven prompt is scored against its own labelled corpus, not tuned by taste, and the gate for accepting a new prompt is transfer across model families rather than a single score.

Prompt evals and the optimizer

Every model-driven prompt is scored against its own labelled corpus, not tuned by taste: tagging (evals/tagging_cases.json, 51 cases), reaction (evals/reaction_cases.json, 100 cases) and explanation (evals/explanation_cases.json, 40 cases). Only tagging has an optimizer today (DSPy GEPA, uv run --group optimize python evals/optimize_tagging.py) — reaction and explanation have the corpus and the scorer but no optimizer yet. See examples/prompt-evals/ for the eval → transfer-gate golden path: the commands, a live run's output, and why the gate's bar is transfer across model families rather than a single score. That gate is genuinely sample-sensitive: a repeat=2 run recorded 2026-08-27 passed it, and a repeat=1 re-run on 2026-08-28 (evals/prompts/transfer-2026-08-28.md) failed it on the same prompt and cases — sampling variance, not a regression, and the reason the gate's record is a committed, dated artifact rather than a claim in prose.