spec

Gates

AOC v0.1.0 classifies each action with two fields:

Effect Class

The effect_class enum is closed in v0.1.0:

Gate

The gate enum is closed in v0.1.0:

Default Posture

Every non-read_only action should declare review_required or stricter.

The validator emits a finding when a non-read_only action declares gate: none. This is a finding, not an error, because v0 separates “valid” from “complete”.

Authorization Rule

If an action declares both:

then the contract must set:

The validator emits E_OUT_OF_BAND_REQUIRED when that rule is violated.

Runtime Boundary

AOC declares the gate. A runtime, host, or framework must enforce it. A valid contract does not prove that a runtime actually displayed a preview, collected approval, completed an authorization flow, or refused a forbidden action.