{
  "task_id": "task-2467",
  "captured_at": "2026-05-06T05:05:59.466752",
  "source": "memory/tasks/task-2467.md",
  "source_sha256": "147b07c0c2411c6af7272a6ffd5d131f61c3d896835034db1c3173f6c58875ac",
  "allowed_resources": {
    "paths": [
      "scripts/taskctl.py",
      "scripts/finish-task.sh",
      "scripts/worktree_manager.py",
      "scripts/anu_confirm_bot.py",
      "scripts/guard.sh",
      "scripts/qc_report_guard.py",
      "scripts/start_task_guard.py",
      "scripts/g3_independent_verifier.py",
      ".tasks/state/<task-id>.json",
      ".tasks/evidence/<task-id>/*.json",
      "tests/taskctl/**",
      "tests/state_machine/**",
      "memory/tasks/task-2467*",
      "memory/reports/task-2467*",
      "memory/specs/taskctl-state-machine-spec.md",
      "memory/specs/pr-lifecycle-spec.md"
    ],
    "bot_authentication": [
      "bot 계정 GitHub PAT 추가 (repo + workflow scope)",
      ".env.keys 또는 시스템 keychain 통해 로드",
      "GEMINI_API_KEY는 본 task 범위 외 (절대 도입 X)"
    ],
    "forbidden_paths": [
      "PR #29 / PR #30 / PR #31",
      "memory/events/task-2465*",
      "memory/events/task-2466*",
      "memory/orchestration-audit/task-2465*",
      "memory/reports/task-2465.md",
      ".github/**",
      "dispatch.py",
      "memory/organization-structure.json",
      "bot_settings.json",
      "memory/capabilities/**"
    ],
    "forbidden_actions": [
      "PR #29 / #30 / #31 어떤 변경도 금지",
      "task-2465 / task-2466 결과물 임의 수정 금지",
      "GEMINI_API_KEY 도입 절대 금지 (회장 명시 — Gemini App만 사용)",
      "Phase A와 B를 분리 commit 금지 (반드시 통합)",
      "기존 우회 경로 일부만 막고 일부 유지 금지 — 100% 차단"
    ],
    "commands": [
      "python3 scripts/taskctl.py ...",
      "git / gh api / gh pr (테스트 환경에서만)",
      "pytest tests/taskctl/ tests/state_machine/",
      "pyright scripts/taskctl.py ...",
      "grep -rn 'gh pr merge' / 'gh pr create' / 'git push origin main'"
    ],
    "merge_policy": "evidence-based PR. taskctl_only 머지 (본 task 자체도 새 taskctl로 머지 — drink your own champagne)",
    "ttl_hours": 12
  }
}