RT001 · Declared human oversight not observed at runtime
autonomy_intent is declared recommend_only/human_approved, but traces show high-impact actions executing with no approval span.
- Severity: critical · Gates: no (v1 shadow mode — no RT rule gates;
the only runtime gate is the opt-in stoa runtime drift --fail-on-drift).
- Kind: runtime contradiction (declared vs. observed). Cadence: once
per agent per analysis. Emitted by: stoa runtime merge, never stoa scan.
Detection
The runtime analogue of DECL001, one layer stronger: DECL001 says the code doesn't back up the declared oversight; RT001 says production behavior didn't. Fires when the declared autonomy_intent claims a human is in the loop, but the analyzed window contains high-impact action spans (payment_access, database_write, shell_execution, …) with no linked approval span (approval_span_id).
Both sides are cited: trace_ref ({file, line, span_id} — the first unapproved high-impact span) and declared_ref (agents."<id>".autonomy_intent).
Example
# stoa-declared.toml
[agents."a09ff38687e9"]
autonomy_intent = "human_approved"
{"kind": "action", "span_id": "b2", "capability": "payment_access",
"amount": {"amount": 2500.0, "currency": "USD"}} // no approval_span_id
Fix
Wire the approval control into the live path (and record it as an approval span linked via approval_span_id), or correct the declaration through review if unattended operation is intentional.
Suppress (trace-anchored — config, not an inline comment): stoa.toml → [runtime] suppress = ["RT001:<agent_id>"]. Suppressed findings stay counted and listed.