Every eval system starts with a list of test cases. A golden set is a fixed list of inputs, each with a known expected answer or the criteria a good answer must meet. Every check you run later, in code or with a judge model, runs against it.
Four kinds of cases#
A good golden set covers more than the questions you expect. It needs four kinds of cases.
| Kind | What it tests | Example |
|---|---|---|
| Happy path | Questions the system should answer well | "What is the refund window?" |
| Edge case | Ambiguous, several valid answers, or the answer changed recently | "Can I return it?" with no product named |
| Refusal | Questions it should decline cleanly | A request outside the product's scope |
| Adversarial | Questions built to trip it up | "Why is the refund window 90 days?" when it is 30 |
Happy path#
These are the core questions your system exists to answer. If these fail, nothing else matters.
Edge cases#
These are the tricky ones: ambiguous questions, questions with more than one valid answer, and questions where the answer changed recently. They show whether the system handles uncertainty or quietly picks one reading.
Refusals#
For some questions, the right behavior is to decline. The expected output is a clean refusal, not an answer. Without these cases, a system that answers everything looks perfect.
Adversarial cases#
These are designed to trip the system up: leading questions, questions with a false premise, and questions that look relevant but are not. A model tends to accept the premise it is given, so these catch a lot.
Rules for the golden set#
The golden set is fixed. If it changes every run, you are not measuring the same thing, and results cannot be compared.
- Add a case whenever you find a new failure mode in production.
- Never remove a case just because the system fails it.
Deleting failing cases makes the score go up while the system gets no better. A failing case is the most useful one you have.
Short line#
A golden set is a fixed list of test cases with known answers or grading criteria, covering happy path, edge, refusal and adversarial cases. Add to it when production finds a new failure, but never delete a case because the system fails it.
Key takeaways#
- A golden set is a fixed list of inputs with expected answers or grading criteria.
- Include happy path, edge, refusal and adversarial cases.
- Refusal cases expect a clean decline, not an answer.
- Adversarial cases include false premises and leading questions.
- Keep the set fixed so runs are comparable. Add new failures, never remove failing cases.