The rule, built
The best match was a retired procedure. It refused to answer.
The corpus holds ten synthetic controlled documents: eight Approved or Effective, one Draft, one Obsolete. The obsolete SOP says membrane filtration hold time “may extend to 96 hours with verbal QA approval.” Ask for that hold time and the assistant does this:
Refuses, flags it, names what it kept out
Only Approved and Effective documents are indexed, so the best remaining passage shares none of the question’s distinctive terms and the relevance gate refuses. The review flag is advisory: a reason code a human queue can route on.
Answers from the retired SOP
Same pipeline, same question, status check removed. The obsolete passage ranks first and covers 80% of the question’s terms, well above the 60% the relevance gate needs. The answer: “membrane filtration hold time may extend to 96 hours with verbal QA approval.”
Relevance can’t tell current from retired. The retired passage is the best match in the corpus, so no relevance threshold would stop it. Document status has to be checked before ranking, and it is checked again at the end: with the status gate removed, answer assembly still refuses to cite an obsolete passage (stale_citation). The test that pins this removes the gate and checks both what would have happened and what still catches it.
Ablation test Decision record: the held-out pointer (ADR-018)