Require per-claim attribution and validate it programmatically after generation.
Why
Instructing a model to cite is not a guarantee. Validating that every cited passage id exists in the retrieved set — and rejecting the answer otherwise — converts a request into an enforced property.
Trade-off
Some correct answers are rejected because attribution was malformed, so the abstention rate is higher than it strictly needs to be. In support, that is the right direction to err.