Skip to content

Verdicts

Before a covered action executes, the client returns one of four verdicts: Allow, Ask, Block or Optimize. A verdict is deterministic because an explicit policy produced it.

The path of a covered actionEvery covered action reaches the policy decision point before it runs. The effective zone's intent policies produce one deterministic verdict.Covered actionPolicy decision point✓ Allow⚑ Ask✕ Block↻ Optimize
Figure 1. Every covered action reaches the policy decision point before it runs. The effective zone's intent policies produce one deterministic verdict.
VerdictWhat happens
AllowThe action runs. In Monitor, it may run and be flagged
AskBy default the action runs and is flagged for asynchronous review; it holds only where an atom opts in for an irreversible action
BlockThe action does not run. The agent receives a native refusal that names the rule that produced it
OptimizeThe path changes. In Enforce a lever acts; in Monitor it measures what it would have done

When several policies match one action, the most restrictive verdict wins, in this order: Block, then Ask, then Optimize, then Allow.

Ask lets the action run and flags it for review, so a person can decide whether the agent should do it again. It prevents recurrence, not the first occurrence. An atom can opt in to hold an irreversible action until it is answered; nothing else waits on a person.

How Ask reaches the agent depends on the agent. Claude Code receives it as its own native ask, carrying the rule’s reason. Codex CLI has no ask of its own, so it receives a message carrying the reason, and the call proceeds.

Optimize changes the path of an action instead of stopping it. Each change is made by a lever, and what a lever does depends on the mode of the policy.

LeverStatus
loop_stopActs in Enforce; measures in Monitor
steerActs in Enforce; measures in Monitor
narrow_outputActs in Enforce on Claude Code; measures in Monitor
effort_clampMeasures by default, in Monitor and Enforce alike; acts in Enforce only where you opt in
context_editMeasures by default, in Monitor and Enforce alike; acts in Enforce only where you opt in
prefix_guardMeasures by default, in Monitor and Enforce alike; acts in Enforce only where you opt in
substituteThis lever is not shipped, and in Monitor it measures only

In Monitor, a lever only measures what it would have done, and the record says so. In Enforce, it is applied.

Illustrative scenario. The same action, git push, can earn each verdict depending on its context:

ContextVerdict
An agent pushes a feature branch of a repository its team ownsAllow
An agent pushes to a shared release branchAsk: the push runs and is flagged for review
An agent force-pushes to the main branch of a production repositoryBlock
An agent retries the same failing push in a loopOptimize: in Enforce, loop_stop ends the loop