{"bench_agent":"W-003 Verity (scoped re-bench; independent cases, valid mandate context)","bench_type":"SCOPED RE-BENCH — D1+D2 lines ONLY. All other lines stand from the original bench (eclipse-airtime-mcp-2026-10-25.json, retained untouched). Full suite NOT re-run.","date":"2026-10-25","defects_closed":["D1 (MEDIUM) — container-typed params now refused by name CONTAINER_TYPE_INVALID pre-gate/pre-call, zero raw exceptions incl. nested targeting and mandate_check string mutation, with valid mandate context","D2 (HIGH) — campaign_set_status runtime enum enforced TARGET_STATUS_INVALID pre-gate on both the direct tool and the mandate_check path; 0 seals, 0 writes, state unchanged for every non-enum input probed"],"defects_open":[],"fix_under_test":"Silas fix in eclipse-airtime-mcp/airtime_engine.py (require_container_param / require_target_status / validate_mutation_containers) + server.py (_validate_schema_containers runtime inputSchema enforcement, pre-dispatch)","manifest_instruction_for_rook":"Airtime P0 may now be set CERTIFIED (local/simulator), score 23/23, novelty NOVELTY_PROVEN, defects D1+D2 CLOSED by this re-bench card (eclipse-airtime-mcp-2026-10-25-2.json). Original PARTIAL card retained untouched (append-only). Bench agent did not modify bazaar-manifest.json.","method":"Independent harness (54 refusal cases + 6 sanity), fresh temp state, valid context seeded first (claims record IN_FORCE, mandate ACTIVE, valid draft created ALLOW -> sim-campaign-0001 DRAFT) so gated paths actually reach the malformed fields — the exact condition the builder's T8 fuzz missed. Per case: ledger length, simulator write_call_count, campaign count, campaign state_hash/status snapshotted before/after via direct state reads. Raw-exception markers scanned: AttributeError / 'has no attribute' / Traceback / ValueError / TypeError / KeyError / JSON-RPC -32603 / exception escaping server.handle(). Plus a stdio-transport probe driving server.py as a subprocess (the surface where D1 originally surfaced as -32603). Full per-case evidence: eclipse-airtime-mcp-rebench-d1d2-evidence-2026-10-25.json","no_actions_taken":"No product code fixed or modified, nothing published, no git operations. Re-bench harness ran against throwaway temp state only; product data/state.json untouched.","per_line":{"D1_H_fuzz_containers":{"evidence":"28/28 specified cases -> CONTAINER_TYPE_INVALID, pre-call, delta ledger 0, delta writes 0, campaign unchanged, ZERO raw exceptions. Coverage: campaign_create_draft draft=list/str/int; draft.targeting=list/str; nested draft.targeting.geo_countries=str, .segments=dict, .geo=str; draft.copy=list; draft.copy.disclosures=str; draft.special_ad_categories=str; draft.copy_refs=str. campaign_update changes=list/str; changes.targeting=list; changes.targeting.geo_countries=str; changes.copy=list; changes.special_ad_categories=str. audience_attach audience=list/str; audience.targeting=list. mandate_check proposed_mutation='xyz'/list; mutation draft=list; draft.targeting=list (valid draft otherwise); changes=str; audience=list; flat-shape {'draft':['x']}. Sweep (non-scoring, all PASS 12/12): mandate_issue ceilings=list, flight_window=list, geo_bounds=dict, audience_bounds=list; claims_record_upsert claims=str, category_declarations=list; copy_screen copy=list, targeting=list, declared_special_ad_categories=str; insights_get/ledger_get/appeal_pack_export range=list — all CONTAINER_TYPE_INVALID, 0 seals, 0 writes.","original_lines":"H_fuzz FAIL + H_fuzz2_gated_writes FAIL (D1, MEDIUM)","verdict":"PASS"},"D2_H_status_enum":{"evidence":"campaign_set_status direct: 10/10 non-enum target_status refused TARGET_STATUS_INVALID pre-gate — inputs 123, 'DELETED', ['ACTIVE'], {'s':'ACTIVE'}, 'active', '', True, 1.0, missing key, explicit None (missing/None resolve to got None via engine require_target_status, server layer skips them). Every case: delta ledger 0, delta writes 0, campaign state_hash + status unchanged, no new campaign, named error returned as isError result (not -32603). mandate_check set_status path: 4/4 (123, 'DELETED', ['ACTIVE'], missing) -> same TARGET_STATUS_INVALID, delta ledger 0, delta writes 0, delta check_log 0, campaign unchanged.","original_line":"H_status_enum FAIL (D2, HIGH)","verdict":"PASS"},"sanity_valid_paths":{"evidence":"6/6: valid set_status ACTIVE -> ALLOW sealed (+1 ledger, +1 write, status ACTIVE); valid PAUSED -> ALLOW sealed (+1/+1, status PAUSED); valid mandate_check create -> ALLOW (0 ledger, 0 writes); valid mandate_check set_status PAUSED -> ALLOW (0/0); valid campaign_update -> ALLOW (+1/+1); valid audience_attach -> ALLOW. Fix does not refuse-everything.","verdict":"PASS"},"stdio_transport_probe":{"evidence":"server.py subprocess over newline JSON-RPC, seeded state: set_status 123 -> TARGET_STATUS_INVALID isError; create draft=['x'] -> CONTAINER_TYPE_INVALID isError; mandate_check proposed_mutation='xyz' -> CONTAINER_TYPE_INVALID isError; NO -32603 on any line; subsequent valid set_status ACTIVE -> ALLOW through same transport; final ledger 2 / writes 2 = seed create (1/1) + valid ACTIVE (1/1) only.","verdict":"PASS"}},"product":"Eclipse Airtime MCP","recheck_of":"eclipse-airtime-mcp-2026-10-25.json (PARTIAL 20/23; defects D1 MEDIUM + D2 HIGH)","scope_label":"local/simulator","score":"23/23","score_recompute":"Original 20/23: the 3 failing lines were H_fuzz (D1), H_fuzz2_gated_writes (D1), H_status_enum (D2). All 3 now PASS on re-bench; all other 20 lines stand as scored in the original bench. 20 + 3 = 23/23.","slug":"eclipse-airtime-mcp","spec":"eclipse-airtime-spec-20261025.md s11","verdict":"CERTIFIED","verdict_qualifier":"CERTIFIED (local/simulator) — scope label unchanged; no live scope implied. Novelty stands NOVELTY_PROVEN (original bench, not re-derived in this scoped re-bench). Accepted backlog items from the original card stand as accepted.","version":"0.1.0"}