The test is short enough to run on every rule you have written for an agent this year.
Is the decision observable at a chokepoint every call already goes through? Can it be decided without the agent's reasoning? Is it cheap to reverse if wrong? Two yeses and you can build something that stops the agent. Fewer, and what you have written is documentation.
Spotify's shunt plugin is the cleanest public example of both halves at once. The read path is a gate because a line count is a fact. The write path is a suggestion because "is this boilerplate" is a judgment. Same team, same plugin, same intent, and the README is honest that only one of the two is enforced.
The post above takes the argument into where the gate should live when you own the runtime, and into the trust problem that cheap-tier routing creates for any system that keeps what the cheap model produced.