Consent is consumed exactly once, declines included
An approval authorises one execution. An agent loop re-issuing the same call is asked again every time, which is the point.
The rule
Normative: this is the rule
- The first execution that finds a confirmed, hash-matching consent marks it consumed and proceeds; a second execution of the same call finds no unconsumed consent and asks again with a fresh interrupt.
- A decline is consumed the same way, so a decline never re-fires.
- Checking and consuming a consent must be atomic against concurrent execution of the same call: a copy of the consent read before the check began must never authorise a second execution.
- An execution that loses that race pauses on the pending interrupt raised by the winner rather than raising a duplicate question; a contended entry and an unconsented one are distinct causes of the same pause.
What it means
An approval is not the only verdict that gets consumed exactly once. A consent that was declined, one whose question was cancelled, and one left to lapse all settle the same way as an approval: consumed the moment they are read, never re-fired on a later entry, and never mistaken for authorization either. What repeats is the question, not the answer — the same call, entered again, finds nothing left to reuse and pauses on a fresh question of its own.
Example
The same node, called again with arguments that have not changed at all:
{ "message": "send it", "level": "info" }Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · RT-GATE-2 · changed in spec 1.0