> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inviolet.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Approvals

> The gray zone. Per-intention queues, dual-approver routing, SLA timers, Slack fan-out, step-up auth.

## Routing

A request lands in the approval queue when:

* The matched policy returns `require_approval`
* The cascade's confidence falls into the ambiguous band (between `ambiguous_floor` and `match_threshold`) and `route_ambiguous_to_approval` is true
* The intent card explicitly flags it for review

## Approver UX

Approvers see a queue at `/approvals` + receive Slack and email notifications. Each notification carries:

* The prompt + matched intention + proposed verdict
* The forensic chain to the originating agent
* One-click allow / deny + an optional reason field
* Step-up affordance when the policy demands it (WebAuthn)

## SLAs

Per-intent SLAs control auto-expiration. After the SLA elapses without a decision, the request transitions to `auto_expired`. The agent receives a deny back.
