{
 "tool": "eclipse-beacon-mcp",
 "version": "0.1.0",
 "bench_date": "2026-10-25",
 "bench_version": "0.1.0",
 "environment": "local",
 "qualifier": "local",
 "verdict": "CERTIFIED(local)",
 "checks": [
  {
   "id": "B1",
   "name": "ingest provenance complete (JSON + text parity)",
   "verdict": "pass",
   "evidence": "all 15 leaf fields carry provenance {source=auto.json, locator, confidence=1.0}; text dec page extracts an identical draft with confidence 0.9 provenance"
  },
  {
   "id": "B2",
   "name": "propose-only merge writes nothing to the graph",
   "verdict": "pass",
   "evidence": "two unconfirmed ingests (policy + household) -> status=proposed; policies/assets/persons still empty in state; only trace is the ingest_proposed receipt (confirmed=false)"
  },
  {
   "id": "B3",
   "name": "confirmed merge lands; re-ingest is idempotent",
   "verdict": "pass",
   "evidence": "confirmed merges -> 4 policies + declared assets (incl. uncovered boat-1); re-ingest of unchanged auto.json -> changes_applied=0 (no drift, no rewrite)"
  },
  {
   "id": "B4",
   "name": "radar membership, windows and ordering",
   "verdict": "pass",
   "evidence": "as_of 2026-10-25 -> 8 events, days_until ascending; health premium_due 7d, auto 11d, term-life 14d, escrow 26d, grace_end 26d, homeowners renewal 51d inside windows; auto renewal (127d) + homeowners premium_due (37d) correctly outside"
  },
  {
   "id": "B5",
   "name": "radar severity incl. overdue = critical",
   "verdict": "pass",
   "evidence": "severity ladder holds: 7d=high, 51d=low; at as_of 2026-11-06 the auto premium_due is overdue (days_until=-1) -> critical"
  },
  {
   "id": "B9",
   "name": "enrollment windows flagged [verify]",
   "verdict": "pass",
   "evidence": "2 enrollment-window events (ACA + Medicare AEP) surface with verify=true and '[verify dates per year/program]' in the consequence text"
  },
  {
   "id": "B6",
   "name": "Vigil rule: windows tighten only, never loosen",
   "verdict": "pass",
   "evidence": "loosening renewal 60d->30d -> rejected naming the Vigil rule; tightening premium_due 14d->40d -> accepted (homeowners premium_due at 37d now reported); unknown window kind -> rejected"
  },
  {
   "id": "B7",
   "name": "gap detection: uncovered, duplicate, premium spike",
   "verdict": "pass",
   "evidence": "gap report finds: boat-1 uncovered (declared, no policy); vehicle-1 duplicate coverage after a 2nd confirmed policy lists it; auto premium spike +21.19% vs prior term flagged over the 15% threshold"
  },
  {
   "id": "B8",
   "name": "receipt chain valid; tamper detected",
   "verdict": "pass",
   "evidence": "verify_receipt_chain=true over the bench run's 16 receipts (ingest/radar/gap); a deep copy with one altered receipt detail -> false (tamper detected)"
  },
  {
   "id": "U1",
   "name": "auth enforced",
   "verdict": "na",
   "evidence": "local stdio transport: no credential layer exists to test; process ownership is the boundary"
  },
  {
   "id": "U2",
   "name": "schema valid",
   "verdict": "pass",
   "evidence": "tools/list returns exactly the 5 tools, each with inputSchema type object + properties + required"
  },
  {
   "id": "U3",
   "name": "no network surface (local-only build)",
   "verdict": "pass",
   "evidence": "server.py (the whole product) contains no network call sites \u2014 no urllib/socket/requests/http.*: the no-network B0 claim is structural, not configured"
  },
  {
   "id": "U4",
   "name": "no secret leak",
   "verdict": "pass",
   "evidence": "no secret patterns in 19 tool outputs"
  },
  {
   "id": "U5",
   "name": "sane errors",
   "verdict": "pass",
   "evidence": "missing file -> error; unknown policy -> error; unknown tool -> error; malformed line survived (policy_list answers); unknown method -> -32601"
  },
  {
   "id": "U6",
   "name": "process health",
   "verdict": "pass",
   "evidence": "initialize answered in 64 ms; ping ok"
  },
  {
   "id": "U7",
   "name": "audit completeness",
   "verdict": "pass",
   "evidence": "state ledger covers run in order ['ingest_proposed', 'ingest_merged', 'radar_report', 'gap_report']; 16 receipts, seq strictly increasing, hash chain valid"
  },
  {
   "id": "U8",
   "name": "bench isolation",
   "verdict": "pass",
   "evidence": "workspace product state byte-identical before/after bench"
  }
 ],
 "notes": [
  "Local only: synthetic fixtures, bench state in /tmp; the product contains no network code path (U3 verifies structurally).",
  "B0 scope: read/watch only \u2014 no shopping, binding, cancelling, paying or claims paths exist to test. Agency edition untouched (counsel/licensing gate per spec)."
 ],
 "history": "append-only; prior runs retained in results/"
}