{
  "task_id": "task-2564",
  "current_state": "HUMAN_APPROVED",
  "transitions": [
    {
      "from": null,
      "to": "CREATED",
      "ts": "2026-05-12T21:29:01Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py init task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564"
    },
    {
      "from": "CREATED",
      "to": "DISPATCHED",
      "ts": "2026-05-12T21:29:21Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py dispatch task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564"
    },
    {
      "from": "DISPATCHED",
      "to": "ACKED",
      "ts": "2026-05-12T21:29:21Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py ack task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564"
    },
    {
      "from": "ACKED",
      "to": "RUNNING",
      "ts": "2026-05-12T21:29:21Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py run task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564"
    },
    {
      "from": "RUNNING",
      "to": "COMMITTED",
      "ts": "2026-05-12T21:29:22Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py commit task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564"
    },
    {
      "from": "COMMITTED",
      "to": "PR_OPEN",
      "ts": "2026-05-12T21:30:08Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py pr-open task-2564 --auto",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564",
      "meta": {
        "pr": 118
      }
    },
    {
      "from": "PR_OPEN",
      "to": "GUARD_PASS",
      "ts": "2026-05-12T22:09:21Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py verify task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564",
      "meta": {
        "guard_sh": "PASS",
        "qc_report_guard": "PASS"
      }
    },
    {
      "from": "GUARD_PASS",
      "to": "HUMAN_APPROVED",
      "ts": "2026-05-12T22:09:27Z",
      "actor": "jay <282130200+jeon-jonghyuk-taskctl-bot[bot]@users.noreply.github.com>",
      "command": "scripts/taskctl.py approve task-2564",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2564",
      "meta": {
        "approver": "jay",
        "approval_type": "manual"
      }
    }
  ],
  "evidence": {
    "git_diff_sha": "a764fe25a7dace5ad50d85d46181d16500dcea77",
    "changed_paths": [
      "memory/events/anu_v2.critical_7_mapping_check.260513.json",
      "memory/events/anu_v2.post_merge_smoke_evidence.260513.json",
      "memory/events/anu_v2.release_decision.260513.json",
      "memory/events/anu_v2.remaining_gaps.260513.json",
      "memory/events/task-2564.dispatch-decision.json",
      "memory/plans/tasks/task-2564/checklist.md",
      "memory/plans/tasks/task-2564/context-notes.md",
      "memory/plans/tasks/task-2564/plan.md",
      "memory/reports/anu_v2_release_candidate_report_260513.md",
      "memory/reports/task-2564.md"
    ],
    "branch": "task/task-2564-dev5",
    "pr_number": 118,
    "pr_state": "OPEN",
    "ci_checks": {
      "cancel-kill-switch": "FAILURE",
      "qc-check": "FAILURE",
      "hidden-path-audit": "FAILURE",
      "lock-in-check": "FAILURE",
      "merge-safety-check": "FAILURE",
      "gemini-review-gate": "FAILURE",
      "ci/guard": "FAILURE",
      "guard": "FAILURE"
    },
    "guard_sh_result": "PASS",
    "qc_report_guard_result": "PASS",
    "merge_timestamp": null,
    "exit_codes": {
      "verify_guard_sh": 0,
      "verify_qc_report_guard": 0,
      "verify": 0,
      "approve": 0
    },
    "mergeable": "MERGEABLE",
    "merge_state_status": "BLOCKED",
    "guard_sh_detail": {
      "result": "PASS",
      "exit_code": 0,
      "stdout_tail": "",
      "stderr_tail": "[pre-push-guard] task=task-2564\n  B-1 working tree clean    : PASS — 변경 없음 (clean)\n  B-2 ahead/behind          : PASS — ahead=0 behind=0 — push 불필요\n  B-3 task scope 일치       : PASS — head_diff 없음 (커밋 없음) — PASS\n  B-4 보고서/qc-result 일치 : PASS — JSON=WARN / report=WARN — 일치\n[pre-push-guard] OVERALL: PASS (rc=0)\n"
    },
    "qc_report_guard_detail": {
      "result": "PASS",
      "exit_code": 0,
      "stdout_tail": "",
      "stderr_tail": "[qc-report-guard] task=task-2564\n  qc-result JSON verdict : WARN\n  report verdict         : WARN  ← 출처 (## QC Verdict)\n  매칭 결과              : OK\n[qc-report-guard] OVERALL: PASS (rc=0)\n"
    }
  },
  "human_approved": true,
  "bypass": {
    "used": false,
    "ts": null,
    "actor": null
  },
  "admin_override": {
    "used": false,
    "ts": null,
    "actor": null,
    "reason": null,
    "audit_log_offset": null
  },
  "_checksum": "8c66712c2c2cd0adb8ad2951b38a9effc9c5117676b69fac2627a86aedd19e5f"
}