{
  "task_id": "task-2475",
  "current_state": "CI_PENDING",
  "transitions": [
    {
      "from": null,
      "to": "CREATED",
      "ts": "2026-05-07T07:08:05Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py init task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "CREATED",
      "to": "DISPATCHED",
      "ts": "2026-05-07T07:08:23Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py dispatch task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "DISPATCHED",
      "to": "ACKED",
      "ts": "2026-05-07T07:08:23Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py ack task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "ACKED",
      "to": "WORKTREE_READY",
      "ts": "2026-05-07T07:08:23Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py worktree-ready task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "WORKTREE_READY",
      "to": "RUNNING",
      "ts": "2026-05-07T07:08:23Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py run task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "RUNNING",
      "to": "COMMITTED",
      "ts": "2026-05-07T07:08:27Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py commit task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475"
    },
    {
      "from": "COMMITTED",
      "to": "PR_OPEN",
      "ts": "2026-05-07T07:09:20Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py pr-open task-2475 --pr 104",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475",
      "meta": {
        "pr": 104
      }
    },
    {
      "from": "PR_OPEN",
      "to": "CI_PENDING",
      "ts": "2026-05-07T07:25:31Z",
      "actor": "jay <jonghyuk.jeon@gmail.com>",
      "command": "/home/jay/workspace/scripts/taskctl.py ci-check task-2475",
      "exit_code": 0,
      "evidence_path": "/home/jay/workspace/.tasks/evidence/task-2475",
      "meta": {
        "pr": 104
      }
    }
  ],
  "evidence": {
    "git_diff_sha": "44385a406f0041cdfe77d97d65a71b172b64a38d",
    "changed_paths": [
      "dispatch/__init__.py",
      "memory/plans/tasks/task-2473/checklist.md",
      "memory/plans/tasks/task-2473/context-notes.md",
      "memory/plans/tasks/task-2473/plan.md",
      "memory/reports/task-2473.md",
      "tests/dispatch/__init__.py",
      "tests/dispatch/test_routing_classification.py",
      "utils/dispatch_routing.py"
    ],
    "branch": "task/task-2473-dev2",
    "pr_number": 104,
    "pr_state": null,
    "ci_checks": {},
    "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
    },
    "mergeable": null,
    "merge_state_status": null,
    "pr_view_error": "GraphQL: Could not resolve to a PullRequest with the number of 104. (repository.pullRequest)",
    "guard_sh_detail": {
      "result": "FAIL",
      "exit_code": 1,
      "stdout_tail": "",
      "stderr_tail": " scope 밖 변경 1건: memory/retrospectives/task-2475.md — git stash push -u 로 격리 후 재시도\n  B-2 ahead/behind          : PASS — ahead=7 behind=0 — push 가능\n  B-3 task scope 일치       : FAIL — task scope 밖 파일 4건: dispatch/__init__.py, tests/dispatch/__init__.py, tests/dispatch/test_routing_classification.py, utils/dispatch_routing.py\n[pre-push-guard] WARN: qc-result 없음 — --strict 미사용이므로 통과 (B-4)\n  B-4 보고서/qc-result 일치 : PASS — qc-result 없음 — WARN (rc=0 유지, --strict 없음)\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-2475\n  qc-result JSON verdict : MISSING\n  report verdict         : (없음)  ← 출처 (none)\n  매칭 결과              : qc-result 파일 없음: /home/jay/workspace/memory/events/task-2475.qc-result\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": "d09a5f3a43392d0a7141e7a8cc9fa0231483819f7bf22068af42127da9ec13ca"
}