| Harm within the agent's permitted scope | No | That is alignment. Policy cannot tell a legitimate call from a harmful one when both are allowed. |
| Prompt injection causing a permitted action | No | The action is permitted. Policy cannot see intent. |
| Kernel or hypervisor escape | No | The substrate's job: gVisor, Firecracker. |
| Secrets sent to a permitted destination | No | Destination policy decides where, not what. Our own test environment does this on every run, and it is recorded every time. Stopping it needs payload inspection, which is not built yet. gym: exfil.via_allowed_* |
| Unauthorized egress, direct or through the proxy | Yes · rung 3 | Default-deny egress the agent cannot bypass, even as root. netns tests as root · Kubernetes and Compose tests |
| Cloud credentials from the metadata endpoint | Yes · rung 3 | Refused whatever policy says, and cannot be exempted. TestMetadataEndpointIsUnreachable |
| A forbidden MCP tool call | Yes · rung 2 | Refused before the server sees it, including messages two parsers would read differently. TestEnforcementPointAndServerReadTheSameCall |
| Acting after the kill switch | Yes | Connections cut, process group killed. Measured at about a millisecond; CI asserts 100 ms. scripts/killswitch-e2e.sh |
| An action that is never recorded | Yes | Fail closed: if the decision cannot be written, the action does not happen. gym failclosed.* · TestAnUnrecordedCallIsNeverForwarded |
| Deleting the most recent evidence | With an anchor | Records after the last checkpoint can be removed without trace from the file alone. A checkpoint kept elsewhere detects it. Live logs are checkpointed every 10 s. TestAnchorDetectsRollback |