{
  "task_id": "task-2712",
  "captured_at": "2026-05-30T11:16:28.261658",
  "source": "memory/tasks/task-2712.md",
  "source_sha256": "7a1f3e32f4720f71f5f1af6bbaa2b69f2cc00a2e1836512eae24566bbd778fe7",
  "allowed_resources": {
    "paths": [
      "scripts/harness/v36/failure_envelope_writer.py",
      "scripts/harness/v36/failure_callback_dispatcher.py",
      "scripts/harness/v36/terminal_state_classifier.py",
      "scripts/harness/v36/before_exit_guard_hook.sh",
      "tests/test_failure_callback_before_exit_guard_2712.py",
      "tests/fixtures/failure_callback_2712/F-1_task_2711_scope_guard_fail.json",
      "tests/fixtures/failure_callback_2712/F-2_paths_null.json",
      "tests/fixtures/failure_callback_2712/F-3_api_500_recoverable.json",
      "tests/fixtures/failure_callback_2712/F-4_bot_collision_dispatch_false_ok.json",
      "tests/fixtures/failure_callback_2712/F-5_cron_registration_failure_handoff.json",
      "tests/fixtures/failure_callback_2712/F-6_crash_no_exit_code.json",
      "tests/fixtures/failure_callback_2712/F-7_envelope_write_fail_stderr_emit.json",
      "tests/fixtures/failure_callback_2712/F-8_self_collector_forbidden_violation.json",
      "tests/fixtures/failure_callback_2712/F-9_syslog_retention_unavailable.json",
      "tests/fixtures/failure_callback_2712/F-10_docker_nohup_residual_process.json",
      "tests/fixtures/failure_callback_2712/F-11_callback_attempted_no_fire_fallback_exists.json",
      "tests/fixtures/failure_callback_2712/F-12_sigterm_ctrlc_trap.json",
      "tests/fixtures/failure_callback_2712/F-13_bypass_attempt_cron_direct.json",
      "tests/fixtures/failure_callback_2712/F-14_d5_audit_missing_bypass.json",
      "schemas/failure_envelope_schema.json",
      "memory/reports/task-2712.md",
      "memory/events/task-2712.formalization-commit-260530.json",
      "memory/events/task-2712.callback-envelope.json"
    ],
    "allowed_existing_file_edits": [
      "scripts/finish-task.sh",
      "dispatch.py"
    ],
    "expected_files": [
      "scripts/harness/v36/failure_envelope_writer.py",
      "scripts/harness/v36/failure_callback_dispatcher.py",
      "scripts/harness/v36/terminal_state_classifier.py",
      "scripts/harness/v36/before_exit_guard_hook.sh",
      "tests/test_failure_callback_before_exit_guard_2712.py",
      "tests/fixtures/failure_callback_2712/F-1_task_2711_scope_guard_fail.json",
      "tests/fixtures/failure_callback_2712/F-2_paths_null.json",
      "tests/fixtures/failure_callback_2712/F-3_api_500_recoverable.json",
      "tests/fixtures/failure_callback_2712/F-4_bot_collision_dispatch_false_ok.json",
      "tests/fixtures/failure_callback_2712/F-5_cron_registration_failure_handoff.json",
      "tests/fixtures/failure_callback_2712/F-6_crash_no_exit_code.json",
      "tests/fixtures/failure_callback_2712/F-7_envelope_write_fail_stderr_emit.json",
      "tests/fixtures/failure_callback_2712/F-8_self_collector_forbidden_violation.json",
      "tests/fixtures/failure_callback_2712/F-9_syslog_retention_unavailable.json",
      "tests/fixtures/failure_callback_2712/F-10_docker_nohup_residual_process.json",
      "tests/fixtures/failure_callback_2712/F-11_callback_attempted_no_fire_fallback_exists.json",
      "tests/fixtures/failure_callback_2712/F-12_sigterm_ctrlc_trap.json",
      "tests/fixtures/failure_callback_2712/F-13_bypass_attempt_cron_direct.json",
      "tests/fixtures/failure_callback_2712/F-14_d5_audit_missing_bypass.json",
      "schemas/failure_envelope_schema.json",
      "memory/reports/task-2712.md",
      "memory/events/task-2712.formalization-commit-260530.json",
      "memory/events/task-2712.callback-envelope.json"
    ],
    "forbidden_paths": [
      "bot_settings.json",
      "memory/bot_settings.json",
      ".claude/settings.json",
      "/home/jay/.claude/settings.json",
      "scripts/session-watchdog.sh",
      "scripts/task-scope-guard.sh",
      "qc_verify.py",
      "utils/merge_queue_executor.py",
      "utils/real_merge_hooks.py",
      "anu_v3/",
      "memory/capabilities/**",
      "memory/tasks/task-2710.md",
      "memory/tasks/task-2710_v2.md",
      "memory/tasks/task-2710_v3.md",
      "memory/tasks/task-2710_v4.md",
      "memory/tasks/task-2710_v5.md",
      "memory/tasks/task-2710_v6.md",
      "memory/tasks/task-2710_v7.md",
      "memory/tasks/task-2710_v8.md",
      "memory/tasks/task-2711.md",
      "memory/tasks/task-2711_draft.md",
      "scripts/anu/codex_review_loop_decider.py",
      "tests/test_codex_review_loop_decider_2711.py",
      "memory/tasks/task-2712_v2.md",
      "memory/tasks/task-2712_v3.md",
      "memory/tasks/task-2712_v4.md",
      "memory/tasks/task-2712_v5.md",
      "memory/tasks/task-2712_v6.md",
      "memory/tasks/task-2712_draft.md"
    ]
  }
}