Reference

Decision Statuses

Gate gives the runtime a small decision vocabulary: execute, wait, revise, replan, or stop.

Execution rule

Execute a governed action only on allow or approved. Treat every other state as a control signal, never as permission to execute.

Status table

StatusMeaningRuntime behavior
allowAutomatic policy allow.Execute the exact proposed tool call.
rejectAutomatic policy reject.Do not execute. Replan or stop.
pending_reviewA human-review thread is open.Persist the returned thread_id, wait, poll, or resume from a callback.
changes_requestedA reviewer supplied feedback on the current proposal.Revise the proposed action and send a guarded revision.{taskID}.{threadID} event on the same thread.
approvedThe reviewer approved the current proposal.Execute only after required signed-approval checks succeed.
rejectedThe reviewer rejected the current proposal.Do not execute. Replan or stop.

Requested changes stay on the same review thread

When polling returns changes_requested, use the reviewer message as feedback, produce a revised proposal, and POST a revision event to the same task and thread. Gate reevaluates the revision while preserving the review history.

json
{
  "event_type": "revision.task-123.THR-A1B2C3D4",
  "event_summary": "Revised after reviewer feedback",
  "payload": {
    "revision": {
      "revision_id": "rev-002",
      "tool_name": "issue_refund",
      "subject": "Review issue_refund",
      "request_payload": { "amount": 250 }
    }
  }
}

A revision requires a unique revision_id, tool_name, subject, and request_payload. Duplicate, stale, or no-longer-pending revisions return 409.

Identifiers

IDUse
task_idYour runtime-controlled grouping ID. Reuse is supported across multiple decision requests.
thread_idGate-generated identifier for one exact human-review request. Prefer it for polling and revisions.
revision_idYour unique identifier for one revision inside a review thread.

Recommended branch behavior

Fail closed

Stop execution on unknown status, API failure, missing required approval proof, invalid or consumed token, or timeout. The HTTP request succeeding is not itself permission to execute.