How it works
When your runtime routes proposed actions through Sector8, each action is evaluated before side effects start. Honor the returned decision before dispatch.ALLOW or DENY is returned. If nobody answers, it is denied. POST /api/v1/evaluate does not wait; it fails closed to DENY.
Enforcement holds where the runtime routes proposed actions through Sector8 and fails closed on gate unavailability or unknown decisions. See the Quickstart and Evaluate API.
GUARD_INTERNAL_ERROR deny with a decision artifact.
The seven invariants
INV-1 - Single execution gate
No authorized routed path from model output to tool execution that skips evaluation. The admission path is the dispatch control point.INV-2 - Dual gate requirement
Policy decides intent. Authorization decides capability. Execution requires both.INV-3 - Per-step enforcement
Evaluation runs per tool call, per agent step, after planning and before execution.INV-4 - Untrusted executor model
The LLM produces candidates. The control plane decides outcomes. LLM confidence is not a security property.INV-5 - Spotlighting before policy
Content is trust-tagged before policy evaluation. Untrusted content cannot promote its own trust level.INV-6 - Explicit execution condition
Execute only on an explicitALLOW that your runtime honors. DENY, missing, or unknown decisions must not execute. On the MCP connector path, an unresolved human hold must not execute; TTL expiry is a deny.
INV-7 - Decision evidence on deny
Deny responses surfaced to the caller includeevidence_hash, has_forensic_payload, policy_version_id, and decision_trace_id so operators can correlate what was blocked and why.
Admission Controller checks
Each tool call passes sequential checks. Failure at any check returnsDENY immediately.
Check 5 (security threats) runs before check 6 (compliance) so that the reason code identifies the primary threat. A
web_fetch to a private IP with PII in the body returns PRIVATE_IP_BLOCKED, not a compliance code.Human hold on the MCP connector
On the MCP connector path, a borderline action can be held for a human before the connector returnsALLOW or DENY. A reviewer approves or denies via the API. If no action is taken within the TTL window, the request is denied (fail-closed).
POST /api/v1/evaluate is strictly synchronous. If that path would need to wait, it returns DENY with REVIEW_REQUIRED_FAIL_CLOSED.
Pre-filter
Before the full Admission Controller runs, a fast-path classifier routes requests. These labels are internal routing, not publicdecision values:
The pre-filter also decodes and reclassifies obfuscated inputs. Covered forms include
zero-width insertion, character arrays, hex escapes, base64 blobs, and rot13.
Spotlighting
All content entering policy evaluation is tagged with a trust source before evaluation.
Untrusted content cannot promote its own trust level.
What gets blocked
Prompt injection, shell injection, SSRF, obfuscated payloads, PII and PHI exfiltration, data exfiltration, BOLA violations, BFLA violations, and rate-flood or reasoning-DoS patterns.Forensic telemetry
Blocked actions produce a decision artifact your operators can audit and correlate.
Exact
reason_code and policy_version_id values depend on your active policy and environment. See Evaluate for the runtime contract.
