ao2-approval-policylisted
Install: claude install-skill uesugitorachiyo/ao2
# AO2 Approval Policy
Use this skill for AO2 approval work where a side effect must be bound to persisted exact-digest evidence. Approval is not a raw digest string; approval is a durable ticket with matching run, action, target, approver, status, expiry, and consumption state.
## Source Of Truth
| Area | Route |
| --- | --- |
| Runtime enforcement | `crates/ao2-runtime/src/lib.rs` provider sandbox approval paths |
| Approval shape | `schemas/approval-ticket.schema.json` |
| Security boundary | `AGENTS.md`, `docs/SECURITY.md` |
| Verification docs | `docs/VERIFICATION.md` exact-digest and provider sections |
| Main local gate | `npm run approval:exact-digest-gate` |
| Provider regression gates | `npm run provider:phase2-contract-hardening`, `npm run provider:adversarial-corpus` |
## Required Checks
For governed provider sandbox apply, verify all of these before treating approval as valid:
- `run_id` matches the current run.
- `action_digest` matches the recomputed sandbox patch preview.
- operation/resource matches `sandbox:apply` / `sandbox_patch`.
- requester/principal matches the role requesting the sandbox apply.
- approver identity is present and non-empty.
- ticket status is `approved`.
- ticket is not expired.
- ticket has not already been consumed.
## Evidence Chain
Expected durable linkage is:
`provider_prompt_transcript` -> `sandbox_patch_preview` -> `approval_ticket_requested` -> `approval_ticket_granted` -> `sandbox_patch_apply` -> patch summary or closur