No backend team would merge a PR that fails the test suite. Yet many AI teams ship prompt and model changes with no automated quality check at all — they eyeball a few responses and hope. The failure mode is silent: answers get slightly less faithful, citations drift, and nobody notices until a user does.

Atlas (my enterprise RAG copilot project) treats evals exactly like tests: a merge is blocked on a quality or cost regression. Here's the shape of that pipeline and what I learned building it.

What gates the build

Every PR runs an offline, deterministic, GPU-free eval gate against committed cassettes:

Metric