{
  "task_id": "task-2439",
  "captured_at": "2026-05-04T01:54:00.979613",
  "source": "memory/tasks/task-2439.md",
  "source_sha256": "fb6d14ff657d013f6086a4375df2d42713c0e62911cee7279b89cdcc66ec2cc2",
  "allowed_resources": {
    "paths": [
      "scripts/anu_confirm_bot/main.py",
      "scripts/finish-task.sh",
      "scripts/auto_merge.py",
      "scripts/git-hooks/**",
      ".github/workflows/**",
      "memory/plans/tasks/task-2439/**",
      "memory/reports/task-2439*/**",
      "memory/reports/task-2439.md",
      "tests/scripts/test_anu_confirm_bot_guard.py",
      "tests/scripts/test_finish_task_guard.py",
      "tests/scripts/test_pre_push_hook.py",
      "memory/screenshots/task-2439*.png",
      "memory/tasks/task-2439/scope/**"
    ],
    "forbidden_paths": [
      "scripts/task_scope.py",
      "scripts/pre_push_guard.py",
      "scripts/qc_report_guard.py",
      "scripts/guard.sh",
      "scripts/post_merge_probe.py",
      "scripts/done-watcher.py",
      "scripts/whisper-compile.py",
      "scripts/session-watchdog.sh",
      "scripts/bot_status_resolver.py",
      "dispatch.py",
      "dashboard/**",
      "teams/shared/**",
      "CLAUDE.md",
      "memory/capabilities/**"
    ],
    "commands": [
      "python3 scripts/*.py",
      "bash scripts/guard.sh",
      "git status",
      "git log",
      "git diff",
      "git push",
      "git config core.hooksPath",
      "gh pr",
      "ls",
      "stat",
      "grep",
      "pytest",
      "python3 -m py_compile"
    ],
    "merge_policy": "manual_after_pentest",
    "ttl_hours": 6
  },
  "normalized_at": "2026-05-04T02:32:00+09:00",
  "normalized_reason": "dispatch 가 절대경로/task-XXXX placeholder를 그대로 저장 — 상대경로/task-2439 변환"
}