// Week one: hold everything.await manage_approval_policy({ channel: "social", hold: "everything",}); // Week four: the hooks have been right for a while.// Posts flow. Anything that spends still holds.await manage_approval_policy({ channel: "social", hold: { spend_over: 0 },}); // Loosen per policy, as trust builds.// Tighten the same way, in one call.The rule is configuration.
Deterministic checks, not flaky prompt output. Asking a model nicely to check with you first is a hope, not a control. An approval policy is enforced by the platform: when a policy says hold, the artefact stops existing as a send and starts existing as a queue item, whatever the model had in mind.
manage_approval_policy writes the rule and list_approval_policies reads it back, so your agents can plan around the checkpoints rather than trip over them. Hold everything on a channel, hold above an audience threshold, hold anything that spends. The loop pauses at judgement points and nowhere else, and you loosen per policy as trust builds.