Use this prompt as a text-review gate, not an automated support agent. It compares draft wording with a small supplied policy fixture and produces records a human can inspect before any operational action.
Version the policy input
Give each approved clause a stable ID, owner, version, effective date, and canonical source. If two sources conflict, stop and send the conflict to the policy owner. Do not let the model select the preferred rule.
Keep expected decisions outside the prompt
Build both failure cases and controls that should pass, then withhold their expected labels during the run. Check that every input case produces exactly one JSON record, every failure cites a supplied policy ID and draft quotation, and the final release state remains on human hold.
Keep the send path separate
A PASS means only that the limited gate found no violation in the supplied fixture. It does not approve tone, accessibility, localization, identity checks, customer context, or newly changed policy. The audit must not send a reply, issue money, alter an account, or close a ticket.
