Reporting

June 6, 2026 · View on GitHub

sponsio report aggregates violations from session logs into a per-contract, per-agent, per-tool summary. Most useful during observe mode. It tells you which contracts are firing and whether the firings are real.

sponsio report --since 7d
sponsio report --since 7d --format json > report.json
sponsio report --agent support_bot

Output shape

Contract                               Fires   Sessions   Agents   Tools
─────────────────────────────────────  ──────  ─────────  ───────  ──────────────
policy gate before refund              3       3          1        issue_refund
bash must not contain rm -rf           1       1          1        bash
token_budget(50000)                    0       -          -        -

Columns:

  • Fires: total violation count in the window.
  • Sessions: distinct sessions where it fired. A contract firing once in three sessions is different from firing three times in one session.
  • Agents: distinct agents that tripped it.
  • Tools: the tool calls that triggered the firing.

Flags

FlagDefaultEffect
--since7dTime window. Accepts Nd, Nh, Nm, or an ISO timestamp.
--agentallFilter to one agent.
--contractallFilter to one contract by name.
--formattabletable, json, or markdown.
--sessions-dir~/.sponsio/sessions/Where to read session logs.

See CLI reference for the full flag list.


What to look for

PatternLikely meaning
A contract fires in most sessionsToo strict. Relax the assumption or the threshold.
A contract never firesMaybe not needed, or not reachable from the current trace.
A contract fires once, on a real incidentWorking. Promote to enforce.
Violations clustered on one toolNarrow the rule to that tool instead of tool-wide.
Violations clustered on one agentInvestigate that agent's prompt or tool set.

Next