{
  "task_id": "task-2471",
  "captured_at": "2026-05-07T01:57:50.779411",
  "source": "memory/tasks/task-2471.md",
  "source_sha256": "94784be33da6f97689b357fd9decbc57dcbb957e07fff99a7c5117c90c11f983",
  "allowed_resources": {
    "paths": [
      "scripts/taskctl.py",
      "scripts/taskctl/**",
      "scripts/lifecycle_guards.py",
      "scripts/pre_push_guard.py",
      "scripts/gemini_severity_parser.py",
      "scripts/g3_independent_verifier.py",
      "dispatch.py",
      "utils/task_id_parser.py",
      "utils/silent_corruption_guard.py",
      ".tasks/state/**",
      "memory/orchestration-audit/chairman-manual-recovery.jsonl",
      "tests/lifecycle_guards/**",
      "tests/regression/**",
      "tests/state_machine/**",
      "tests/dispatch/**",
      "memory/tasks/task-2471*",
      "memory/reports/task-2471*",
      "memory/plans/tasks/task-2471/**",
      "memory/events/task-2471*"
    ],
    "forbidden_paths": [
      "memory/events/task-2468*",
      "memory/events/task-2469*",
      "memory/events/task-2470*",
      "memory/events/task-2467*",
      "memory/reports/task-2468*",
      "memory/reports/task-2469*",
      "memory/reports/task-2470*",
      "memory/reports/task-2467*",
      "memory/specs/allowed_bot_accounts.json",
      "memory/specs/allowed_approvers.json",
      "memory/orchestration-audit/admin-override.jsonl",
      "PR #29 / #30 / #31 / #32 / #33 / #34 / #35",
      "memory/organization-structure.json",
      "bot_settings.json",
      ".env.keys",
      ".secrets/**",
      ".gitignore",
      "memory/capabilities/**"
    ],
    "forbidden_actions": [
      "자동 ack 데몬 구현 금지 (별도 task)",
      "cron 등록 금지",
      "watchdog성 상시 프로세스 금지",
      "백업 cron 금지",
      "task-2468/task-2469 산출물 변경 금지",
      "admin override 금지",
      "보고서만으로 DONE 처리 금지",
      "gh pr merge 직접 호출 금지 (taskctl 외)",
      "git push --force 금지",
      "git push origin main 직접 호출 금지"
    ],
    "bot_authentication": [
      "BOT_GITHUB_TOKEN .env.keys 자동 로드",
      "PR author = jeon-jonghyuk-taskctl-bot[bot] 강제",
      "approver = 시스템 승인자 (taskctl-gate / anu-verifier)",
      "self-approve 차단"
    ],
    "merge_policy": "★ 본 task가 만든 hardening 코드를 통해 본 task PR이 merge됨 (drink your own champagne). green path 자동",
    "ttl_hours": 8
  }
}