{
  "task_id": "task-2471",
  "current_state": "REVIEW_READY",
  "transitions": [
    {
      "from": null,
      "to": "CREATED",
      "ts": "2026-05-06T18:00:28Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py init task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    },
    {
      "from": "CREATED",
      "to": "DISPATCHED",
      "ts": "2026-05-06T18:00:29Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py dispatch task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    },
    {
      "from": "DISPATCHED",
      "to": "ACKED",
      "ts": "2026-05-06T18:00:29Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py ack task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    },
    {
      "from": "ACKED",
      "to": "RUNNING",
      "ts": "2026-05-06T18:00:29Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py run task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    },
    {
      "from": "RUNNING",
      "to": "COMMITTED",
      "ts": "2026-05-06T18:00:29Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py commit task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    },
    {
      "from": "COMMITTED",
      "to": "PR_OPEN",
      "ts": "2026-05-06T20:46:58Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py pr-open task-2471 --pr 36",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471",
      "meta": {
        "pr": 36
      }
    },
    {
      "from": "PR_OPEN",
      "to": "CI_PENDING",
      "ts": "2026-05-06T20:47:08Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py ci-check task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471",
      "meta": {
        "pr": 36
      }
    },
    {
      "from": "CI_PENDING",
      "to": "GEMINI_PENDING",
      "ts": "2026-05-06T20:47:16Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py gemini-evidence task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471",
      "meta": {
        "pr": 36
      }
    },
    {
      "from": "GEMINI_PENDING",
      "to": "REVIEW_READY",
      "ts": "2026-05-06T20:47:20Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "scripts/taskctl.py review-ready task-2471",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2471"
    }
  ],
  "evidence": {
    "git_diff_sha": "1f96ddcdfe10cee06823168b0811af85c12811d5",
    "changed_paths": [],
    "branch": "main",
    "pr_number": 36,
    "pr_state": "MERGED",
    "ci_checks": {
      "cancel-kill-switch": "SUCCESS",
      "qc-check": "SUCCESS",
      "hidden-path-audit": "SUCCESS",
      "lock-in-check": "SUCCESS",
      "merge-safety-check": "SUCCESS",
      "gemini-review-gate": "SUCCESS",
      "ci/guard": "SUCCESS",
      "guard": "SUCCESS"
    },
    "guard_sh_result": "FAIL",
    "qc_report_guard_result": "FAIL",
    "merge_timestamp": null,
    "exit_codes": {
      "verify_guard_sh": 1,
      "verify_qc_report_guard": 1,
      "verify": 1,
      "merge": 1
    },
    "mergeable": "UNKNOWN",
    "merge_state_status": "UNKNOWN",
    "guard_sh_detail": {
      "result": "FAIL",
      "exit_code": 1,
      "stdout_tail": "",
      "stderr_tail": "[pre-push-guard] task=task-2471\n  B-1 working tree clean    : FAIL — task scope 밖 변경 4건: scripts/done-watcher.sh, memory/audit/gemini-gate-20260506.jsonl, scripts/finish-task.sh, dashboard/data/naver-sa-stats.json — git stash push -u 로 격리 후 재시도\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 일치 : FAIL — verdict 마커 누락 — 보고서 정직성 강제 (source=none)\n[pre-push-guard] OVERALL: FAIL (rc=1)\n"
    },
    "qc_report_guard_detail": {
      "result": "FAIL",
      "exit_code": 1,
      "stdout_tail": "",
      "stderr_tail": "[qc-report-guard] task=task-2471\n  qc-result JSON verdict : WARN\n  report verdict         : (없음)  ← 출처 (none)\n  매칭 결과              : verdict 마커 누락 — 보고서 정직성 강제 (source=none)\n[qc-report-guard] OVERALL: FAIL (rc=1)\n"
    }
  },
  "human_approved": false,
  "bypass": {
    "used": false,
    "ts": null,
    "actor": null
  },
  "admin_override": {
    "used": false,
    "ts": null,
    "actor": null,
    "reason": null,
    "audit_log_offset": null
  },
  "_checksum": "360cf97564ab430e57c602bf8a02797c089b973b08e276551690fab9b09268a5"
}