{
  "id": "FINISH_TASK_GIT_EVIDENCE_FIX_PREDISPATCH_AUDIT_RESCOPE",
  "ts": "2026-06-08T02:00+09:00",
  "context": "회장 A안 dispatch 승인(dev4) 전, ANU read-only 사전 audit (회장 FIX목표 #7 '실제 로드 경로 audit' + HOLD 조건 #8/#9 게이트).",
  "load_path_finding": "finish-task.sh:364-368 → 팀별 qc_verify 존재 시 teams/${TEAM}/qc/qc_verify.py 사용 → from verifiers import git_evidence (sys.path=teams/${TEAM}/qc/) → 각 팀이 자기 사본 teams/devN/qc/verifiers/git_evidence.py 로드. shared 1개 수정=팀 finalize 미적용(HOLD #8). 9개 수정=expected_files 초과(HOLD #9).",
  "key_discovery": "git_evidence.py(9 사본 전부)는 이미 4단계 resolution(_resolve_project_dir_with_source: A env PROJECT_PATH/WORKTREE_PATH / B task-timers worktree_path / C task파일 경로 / D fallback) + COMMIT_EXISTS --all 보유. ⇒ git_evidence 수정 불필요 — 올바른 입력(env)만 주면 CODE_ROOT 해석.",
  "true_defect": "finish-task.sh 가 QC subprocess(python3 $QC_SCRIPT --gate)에 PROJECT_PATH/WORKTREE_PATH 를 export/전파 안 함(export 0건). → git_evidence 가 case D canonical fallback. + GIT-GATE dirty PROJ_DIR=canonical.",
  "recommended_rescope": {
    "name": "finish-task.sh-primary fix (git_evidence UNCHANGED)",
    "change": "finish-task.sh: (1) PROJECT_PATH/WORKTREE_PATH 를 QC subprocess 에 export(=CODE_ROOT) → git_evidence case A 결정적 해결 (2) GIT-GATE dirty PROJ_DIR/EXTERNAL_DIRTY 를 CODE_ROOT-격리 clean 시 false-block 안 하도록 dirty-scope. (3) OWN_DIRTY/forbidden/expected초과/stale·diverged 는 fail-closed 유지. (4) 일반 canonical-path 100% backward-compat.",
    "expected_files_4": ["scripts/finish-task.sh", "regression test", "memory/reports/<task>.md", "memory/plans/<design>.md"],
    "git_evidence_untouched": "9-사본 fan-out 회피 — git_evidence 미편집. 단 재현 결과 git_evidence 자체 버그로 편집 필요 판명 시 → HOLD_FOR_CHAIR(fan-out).",
    "residual_uncertainty": "+14 COMMIT_EXISTS FAIL 이 순수 'env 미전파' 때문인지(=finish-task only로 해결) 타이밍/기타인지 — 봇 재현으로 확정. git_evidence --all 은 canonical fallback 에서도 commit 발견되므로(재현 1건) env 전파만으로 해결될 가능성 높음."
  },
  "chair_message_truncation": "회장 메시지 말미 'HOLD 조건 #10 task-2716 수정 ...' 에서 [truncated] — HOLD 조건 전체 미수신. 추측 0.",
  "anu_action": "dispatch 보류 — 사전 audit 가 HOLD 조건 #8 충족(shared-only 미적용) + 더 나은 re-scope 발견 + 회장 메시지 truncation. 회장 re-scope 승인 + 잘린 HOLD 조건 재전송 후 dispatch.",
  "verdict": "PREDISPATCH_AUDIT_COMPLETE_RECOMMEND_RESCOPE_AND_AWAIT_CHAIR",
  "hold": {"dispatch": "회장 re-scope 확인 대기", "production_activation": "금지", "git_evidence_9copy_edit": "회피", "callback_prereg_root": "이번 범위 제외(회장 #10)"}
}
