Skip to content

Blocks and Disputes

When the reviewer decides an agent action is problematic, it issues a block. The agent can dispute the block, and the reviewer can lift it. This page explains the three block types and the dispute mechanism.

Block types

Tool block

Issued during PreToolUse review. The tool is denied before it executes. The agent sees a block message explaining why the tool was rejected.

While tool-blocked, the agent can only use tools in the whitelisted list (if configured) and the message_adversary MCP tool. All other tool calls are denied until the block is resolved.

Write block

A specialized form of tool block for Edit and Write operations. The reviewer sees the proposed file change (the diff) and can reject it before it touches disk. The file is not modified.

Stop block

Issued when the agent tries to end its turn via the Stop hook. The reviewer determines the work isn't done and forces the agent to continue. The reviewer's feedback is injected into the agent's session explaining what still needs to be done.

Disputing a block

When the agent is blocked, it can call the message_adversary MCP tool to send a message directly into the reviewer's monitoring session. This is a conversation — the agent explains why it thinks the block is wrong, and the reviewer responds.

If the reviewer agrees, it issues a release determination. The client lifts the block and the agent resumes normal operation.

Agent → message_adversary("I need to run this shell command because...")
Frank → "Understood, releasing the block."
→ Block lifted, agent continues

The agent can send multiple messages — there's no limit on the dispute conversation. But the reviewer is adversarial by default; it won't release just because the agent asks nicely.

User intervention

You can also intervene directly:

/z direct sends a high-priority directive to the reviewer that overrides its behavior. Use this to tell the reviewer to stand down on a specific issue.

/z ask sends a question without changing the reviewer's behavior — useful for understanding why a block was issued.

What stays available during a block

Even while blocked, the agent can always use:

  • The message_adversary MCP tool (to dispute the block)
  • Any tools in the whitelisted list (configured in your settings)

Everything else is denied until the block is released.