FlowDrop Workflow Specification 1.0-draft

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
  1. 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.
  2. A decline is consumed the same way, so a decline never re-fires.
  3. 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.
  4. 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:

A call already answered, entered again unchangedpaused
{ "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