{
  "timestamp_utc": "2026-06-02T13:12:40.482907+00:00",
  "task_id": "task-2722+1",
  "approval_mode": "dry-run",
  "pr_verified": true,
  "stash_count_before": 64,
  "stash_count_after": 64,
  "decisions": [
    {
      "index": 63,
      "source": "wip",
      "task_id": null,
      "reason": "feat: skills 폴더 구조 전환 + pdp-agent 도입",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 62,
      "source": "wip",
      "task_id": "task-1891",
      "reason": "[task-1891] 쿠쿨칸: --json 플래그 추가 + self-reference 필터",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 61,
      "source": "wip",
      "task_id": "task-1898",
      "reason": "[task-1898] 라다: anu-guide.md + DIRECT-WORKFLOW.md에 한정승인×게이트 상호작용 정의 추가",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 60,
      "source": "wip",
      "task_id": "task-1919",
      "reason": "[task-1919] 토르: dispatch_gate 테스트 격리 수정",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 59,
      "source": "finish-task",
      "task_id": "task-2349",
      "reason": "task-2349 finish-task 격리",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 58,
      "source": "unknown",
      "task_id": "task-2349",
      "reason": "task-2349 pipeline-status 격리",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 57,
      "source": "unknown",
      "task_id": null,
      "reason": "phase-alpha-3 main rebase prep",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 56,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 stash dirty files",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 55,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 stash extra dirty",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 54,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 third stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 53,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 fourth",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 52,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 fifth",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 51,
      "source": "unknown",
      "task_id": "task-2392",
      "reason": "task-2392 sixth",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 50,
      "source": "finish-task",
      "task_id": "task-2414",
      "reason": "task-2414-finish-task-bypass",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 49,
      "source": "finish-task",
      "task_id": "task-2414",
      "reason": "task-2414-finish-task-bypass-2",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 48,
      "source": "finish-task",
      "task_id": "task-2414",
      "reason": "task-2414-finish-task-bypass-3",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 47,
      "source": "finish-task",
      "task_id": "task-2422",
      "reason": "task-2422-finish-stash-transient-files",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 46,
      "source": "unknown",
      "task_id": "task-2434",
      "reason": "task-2434 prep: stash unrelated modified files",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 45,
      "source": "finish-task",
      "task_id": null,
      "reason": "finish-stash-systems-unrelated",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 44,
      "source": "unknown",
      "task_id": "task-2445",
      "reason": "task-2445 finish QC: stash other tasks' uncommitted changes",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 43,
      "source": "unknown",
      "task_id": "task-2447",
      "reason": "task-2447: pre-finish stash (other teams' WIP)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 42,
      "source": "unknown",
      "task_id": "task-2451",
      "reason": "task-2451-pre-stash-1777953100",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 41,
      "source": "unknown",
      "task_id": "task-2454",
      "reason": "task-2454-finish-tmp",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 40,
      "source": "unknown",
      "task_id": "task-2458",
      "reason": "task-2458-dev4 wip-stash: rescue dirty files before reset",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 39,
      "source": "unknown",
      "task_id": "task-2463",
      "reason": "task-2463 pre-merge: 무관 dirty files 격리",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 38,
      "source": "unknown",
      "task_id": "task-2465",
      "reason": "task-2465 verify cleanup: scope exception isolation for taskctl strict verify (chairman order)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 37,
      "source": "unknown",
      "task_id": "task-2465",
      "reason": "task-2465 verify cleanup #2: scope exception isolation (chairman order, second pass)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 36,
      "source": "unknown",
      "task_id": "task-2467",
      "reason": "task-2467 sync stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 35,
      "source": "unknown",
      "task_id": "task-2467+1",
      "reason": "task-2467+1 finish stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 34,
      "source": "unknown",
      "task_id": "task-2467+3",
      "reason": "task-2467+3 main pull 임시 stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 33,
      "source": "unknown",
      "task_id": "task-2468+3",
      "reason": "task-2468+3 verify temp stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 32,
      "source": "unknown",
      "task_id": "task-2469+1",
      "reason": "task-2469+1 manual recovery - pre-merge stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 31,
      "source": "unknown",
      "task_id": "task-2471",
      "reason": "task-2471 work-in-progress system files",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 30,
      "source": "finish-task",
      "task_id": "task-2473",
      "reason": "task-2473 finish-task uncommitted noise stash",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 29,
      "source": "unknown",
      "task_id": "task-2474",
      "reason": "task-2474 wip stash",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 28,
      "source": "finish-task",
      "task_id": "task-2474",
      "reason": "task-2474 finish-task scope-out noise",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 27,
      "source": "unknown",
      "task_id": "task-2478",
      "reason": "task-2478 stash before branch switch",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 26,
      "source": "unknown",
      "task_id": "task-2478",
      "reason": "task-2478 wip before worktree setup",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 25,
      "source": "unknown",
      "task_id": "task-2478",
      "reason": "task-2478 unrelated dirty (workflow leftovers)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 24,
      "source": "unknown",
      "task_id": "task-2478",
      "reason": "task-2478 unrelated dirty 2",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 23,
      "source": "wip",
      "task_id": "task-2472",
      "reason": "Merge pull request #40 from Jeon-Jonghyuk/task/task-2472-dev2",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 22,
      "source": "unknown",
      "task_id": "task-2488",
      "reason": "task-2488 finish: temp stash unrelated env files",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 21,
      "source": "unknown",
      "task_id": "task-2487+1",
      "reason": "[task-2487+1] 다른 봇 작업 unstaged 임시 보관",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 20,
      "source": "unknown",
      "task_id": "task-2479",
      "reason": "task-2479-dev1 stale state stash before task-2531 start (auto)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 19,
      "source": "unknown",
      "task_id": "task-2531",
      "reason": "auto-stash before task-2531 main worktree relocation",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 18,
      "source": "unknown",
      "task_id": "task-2531",
      "reason": "background-state files (heartbeat/pipeline/timers) stash for task-2531",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 17,
      "source": "wip",
      "task_id": "task-2535",
      "reason": "[task-2535] schedule_id freshness validator + STALE_SCHEDULE_ID stuck (#81)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 16,
      "source": "unknown",
      "task_id": "task-2539",
      "reason": "task-2539 GIT-GATE 통과를 위한 외부 변경 임시 격리 (다른 task 작업 잔존)",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 15,
      "source": "wip",
      "task_id": "task-2544+1",
      "reason": "[task-2544+1] PR_OPEN_GEMINI_TRIGGER_PREVENTION clean replacement (PR #89 ESCALATED 복구) (#90)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 14,
      "source": "other-files",
      "task_id": "task-2553",
      "reason": "task-2553-non-task-scope-dirty",
      "policy": "explicit-drop",
      "action": "dry-run-drop",
      "exit_code": 0
    },
    {
      "index": 13,
      "source": "other-files",
      "task_id": "task-2553",
      "reason": "task-2553-temp-other-tasks-dirty",
      "policy": "explicit-drop",
      "action": "dry-run-drop",
      "exit_code": 0
    },
    {
      "index": 12,
      "source": "wip",
      "task_id": "task-2547+1",
      "reason": "[task-2547+1] Gemini fresh review v2 4 fix corrected replacement (PR #95 valid regression) (#97)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 11,
      "source": "unknown",
      "task_id": "task-2554+2",
      "reason": "task-2554+2-finalize tracked changes preserve",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 10,
      "source": "wip",
      "task_id": "task-2554+2",
      "reason": "[task-2554+2] OWNER_TRIGGER_ONLY_CAPABILITY 통합 capability 완성 (runner/audit/executor/evidence/regression) (#106)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 9,
      "source": "wip",
      "task_id": "task-2560",
      "reason": "[task-2560] FUC-4 per-PR exception isolation in ExecutorScheduler (회장 §명시 2026-05-12 Track A 1순위) (#113)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 8,
      "source": "wip",
      "task_id": "task-2562",
      "reason": "[task-2562] G4 Pre-PR Gemini CLI gate (Track C, 회장 §명시 2026-05-12) (#115)",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 7,
      "source": "other-files",
      "task_id": "task-2564",
      "reason": "task-2564-other-files-stash",
      "policy": "explicit-drop",
      "action": "dry-run-drop",
      "exit_code": 0
    },
    {
      "index": 6,
      "source": "quarantine",
      "task_id": "task-2566",
      "reason": "task-2566-finish-task-quarantine",
      "policy": "explicit-preserve",
      "action": "preserved",
      "exit_code": 0
    },
    {
      "index": 5,
      "source": "pre-task",
      "task_id": "task-2568+3",
      "reason": "WIP: pre-task-2568+3 stash",
      "policy": "auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 4,
      "source": "finish-task",
      "task_id": "task-2569",
      "reason": "[task-2569] finish-task GIT-GATE: 다른 task scope dirty 격리 (tests/regression/test_replacement_pr_runner_2510.py + utils/replacement_pr_runner.py)",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 3,
      "source": "finish-task",
      "task_id": "task-2570",
      "reason": "git-gate-bypass",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 2,
      "source": "finish-task",
      "task_id": "task-2576",
      "reason": "git-gate-bypass",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 1,
      "source": "finish-task",
      "task_id": "task-2692",
      "reason": "task-2692 finish-task safety stash (preserve other team dirty)",
      "policy": "verified-auto-pop",
      "action": "dry-run-pop",
      "exit_code": 0
    },
    {
      "index": 0,
      "source": "unknown",
      "task_id": "task-2703",
      "reason": "task-2703-external-dirty-blocker-pre-existing",
      "policy": "quarantine-cleanup-forbidden",
      "action": "preserved",
      "exit_code": 0
    }
  ],
  "skipped_unknown_count": 36,
  "fail_stop": false,
  "notes": "unknown 36건 preserved — manual review required"
}