Evals deserve the same hygiene as the system under test
Evals are software. They have versions, dependencies, tests of their own (judge calibration), and lifecycle. Treat them with the same engineering discipline as the application code.
Practical hygiene
- Eval scripts in source control alongside prompts.
- Golden sets versioned (semantic version or date).
- Run via a single command (
pytest evals/) or a dedicated runner (Promptfoo, Langfuse). - Reports persisted in a queryable form (dashboards, sheets, internal app).
- Eval failures triaged like test failures — flake, real regression, or eval bug.
The cultural piece
If only one person on the team can run the eval, the eval is fragile. Make it boringly easy. The reward is that prompt iteration becomes data-driven instead of vibes-driven.