{
  "fixture_id": "task-2553plus47.plus45-1424-normal-callback-completed.v1",
  "schema": "callback_event_trigger.regression_fixture.v1",
  "purpose": "Reproduce the exact +45 14:24→14:44 defect (회장 §2 / §8.8): the +45 normal-callback collector finished at 14:24, but the durable 4-tuple ledger stayed role=dispatch / REGISTERED (normal_collector_cron_id=null), so ANU could not see the normal callback as completed and the next step was only recovered manually at 14:44. The +47 write-back + read-only event-trigger MUST (a) append a correctly-bound state=COMPLETED record and (b) auto-detect it as the progress trigger WITHOUT a fixed-time gate or dead-man fallback.",
  "authority_ref": "memory/events/task-2553+45.collector-adjudication.json (bound_fallback_cron_decision: durable_record_role=dispatch, LOOKUP_ROLE_MISMATCH)",
  "evidence_anchor": "memory/events/callback_4tuple_index.jsonl line 2 (task-2553+45, role=dispatch, status=REGISTERED, normal_collector_cron_id=null)",
  "chat_id": "6937032012",
  "defect_case": {
    "task_id": "task-2553+45",
    "ts_observed_kst": "2026-05-18 14:24 KST (normal-callback collector finished)",
    "ledger_record_at_defect": {
      "schema": "callback_4tuple_ledger_record.v1",
      "task_id": "task-2553+45",
      "dispatch_id": "2CCA4E15",
      "dispatch_cron_id": "2CCA4E15",
      "executor": "ANU sequential gate (DBDB3066) -> dev2 오딘 1회 위임",
      "chat_id": "6937032012",
      "normal_collector_cron_id": null,
      "fallback_callback_cron_id": "1D8D112A",
      "role": "dispatch",
      "status": "REGISTERED",
      "ts_kst": "2026-05-18 13:42 KST"
    },
    "event_trigger_verdict_before_writeback": "NEXT_ACTION_DEFERRED",
    "anu_session_perceived": "normal callback 완료 미감지 → 14:44 수동 회수 (registry role=dispatch/REGISTERED 정지)"
  },
  "writeback_input": {
    "task_id": "task-2553+45",
    "dispatch_id": "2CCA4E15",
    "dispatch_cron_id": "2CCA4E15",
    "executor": "ANU (dev2 오딘 1회 한정 위임)",
    "chat_id": "6937032012",
    "normal_collector_cron_id": "NC-2553p45-1424",
    "fallback_callback_cron_id": "1D8D112A",
    "role": "executor",
    "no_fallback": false,
    "ts_kst": "2026-05-18 14:24 KST"
  },
  "writeback_expected": {
    "status": "WRITEBACK_COMPLETED",
    "appended": true,
    "record_status": "COMPLETED",
    "record_role": "executor",
    "record_normal_collector_cron_id": "NC-2553p45-1424",
    "binding_corrected": "role dispatch->executor, normal_collector_cron_id null->NC-2553p45-1424 (not a naive mark_completed copy of the stale role=dispatch line)"
  },
  "writeback_idempotent_expected": {
    "second_call_status": "WRITEBACK_IDEMPOTENT_SKIP",
    "second_call_appended": false,
    "ledger_completed_line_count": 1
  },
  "event_trigger_expected_after_writeback": {
    "verdict": "NEXT_ACTION_READY",
    "ready": true,
    "trigger_source": "registry_completed_event",
    "fixed_time_used": false,
    "dead_man_used": false,
    "next_action_action_mode": "proposal",
    "next_action_auto_executed": false,
    "auto_detection": "14:24 normal-callback durable-success → event-trigger READY without manual 14:44 recovery (회장 §8.8)"
  },
  "no_cron_invariants": {
    "cron_register_remove": 0,
    "dispatch": 0,
    "merge": 0,
    "subprocess_or_cokacdir_exec": 0,
    "write_surface": "+44 append-only ledger only (write_back_completed); scan() is read-only"
  }
}
