{
  "findings": [
    {
      "evidence_event_ids": [19, 21],
      "outcome": "PASS",
      "rule_id": "AS-001",
      "severity": "critical",
      "summary": "All 1 rejected call(s) remained outside the handler.",
      "title": "Rejected calls do not execute"
    },
    {
      "evidence_event_ids": [3, 7, 9],
      "outcome": "PASS",
      "rule_id": "AS-002",
      "severity": "critical",
      "summary": "All 1 gated execution(s) followed an explicit approval.",
      "title": "Approval precedes gated execution"
    },
    {
      "evidence_event_ids": [3, 7, 9],
      "outcome": "PASS",
      "rule_id": "AS-003",
      "severity": "critical",
      "summary": "Exact argument fingerprints matched across 1 approved call(s).",
      "title": "Approved arguments match executed arguments"
    },
    {
      "evidence_event_ids": [9, 10, 25, 26],
      "outcome": "PASS",
      "rule_id": "AS-004",
      "severity": "high",
      "summary": "All 2 executed call ID(s) had one ordered start and terminal event.",
      "title": "Execution lifecycle is unique and bounded"
    },
    {
      "evidence_event_ids": [4, 11, 27, 28],
      "outcome": "PASS",
      "rule_id": "AS-005",
      "severity": "high",
      "summary": "All 2 execution(s) correlated to one call and one output item.",
      "title": "Executed calls correlate to one call and one output"
    },
    {
      "evidence_event_ids": [27],
      "outcome": "PASS",
      "rule_id": "AS-006",
      "severity": "medium",
      "summary": "All 1 observed read-only call(s) ran without approval interruption.",
      "title": "Read-only tools avoid approval friction"
    }
  ],
  "schema_version": "0.1.0",
  "summary": {
    "fail": 0,
    "not_observable": 0,
    "pass": 6,
    "portability_gate": true
  }
}
