{
  "task_id": "task-2576",
  "captured_at": "2026-05-14T18:17:16.241268",
  "source": "memory/tasks/task-2576.md",
  "source_sha256": "f63323b5d040d961eb8ee95e2d77a64b7f833615b31527782c4032f564ce6480",
  "allowed_resources": {
    "paths": [
      "scripts/finish-task.sh",
      "scripts/start_task_guard.py",
      "scripts/stash_audit.py",
      "memory/specs/stash-lifecycle.md",
      "memory/specs/stash-origin-audit.md",
      "tests/regression/test_stash_lifecycle_*.py",
      "tests/regression/test_stash_audit_*.py",
      "tests/regression/test_guard7_local_operational_patch.py",
      "tests/regression/test_finish_task_stash_*.py",
      "memory/plans/tasks/task-2576/**",
      "memory/reports/task-2576.md",
      "memory/events/task-2576.*"
    ],
    "forbidden_paths": [
      "anu_v2/**",
      ".github/workflows/**",
      "scripts/pre_push_guard.py",
      "scripts/task_scope.py",
      "scripts/cleanup-stale-tasks.sh",
      "scripts/cleanup-workspace.py",
      "scripts/file_cleanup.py",
      "scripts/git-hooks/**",
      "scripts/worktree_manager.py",
      "scripts/taskctl_start*",
      "scripts/guard.sh",
      "scripts/finish-task.sh.bak*",
      "dispatch/**",
      "memory/task-timer.py",
      "memory/tasks/task-2568*",
      "memory/tasks/task-2569.md",
      "memory/tasks/task-2569+1.md",
      "memory/tasks/task-2569+2.md",
      "memory/tasks/task-2570.md",
      "memory/tasks/task-2571.md",
      "memory/tasks/task-2571+1.md",
      "memory/tasks/task-2571+2.md",
      "memory/tasks/task-2572.md",
      "memory/tasks/task-2573.md",
      "memory/tasks/task-2574.md",
      "memory/tasks/task-2575.md",
      "memory/events/task-2568*",
      "memory/events/task-2569.*",
      "memory/events/task-2569+1.*",
      "memory/events/task-2569+2.*",
      "memory/events/task-2570.*",
      "memory/events/task-2571.*",
      "memory/events/task-2571+1.*",
      "memory/events/task-2571+2.*",
      "memory/events/task-2572.*",
      "memory/reports/task-2568*",
      "memory/reports/task-2569.md",
      "memory/reports/task-2569+1.md",
      "memory/reports/task-2569+2.md",
      "memory/reports/task-2570.md",
      "memory/reports/task-2571.md",
      "memory/reports/task-2571+1.md",
      "memory/reports/task-2571+2.md",
      "memory/reports/stash-origin-audit-*.md",
      "memory/specs/protection-list.*",
      "memory/specs/task-lock-format.md",
      ".tasks/locks/**",
      "memory/capabilities/**",
      ".env*",
      "**/*.pem",
      "secrets/**",
      "dist/**",
      "node_modules/**",
      ".worktrees/task-2571-dev4/**",
      ".worktrees/task-2571+1-dev4/**",
      ".worktrees/task-2571+2-dev4/**"
    ],
    "commands": [
      "pytest",
      "python3 -m py_compile",
      "python3 -c",
      "git",
      "gh",
      "bash -n",
      "shellcheck"
    ],
    "merge_policy": "tiered",
    "pr_base": "origin/main",
    "worktree_base": "origin/main",
    "forbid_worktree_base_local_main": true,
    "forbid_reuse_existing_worktree": true,
    "dispatch_dependency": "task-2570 merged into origin/main (PR #122 @ 06494794) — chain attempt 무관, fresh start",
    "preserved_pr_chain": [
      "PR #123 (attempt-1)",
      "PR #124 (attempt-2)",
      "PR #125 (attempt-3)"
    ],
    "not_attempt_4": true,
    "full_layer_compliance": true,
    "doctrine_basis": "feedback_minimal_scope_vs_spec_compliance_260514.md",
    "status": "APPROVED_FOR_DISPATCH",
    "resolver": "dev7 (이참나)",
    "resolver_backup": "dev8 (라)",
    "resolver_forbidden": [
      "dev4 (비슈누) — 회장 명시 재투입 금지",
      "dev3 (다그다) — 원작자 doctrine",
      "dev6 (페룬) — 회장 제외",
      "dev1 (헤르메스) — chain executor 본분"
    ],
    "ttl_hours": 36
  }
}