The tier model is T0–T3 (four tiers). Earlier documentation used T1–T5; that was deprecated in v0.2. See facts for the canonical model.
The four tiers
| Tier | Name | DFA states | Approval | Example actions |
|---|---|---|---|---|
| T0 | Observe | → OBSERVING | Auto-approved, logged | Read sensor data, query database, web search, fetch a file |
| T1 | Prepare | → PREPARING | Auto-approved, audited | Write a file, save waypoint, stage a plan, prepare a message draft |
| T2 | Act | ESCALATING → ACTING | Requires review | Move a robot, operate a gripper, publish /cmd_vel, deploy to staging |
| T3 | Commit | ESCALATING → COMMITTING | Requires human + optional M-of-N quorum | Execute a trade, enter a novel environment, run elevated shell, any irreversible action |
T0 calls never hit the network. They’re approved locally in microseconds. Governance adds zero latency to read-only operations.
The escalation function
Every request has a base tier from its capability token. The gateway elevates the effective tier based on four dynamic Δ factors:Δ_human — human presence
Δ_human(r) = 2 if contextSnapshot.nearbyHumans == true, else 0.Δ_trust — CSML-driven trust score
Δ_trust(r) is driven by the CSML score for the current foundation-model backend.Δ_trust = 3ifCSML < 0.30Δ_trust = 2if0.30 ≤ CSML < 0.60Δ_trust = 1if0.60 ≤ CSML < 0.80Δ_trust = 0otherwise
Δ_env — environment uncertainty
Δ_env = 2ifenvironmentClass ∈ { "shared_human", "unknown" }Δ_env = 1ifsensorHealth == "degraded"Δ_env = 0otherwise
Δ_novelty — first-time tool use
Δ_novelty(r) = 1 if r.toolName ∉ recentAuditWindow(k=50), else 0.Worked example
A warehouse robot with base tier T1 proposes anav2.move_to_pose action.
Now a person enters the aisle. The robot’s perception updates
nearbyHumans = true. The executive layer issues a fresh request for the continued motion.
The robot safe-holds until a human approves. The sponsor can tighten (but not loosen) the velocity envelope for this approved continuation.
Timeout semantics
| Tier | Default timeout |
|---|---|
| T0 | N/A (auto-approved) |
| T1 | N/A (auto-approved) |
| T2 | 5 minutes per decision |
| T3 | Configurable per action, default 30 seconds |
HUMAN_TIMEOUT event. Safety before availability.
Forbidden action sequences
In addition to tier checks, the Policy Gateway detects forbidden combinations that span tool boundaries:| Pattern | Why blocked |
|---|---|
filesystem.write → exec.run | Classic code-injection pattern |
credential.read → http.request | Credential exfiltration |
database.write → database.execute | SQL-injection escalation |
camera.capture → network.send to external host | Exfiltration risk |
Read next
CSML score
How Δ_trust is computed and calibrated against ROSClaw data.
Invariants
The six formal guarantees the tier model rests on.