{
  "schema": "BACKLOG_ITEM.v1",
  "id": "finish-task-scope-guard-cumulative-diff",
  "created_at": "2026-06-01",
  "severity": "operational (non-Critical7)",
  "title": "finish-task scope-guard 누적 브랜치 diff vs 차수별 expected_files 충돌",
  "symptom": "task-2720+2/+3/+4 모두 finish-task 실행 후 scope-guard 환경 블로커로 .done/callback 미생성('미도달' 아님). 코드 commit/regression은 정상.",
  "root_cause_hypothesis": "다회차 누적 브랜치(task/task-2720-dev1)의 git diff(main..HEAD)가 차수별 task md expected_files(차수당 1~5)와 불일치 → scope-guard가 누적 diff를 위반으로 오판. PR sub-task worktree 격리/lock_sha..HEAD 분기 미흡.",
  "merge_impact": "없음 — ANU 독립 재검증으로 차수별 expected_files 정합성을 직접 확인했고 PR #166 merge 판단과 분리됨.",
  "related_memory": [
    "finish_task_shared_branch_gate_misfire_260521",
    "feedback_pr_subtask_worktree_isolation_260513"
  ],
  "followup_proposal": "차수 누적 브랜치에서 scope-guard 기준을 main..HEAD 대신 차수 lock_sha..HEAD(또는 직전 차수 commit..HEAD)로 분기. 별도 task로 회장 승인 후 진행.",
  "status": "DEFERRED — 별도 후속, 본 P0-a/P0-b 와 분리",
  "scope_guard_base_defect_260602": {
    "observation": "task-2722: 실제 origin/main..HEAD=2파일인데 scope-guard 가 local main..HEAD(또는 stale PROJECT_PATH) 기준 42파일 오탐. WARN 통과로 closeout.",
    "fix_direction": "base = origin/main 또는 task 생성시점 base SHA. local main 금지. PROJECT_PATH=worktree 강제.",
    "priority": "Core hardening HIGH",
    "problem_name": "finish-task PROJECT_PATH misbinding + scope base selection defect",
    "detail": "42파일 오탐은 task-2722 worktree(local main=origin/main, divergence 0)가 아니라 finish-task가 PROJECT_PATH를 메인 workspace/stale branch 쪽으로 잘못 바인딩한 환경 문제. (a) PROJECT_PATH=worktree 강제 (b) scope base = origin/main 또는 task 생성시점 base SHA."
  }
}