A golden set is your versioned, reproducible test suite for retrieval+generation. The best items specify more than the expected answer text — they pin the evidence that must be retrieved.
{
"id": "refund-enterprise-001",
"question": "Can an enterprise customer get a $12k refund?",
"must_retrieve": ["refund-policy", "enterprise-exception"],
"expected_answer_facts": ["30-day window", "over $10k needs legal approval"],
"forbidden_claims": ["all refunds are automatic"]
}
Why must_retrieve matters. An item that only checks the answer text can pass by luck even when retrieval silently regressed — the model guessed right this time. Pinning the required evidence ids turns a flaky end-to-end check into a precise one that catches retrieval drift before it becomes a wrong answer.
Blend human + synthetic. Hand-curated items (built by domain experts) cover the tricky edge cases that matter; LLM-generated synthetic items give cheap breadth across the corpus. Humans buy precision on the cases you fear; synthesis buys coverage you couldn't afford manually.
Include adversarial 'should refuse' items. A golden set that only contains answerable questions never tests your refusal behaviour. Add questions with insufficient context whose correct answer is 'I don't know' — that's how you keep honesty from regressing.