---
title: "UVO Action Gate: deterministic validation of an agent action proposal across up to nine stages, fail-fast. Returns APPROVE/WARN/ESCALATE/BLOCK."
method: POST
path: "/v2/uvo_full"
tags: ["agent-safety"]
---

# UVO Action Gate: deterministic validation of an agent action proposal across up to nine stages, fail-fast. Returns APPROVE/WARN/ESCALATE/BLOCK.

`POST /v2/uvo_full`

Deterministic validation for an autonomous agent action. Up to nine validation stages (IDs L0-L6, L8, L9 - historically non-contiguous; there is no L7) covering schema, measurability, reversibility, containment, danger, citation, commitment, existence and hallucination. Execution is fail-fast: a blocking stage ends the run, so not every request executes all nine stages. Stage L1 (hallucination) is reported but runs disabled unless enabled by the caller; this route does not enable it - use /v2/uvo_academic_verify for academic claim verification. Returns decision (APPROVE/WARN/ESCALATE/BLOCK), risk_score, blocking_layer and a per-stage layers array. Input contract: the body is {proposal: {...}}. Inside the proposal, claim and expected_outcome are required strings of at least 10 characters; success_metric is required for a non-BLOCK verdict (stage L6 blocks a proposal without it); action_type is optional but, when present, must be exactly one of shell, http, code_diff, decision, filesystem, config_change (lower case). Unknown fields are accepted. Sub-second validation time; transport not included.

## Request body

- object
  - `proposal` object, required — The agent action proposal to validate. Required non-empty object. Required inner fields: claim (string, minLength 10) and expected_outcome (string, minLength 10). success_metric (string) is required for a non-BLOCK verdict. Optional: action_type (one of shell, http, code_diff, decision, filesystem, config_change), target, args, idempotent, declared_sandbox. Unknown fields are accepted.

## Response `200`

Success (synthetic example)

## Other responses

- `400` — Bad Request — invalid or missing parameters.
- `402` — Payment Required (x402): response carries payment requirements; retry with the X-PAYMENT header (USDC on Base).

---

[API](https://skmtc.net/tooloracle/apis/tooloracle-mcp-platform.md) · [All operations](https://skmtc.net/tooloracle/apis/tooloracle-mcp-platform/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tooloracle/tooloracle-mcp-platform/revisions/632b69f12ea9/schema)
