Request
Response
A refusal is
200, not 4xx. The decision succeeded; the answer was no.
Treating it as an HTTP error would make a working control look like an outage
in every dashboard you own.The gates, in order
Evaluated in sequence, short-circuiting at the first refusal. Gates after that point are recorded as not reached rather than left blank.authority · status · window · scope · clean_context · bounds ·
policy · budget · review
Budget is debited last, after every structural check has passed, so an action
refused earlier does not consume an allowance it never used. See
The nine gates.

