Write the evaluation set before you write the prompt
Most AI projects cannot tell whether they are finished, because nobody defined what correct looks like. The fix costs two days and changes everything downstream.
Every stalled AI project we are called into has the same missing artefact. Not a better model, not more compute, not a vector database. A list of cases with known-correct answers.
Without it, three things are impossible. You cannot say whether the system is good enough to ship. You cannot tell whether last Tuesday's prompt change helped or hurt. And you cannot let anyone else touch it, because there is no way to check they did not break something.
What an evaluation set actually is
A few hundred real inputs, each with the correct output agreed by someone who knows the domain, versioned in your repository next to the code.
That is all. It is not a research artefact and it does not need a framework. A CSV and a test runner is a completely adequate starting point.
Why teams skip it
Because it feels like overhead when the demo already works, and because agreeing correct answers surfaces disagreements nobody wants to have. Two experts will label the same ambiguous case differently, and resolving that requires a decision about what the system is actually for.
That argument is the valuable part. Having it in week one costs two days. Having it in month six costs the project.
What it looks like in practice
Sample real traffic, weighted towards the awkward cases rather than the clean ones — the happy path is not where systems fail. Get a domain expert to label two to three hundred of them. Store it with the code. Run it in CI.
Then a pull request that changes a prompt shows a number. Accuracy went from 0.91 to 0.87, so it does not merge. That single mechanic converts prompt engineering from a matter of opinion into normal engineering with a red or green result.
The second-order effect
Once the number exists, other things become possible. You can route simple cases to a cheaper model and prove quality held. You can let a junior engineer tune retrieval without supervision. You can hand the system to the client's team and know they can maintain it.
None of that is available to a team that only has impressions.
Where to start today
Take fifty real inputs. Label them properly. Score whatever you have running now. The number will be lower than you expect, and that is the most useful information you will get this quarter.
One of these a month, no more
Field notes on production AI and infrastructure. No newsletter filler.