RT002 · Observed monetary action exceeds declared economic authority
A traced action moved more money than stoa-declared.toml allows.
- Severity: high · Gates: no (v1 shadow mode).
- Kind: runtime contradiction (declared vs. observed). Cadence: up
to twice per agent per analysis (per-action limit, aggregate limit). Emitted by: stoa runtime merge.
Detection
Fires when the analyzed window's observed amounts contradict the agent's declared economic_authority:
- a single action's amount exceeds
max_per_action(same currency), or - the window total exceeds
daily_aggregate— stated honestly: the
window total is compared against the declared daily limit, so an analysis window longer than a day overstates this; the finding's message says so.
Both sides are cited: trace_ref (the maximum-amount span) and declared_ref (agents."<id>".economic_authority.max_per_action / .daily_aggregate).
Example
[agents."a09ff38687e9".economic_authority]
max_per_action = {amount = 2000, currency = "USD"}
{"kind": "action", "span_id": "b2", "capability": "payment_access",
"amount": {"amount": 2500.0, "currency": "USD"}}
Fix
Enforce the declared limit in code (a bounding check on the money-moving path — the same signal autonomy inference credits), or raise the declared authority through review.
Suppress: stoa.toml → [runtime] suppress = ["RT002:<agent_id>"].