{
 "product": "eclipse-charter-mcp",
 "version": "0.1.0",
 "date": "2026-10-25",
 "bench_agent": "W-003 Verity (independent re-derivation; own fixtures; builder tests treated as evidence, not verdict)",
 "phase_coordination": "Silas build phase completed first (28 builder tests, smoke, dogfood), then this independent Verity bench",
 "scope_label": {
  "scope": "local",
  "phase": "P0"
 },
 "verdict": "CERTIFIED(local)",
 "score": "24/24",
 "score_pct": 100.0,
 "checks": {
  "T1_drift_named_both_values": {
   "pass": true,
   "detail": "actual=46.3415 flags=['ALLOCATION_DRIFT', 'CONCENTRATION_BREACH', 'LOT_DATA_UNAVAILABLE']"
  },
  "T2_ira_trap_pre_settlement": {
   "pass": true,
   "detail": "WASH_SALE_IRA_TRAP / IRC \u00a71091 + Rev. Rul. 2008-5"
  },
  "T6_scheduled_contribution_trigger": {
   "pass": true,
   "detail": "WASH_SALE_IRA_TRAP"
  },
  "T5_lot_unavailable_loud": {
   "pass": true,
   "detail": "cov={'full_lot_accounts': 2, 'total_accounts': 3, 'coverage_pct': 66.7}"
  },
  "T1b_fee_above_ceiling": {
   "pass": true,
   "detail": "fees=42.0"
  },
  "T7_spouse_supplied_provenance": {
   "pass": true,
   "detail": "matches=[{'activity_ref': 'va_buy_vti_ira', 'account_ref': 'v_ira', 'account_type': 'ira_trad', 'qty': 10, 'match_kind': 'REPLACEMENT', 'provenance': 'plaid'}, {'activity_ref': 'va_spouse_buy_vti', 'account_ref': 'spouse_ext', 'account_type': None, 'qty': 5, 'match_kind': 'REPLACEMENT', 'provenance': 'OWNER_SUPPLIED'}]"
  },
  "T8_clean_no_drift_receipted": {
   "pass": true,
   "detail": "NO_DRIFT"
  },
  "T9_advice_10_phrasings": {
   "pass": true,
   "detail": "misses=[]"
  },
  "T16_tax_determination_bait": {
   "pass": true,
   "detail": "code=T3_REFUSED:TAX_DETERMINATION state_identical=True"
  },
  "T12_unsigned_policy": {
   "pass": true,
   "detail": "code=POLICY_UNSIGNED state_identical=True"
  },
  "T4_schwab_day5_day7_failclosed": {
   "pass": true,
   "detail": "d5=AGING d7=EXPIRED_FAIL_CLOSED"
  },
  "T3_mandate_wall_state_identical": {
   "pass": true,
   "detail": "allowlist: code=MANDATE_VIOLATION state_identical=True"
  },
  "T14_401k_fence_order_and_mandate": {
   "pass": true,
   "detail": "401k order: code=FENCE_401K state_identical=True"
  },
  "T14b_401k_fence_mandate": {
   "pass": true,
   "detail": "code=FENCE_401K state_identical=True"
  },
  "T11_dead_grant_order": {
   "pass": true,
   "detail": "code=GRANT_DEAD state_identical=True"
  },
  "T10_t3_inside_valid_mandate": {
   "pass": true,
   "detail": "misses=[]"
  },
  "T13_credential_route_injection": {
   "pass": true,
   "detail": "code=T3_REFUSED:CREDENTIAL_SCRAPING state_identical=True | code=FENCE_401K state_identical=True"
  },
  "T17_grantkeeper_port_seam": {
   "pass": true,
   "detail": "fixture-keeper receipts identical; drift unchanged"
  },
  "T_FUSION_one_household_three_legs": {
   "pass": true,
   "detail": "drift+wash+mandate on a single fixture household"
  },
  "T13b_schema_no_credential_fields": {
   "pass": true,
   "detail": "cred_keys=[] n=11"
  },
  "T15_descriptor_all_tools": {
   "pass": true,
   "detail": "miss=[]"
  },
  "T_FUZZ_schema_enumerating_valid_context": {
   "pass": true,
   "detail": "runs=162 fuzz_fail=[] targeted_fail=[]"
  },
  "T15b_refusal_descriptor_state_identical_stdio": {
   "pass": true,
   "detail": "ADVICE_REQUEST"
  },
  "T_NC_renamed_vendor_verbs_lt_80pct": {
   "pass": true,
   "detail": "renamed 3/11 = 27.3%; novel verbs: policy_upsert, policy_get, lots_get, drift_check, wash_scan, fee_report, grant_status, document_ingest have no Plaid/SnapTrade/Alpaca counterpart"
  }
 },
 "defects": [],
 "builder_greens_reproduced": "unittest: OK; smoke: OK; dogfood: OK",
 "dogfood_evidence": "fixtures/dogfood-evidence.json \u2014 owner $1,000 AI/quantum sleeve, signed policy ACTIVE, drift NO_DRIFT (receipted), wash coverage 100%, grant HEALTHY, receipt chain valid. Fixture-form local adapter (no live Plaid pull in this run) \u2014 label not upgraded (spec L9).",
 "bench_harness_corrections": "Run 1 PARTIAL card retained append-only. Its 2 failures were harness bugs, re-derived here: (1) T1 expected 46.34 at 2dp; engine receipts carry 4dp (46.3415) \u2014 both values still named. (2) fuzz predicate labeled any non-INVALID_PARAM refusal 'unnamed'; legit named refusals (POLICY_NOT_FOUND, ACCOUNT_NOT_FOUND, APPROVAL_UNVERIFIED) are named by definition \u2014 predicate now validates the closed-vocabulary shape. Run 2 (23/24) retained: its sole remaining failure was the same predicate rejecting lowercase field suffixes in INVALID_PARAM:<field> \u2014 suffix charset now admits field names.",
 "d1_ratification": "HONORED: GrantKeeperPort seam present, no extraction flag anywhere in source (grep-verified at bench); grant-keeper treated as permanent Charter architecture.",
 "descriptor": "Not a bank. Not an investment adviser. Charter checks your rules \u2014 it never writes them.",
 "not_tested": [
  "Live Plaid pull \u2014 P0 adapter is local Plaid-shaped fixture form; live connector run is a separate gate",
  "P1 grant-keeper GA (real Schwab OAuth choreography) \u2014 P0 bench uses the simulated Schwab clock fixture per spec \u00a715.1.4",
  "P2 order submission \u2014 no live/paper broker rail at P0; mandate leg benched at engine level (prepare-check only, PREPARED never implies submittable)",
  "Hosted/multi-tenant operation beyond the stdio boundary"
 ]
}