The five gates
Everything else — including redeploying an app whose permissions did not change —
is fully automatic. That is what makes the platform usable by an agent.
A pause, not a failure
A gated deployment sits inawaiting_approval. The plan stays valid, and
approving resumes the same deployment rather than starting a new one.
Approving at deploy time
--yes passes approval intent with the deployment request.
In non-interactive use, a plan with required approvals fails with
APPROVAL_REQUIRED unless --yes is supplied. That is deliberate: a script
should not silently widen production’s blast radius.
Capability grants approve separately
Requesting a capability never approves it, even for an admin, unless organization policy disables the requirement.Previews are exempt
Preview environments skip capability approval. They get sandbox connections and an empty database, so the risk is different in kind. See Previews.Structured for agents
Approval reasons are structured, so the MCP server returnsstatus: "approval_required" with next_actions an agent can follow — rather
than an error it has to interpret from prose.