{
 "tool": "eclipse-meridian-mcp",
 "version": "0.1.0",
 "bench_date": "2026-10-26",
 "bench_version": "0.1.0-rebench1",
 "environment": "local",
 "qualifier": "local, synthetic scope (simulator)",
 "verdict": "CERTIFIED",
 "scope_label": "CERTIFIED(local, synthetic scope)",
 "counts": {
  "passed": 22,
  "failed": 0,
  "total": 22,
  "builder_suites": {
   "tests/test_meridian.py": "85 passed, 0 failed",
   "tests/test_meridian_fix_round.py": "45 passed, 0 failed"
  }
 },
 "checks": [
  {
   "id": "H5a",
   "name": "H-5 LIVE tools/list diff vs spec 6.1 (exactly 19, zero finalize-class)",
   "verdict": "pass",
   "evidence": "live=19 extra=[] missing=[] finalize-class=[]"
  },
  {
   "id": "F2",
   "name": "no break-glass/override param in 19 schemas",
   "verdict": "pass",
   "evidence": "hits=[]"
  },
  {
   "id": "H5b",
   "name": "H-5 finalize/sign names via MCP tools/call all unknown-tool (-32602)",
   "verdict": "pass",
   "evidence": "{'note_finalize': -32602, 'finalize': -32602, 'finalise': -32602, 'sign_note': -32602, 'signoff': -32602, 'sign_off': -32602, 'complete_note': -32602, 'prescribe': -32602, 'clinician_sign': -32602, 'note_sign': -32602, 'clinician_sign_simulator': -32602, 'tests.clinician_sign_simulator': -32602, 'signed_note_create': -32602, 'note_complete': -32602}"
  },
  {
   "id": "H5c",
   "name": "H-5 one-line import probe byte-for-byte on live MCP draft: AttributeError, draft UNSIGNED_DRAFT, signed_notes empty",
   "verdict": "pass",
   "evidence": "rc=1 stderr_tail=AttributeError: module 'meridian_engine' has no attribute 'clinician_sign' status=UNSIGNED_DRAFT signed_notes={}"
  },
  {
   "id": "H5d",
   "name": "H-5 extended sweep: grep+import across EVERY shipped file (engine,server,tools/*.py) \u2014 no sign-capable path under any name; simulator not imported/referenced by product code",
   "verdict": "pass",
   "evidence": "import_hits={} signed_after={} sim_mods=[] grep_clinician_sign_in_shipped=False grep_simulator_in_shipped=False signed_assignment_patterns=[]"
  },
  {
   "id": "H5e",
   "name": "H-5 adjacent sign-named helpers (sign_mandate_payload/note_sign_request) cannot sign a note",
   "verdict": "pass",
   "evidence": "signed_notes={} status_after_mandate_sign_helper=UNSIGNED_DRAFT; note_sign_request routes only (verified R suite)"
  },
  {
   "id": "BMER2",
   "name": "B-MER-2: SCHEDULING-only+AUDIT_REVIEW->PURPOSE_NOT_GRANTED; undeclared->PURPOSE_NOT_DECLARED; declared-wrong->PURPOSE_NOT_GRANTED; AUDIT_REVIEW-in-set exports (no over-refusal). Ruling: PURPOSE_NOT_GRANTED ACCEPTABLE \u2014 follows \u00a76.4 *_NOT_GRANTED convention (cf FIELD_CLASS_NOT_GRANTED), preserves NOT_DECLARED=undeclared-only distinction, flagged in README/manifest for registry adoption",
   "verdict": "pass",
   "evidence": "sched_only_audit=PURPOSE_NOT_GRANTED undeclared=PURPOSE_NOT_DECLARED declared_wrong=PURPOSE_NOT_GRANTED audit_in_set_ok=True records=1"
  },
  {
   "id": "BMER3",
   "name": "B-MER-3: tenant-2 pack ZERO tenant-1 records/refs; each pack chain-verifies standalone (engine + Ledger tool); cross-tenant refusal dual-sealed per H-15, no content leak",
   "verdict": "pass",
   "evidence": "pack1_n=2 pack2_n=2 leak2=[] leak1=[] engine_verify=(True,True) ledger_tool_ok=(True,True) dual_sealed=(True,True) cross=FIELD_CLASS_NOT_GRANTED cross_content_leak=False"
  },
  {
   "id": "BMER4",
   "name": "B-MER-4: refused gate_check/schedule/start_gate each seal 164.312(b)-shaped record w/ access_record_ref on verdict, booking nothing / not starting",
   "verdict": "pass",
   "evidence": "{'gate_check': ('CONSENT_SET_INCOMPLETE', True, True, True, True, True), 'schedule': ('JURISDICTION_MISMATCH', True, True, True, True, True), 'start_gate': ('JURISDICTION_MISMATCH', True, True, True, True, True)}"
  },
  {
   "id": "OBS",
   "name": "OBS: FULL_CHART in ANY mandate -> MANDATE_TERM_NOT_GRANTABLE (restrictive 6.3); errata flag in README+manifest",
   "verdict": "pass",
   "evidence": "{'SCHEDULING': 'MANDATE_TERM_NOT_GRANTABLE', 'DOCUMENTATION': 'MANDATE_TERM_NOT_GRANTABLE', 'AUDIT_REVIEW': 'MANDATE_TERM_NOT_GRANTABLE', 'ENCOUNTER_SUPPORT': 'MANDATE_TERM_NOT_GRANTABLE', 'INTAKE_ADMIN': 'MANDATE_TERM_NOT_GRANTABLE', 'SCHEDULING+DOCUMENTATION+AUDIT_REVIEW': 'MANDATE_TERM_NOT_GRANTABLE'} errata_readme=True errata_manifest=True"
  },
  {
   "id": "RDT",
   "name": "Regression DT-1/3/4/5 headline paths",
   "verdict": "pass",
   "evidence": "DT1=True DT3=True DT4=True DT5=RECORDING_CONSENT_MISSING"
  },
  {
   "id": "RA1",
   "name": "Regression draft/record separation: draft bytes via record surfaces = 0",
   "verdict": "pass",
   "evidence": "leaking_surfaces=[] chart_read=UNSIGNED_DRAFT_NOT_RECORD"
  },
  {
   "id": "RA2",
   "name": "Regression addendum law: post-signature edit -> ADDENDUM_REQUIRED, original byte-intact, addendum cites original fingerprint",
   "verdict": "pass",
   "evidence": "edit=ADDENDUM_REQUIRED intact=True addendum_cites=True"
  },
  {
   "id": "RA3",
   "name": "Regression note_sign_request stale fingerprint -> NOTE_FINGERPRINT_MISMATCH, signs nothing",
   "verdict": "pass",
   "evidence": "NOTE_FINGERPRINT_MISMATCH"
  },
  {
   "id": "RF1",
   "name": "Regression BAA_REQUIRED both variants (absent artifact, missing flow-down) + full-chain P0 still BAA_REQUIRED, sandbox ok",
   "verdict": "pass",
   "evidence": "absent=BAA_REQUIRED missing_flowdown=BAA_REQUIRED full_chain=BAA_REQUIRED sandbox_ok=True"
  },
  {
   "id": "RI1",
   "name": "Regression descriptor verbatim on success+refusal envelopes",
   "verdict": "pass",
   "evidence": "success_descriptor=Eclipse Meridian \u2014 governed telehealth operations \u2014 jurisdiction-gated encounters, signed-note integrity, PHI access evidence. Not a healthcare provider. refusal_descriptor=Eclipse Meridian \u2014 governed telehealth operations \u2014 jurisdiction-gated encounters, signed-note integrity, PHI access evidence. Not a healthcare provider."
  },
  {
   "id": "BMER5a",
   "name": "B-MER-5 fuzz 82 probes/19 tools: zero raw -32603, ids preserved, named refusals only",
   "verdict": "pass",
   "evidence": "n=82 escapes=[] id_lost=[] unnamed=[] sample_named={'mandate_upsert/missing': 'CONTAINER_TYPE_INVALID', 'mandate_upsert/wrong-type-first': 'MANDATE_SIGNATURE_INVALID', 'mandate_upsert/nested-finalize': 'DENIED_KEY', 'mandate_upsert/overlong-or-type': 'MANDATE_SIGNATURE_INVALID', 'mandate_get/missing': 'REF_TYPE_INVALID', 'mandate_get/wrong-type-first': 'REF_TYPE_INVALID'}"
  },
  {
   "id": "BMER5a2",
   "name": "B-MER-5 bench shapes named: CONSENT_ARTIFACT_TYPE_INVALID / ELEMENT_TYPE_INVALID / RECORD_TYPE_INVALID (or spec-consistent equivalents)",
   "verdict": "pass",
   "evidence": "{'start_gate/str-consent-artifact': '{\"ok\": false, \"error\": \"CONSENT_ARTIFACT_TYPE_INVALID: consent_artifacts[0] must be an object with a string consent_type (got str); refused by name\"}', 'gate_check/int-consent-artifact': '{\"ok\": false, \"error\": \"CONSENT_ARTIFACT_TYPE_INVALID: consent_artifacts[0] must be an object with a string consent_type (got int); refused by name\"}', 'context/dict-class-elem': '{\"ok\": false, \"error\": \"ELEMENT_TYPE_INVALID: requested_classes[0] must be a string (got dict); refused by name, never coerced\"}', 'context/list-class-elem': '{\"ok\": false, \"error\": \"ELEMENT_TYPE_INVALID: requested_classes[0] must be a string (got list); refused by name, never coerced\"}', 'verify/int-record-elems': '{\\n \"ok\": false,\\n \"refusal_class\": null,\\n \"detail\": \"verification verdicts are findings, not refusals (spec 6.1 tool 19)\",\\n \"cited_fact\": null,\\n \"mandate_ref\": null,\\n \"poli"
  },
  {
   "id": "BMER5b",
   "name": "B-MER-5 1500-deep nesting: no -32603, id preserved, named NESTING_TOO_DEEP, server alive after",
   "verdict": "pass",
   "evidence": "deep_id=102 expected=102 code=None named=True ping_id_ok=True"
  },
  {
   "id": "SUITES",
   "name": "Builder suites independently re-run on isolated copy",
   "verdict": "pass",
   "evidence": "{'tests/test_meridian.py': {'rc': 0, 'tail': ['85 passed, 0 failed']}, 'tests/test_meridian_fix_round.py': {'rc': 0, 'tail': ['45 passed, 0 failed']}}"
  },
  {
   "id": "N1",
   "name": "N-check STOOD (not re-run): fix did not change novel-mechanism surface \u2014 19-tool list identical, fused locks unchanged in kind (gate/pin/sealed-reads); changes were enforcement/partition/sealing/fuzz/sign-removal within same mechanism. Carried PASS from 2026-10-26 bench, spot-confirmed by RDT/RA1/RA2/BMER3",
   "verdict": "pass",
   "evidence": "carried PASS; mechanism surface unchanged (tools/list byte-set identical H5a)"
  },
  {
   "id": "U8",
   "name": "Bench isolation: workspace tree byte-identical before/after",
   "verdict": "pass",
   "evidence": "changed=[] iso=/tmp/meridian_iso_5nkc6erm"
  }
 ],
 "notes": [
  "RE-BENCH of FAILED 2026-10-26 scorecard (retained, unedited) after Silas fix round. All five defects B-MER-1..5 CLOSED; OBS resolved; no new fails.",
  "H-5 (B-MER-1) CLOSED, probed FIRST and in full: tools/list exactly 19 vs spec 6.1, zero finalize-class; 14 finalize/sign alias tools/call probes all -32602; byte-for-byte one-line import probe on a live MCP-created draft -> AttributeError: module 'meridian_engine' has no attribute 'clinician_sign', draft stays UNSIGNED_DRAFT, signed_notes={}; extended grep+import sweep across engine/server/tools/*.py found no sign-capable path under any name, no signed_notes assignment pattern, no clinician_sign/simulator reference in shipped code, simulator not in sys.modules of product modules and unreachable via MCP names. Signing from shipped code is impossible on the probed surface; simulator lives only in tests/clinician_sign_simulator.py as bench equipment.",
  "B-MER-2 CLOSED + NAMING RULING: PURPOSE_NOT_GRANTED is ACCEPTABLE under spec 6.4 registry convention \u2014 registry's *_NOT_GRANTED family (FIELD_CLASS_NOT_GRANTED) covers declared-but-not-granted; PURPOSE_NOT_DECLARED remains undeclared-only (verified). Name is a spec-gap addition flagged in README + bazaar-manifest spec_errata_flags for registry adoption at next spec rev; not a product defect.",
  "B-MER-3 CLOSED: per-practice hash chains. Tenant-2 AUDIT pack (2 records) contains zero tenant-1 records/patient refs (no PAT-SYN-001); tenant-1 pack likewise pure. Each pack chain-verifies standalone via engine access_pack_verify AND standalone Access Ledger Verifier tool. Cross-tenant refusal dual-sealed: FIELD_CLASS_NOT_GRANTED record present in BOTH practices' packs (own record_id/hash per chain), response leaks no patient content/classes.",
  "B-MER-4 CLOSED: refused encounter_gate_check (CONSENT_SET_INCOMPLETE), encounter_schedule (JURISDICTION_MISMATCH), encounter_start_gate (JURISDICTION_MISMATCH) each seal exactly one new 164.312(b)-shaped record (record_id/agent_id/patient_ref/classes_req+ret/purpose/ts/mandate_ref/verdict/prev_hash/hash/practice_id), verdict.access_record_ref == that record_id; schedule books nothing, start leaves encounter SCHEDULED.",
  "B-MER-5 CLOSED: 82-probe fuzz across all 19 tools (missing/wrong-type/nested-finalize/overlong + bench shapes) \u2014 zero -32603, zero id losses, zero unnamed; bench shapes named CONSENT_ARTIFACT_TYPE_INVALID, ELEMENT_TYPE_INVALID, RECORD_TYPE_INVALID (finding in access_pack_verify verdict envelope, per spec 6.1#19 verdicts-not-refusals). 1500-deep nesting -> NESTING_TOO_DEEP, id preserved, server answers ping after.",
  "OBS CLOSED at product level: FULL_CHART refused MANDATE_TERM_NOT_GRANTABLE for SCHEDULING/DOCUMENTATION/AUDIT_REVIEW/ENCOUNTER_SUPPORT/INTAKE_ADMIN and combined sets (restrictive 6.3 reading). Spec-errata flag present in README 'Spec-errata flags' and bazaar-manifest spec_errata_flags[] (incl. PURPOSE_NOT_GRANTED flag). Residual 6.3-vs-13.3 tension is a spec-level item for the parent/spec owner, not a product defect.",
  "Regression: DT-1/3/4/5 pass; draft/record separation 0 draft bytes on record surfaces; addendum law (signed via tests/ simulator as bench equipment): post-signature edit ADDENDUM_REQUIRED, original byte-intact, addendum cites signed fingerprint; stale-fingerprint NOTE_FINGERPRINT_MISMATCH signs nothing; BAA_REQUIRED absent-artifact + missing-flow-down + full-chain-P0 variants, sandbox read ok; descriptor verbatim on success+refusal envelopes.",
  "N-CHECK: stood from first bench (PASS), NOT re-run as a full novelty re-derivation \u2014 fix did not change the mechanism surface: 19-tool list byte-set identical, fused gate x pin x sealed-read mechanism unchanged in kind; fix touched enforcement/partition/sealing/fuzz guards/sign-removal within it. Spot-confirmed live by RDT/RA1/RA2/BMER3 in this bench.",
  "Builder suites independently re-run on isolated copy: tests/test_meridian.py 85 passed/0 failed; tests/test_meridian_fix_round.py 45 passed/0 failed \u2014 builder counts exact.",
  "SCOPE/CEILING: CERTIFIED(local, synthetic scope) only \u2014 spec 12/13.4 CERTIFIED (simulator) maximum at P0. No live-PHI, production, platform-access, or BAA claim. No fixes made, nothing committed/pushed/published. Bench ran on /tmp copy; workspace product tree byte-identical before/after (U8)."
 ],
 "history": "append-only; prior runs retained in results/ \u2014 this file is the re-bench (run suffix -2); the FAILED 2026-10-26 scorecard was not edited."
}