record_decision()
ScopedThe final commit. For risk ≥ medium it requires a granted approval — checked server-side from the decision row, not from tool arguments (invariant I6). Once written, the decision is immutable.
record_decision(decision_id, approval_id)→ IMMUTABLE DECISIONCallable over MCP as record_decision(decision_id, approval_id). REST mirror POST /v1/decisions/commit Planned — alpha is MCP-only
The commit. For anything medium-risk or above, the server checks for a granted approval itself — the requirement is computed from the decision row, so an agent can't talk its way past it. After this write, the decision is immutable.
Over MCP, your agent invokes it on its own when the moment calls for it — just describe the situation. A Python SDK for headless runtimes is planned; this is what the call will look like.
| Param | Type | Description |
|---|---|---|
| decision_idREQUIRED | string | The decision to commit. |
| approval_id | string | Required for risk ≥ medium. Verified server-side. |

