{
  "marker_version": "v1",
  "marker_type": "pr_153_closed_preserved_scope_leak_and_callback_failure",
  "recorded_at": "2026-05-26T15:54:00+09:00",
  "recorded_by": "ANU_chair_facing_session",
  "source_attribution": "RECEIVED_INBOUND_THIS_SESSION (★ chair verbatim Option A close 결정)",
  "chair_directive_origin": "회장 verbatim 2026-05-26 — 'Option A를 선택한다. PR #153은 close한다. 단, 증거 보존을 위해 삭제하지 말고 preserve marker를 남겨라.'",

  "final_status_chair_verbatim": "PR_153_CLOSED_PRESERVED_SCOPE_LEAK_AND_CALLBACK_FAILURE",

  "pr_153_close_evidence": {
    "pr_number": 153,
    "pr_url": "https://github.com/Jeon-Jonghyuk/dev_workspace/pull/153",
    "title": "[task-2691] finish-task latency Phase 1: helpers + task_mode (Phase 2 scripts hook 위임)",
    "head_branch": "task/task-2691-dev8",
    "head_sha": "7065c3aea4866fadf9250cc94600235f03a669c7",
    "closed_at_utc": "2026-05-26T06:53:57Z",
    "closed_at_kst": "2026-05-26T15:53:57+09:00",
    "state": "CLOSED",
    "branch_preserved": true,
    "branch_delete_forbidden": "★ 증거 보존 의무"
  },

  "chair_acknowledged_violations_8": [
    "PR #153 changedFiles 42 (★ scope-diff.txt 16 file vs 26 file scope leak)",
    "expected_files 밖 26 file 유입",
    "PR #152 와 overlap 2 file: dispatch/__init__.py / scripts/finish-task.sh",
    "scripts/finish-task.sh 는 task-2691 Phase 1 수정 금지였음 (★ ANCHOR-1 + 금지 1번 위반)",
    "PR #153 mergeStateStatus DIRTY / CONFLICTING",
    "normal callback envelope 존재 but cron 등록 0 (★ NORMAL_CALLBACK_NOT_REGISTERED 변종 재발)",
    "finish-task 지연 개선 Phase 1 dogfood 실패 (★ envelope 3 SID dogfood 는 PASS · cron 발사 dogfood 는 FAIL)",
    "memory/plans/tasks/task-2568+2569 + cleanup scripts + git hooks 유입"
  ],

  "scope_leak_26_file_categorization": {
    "pr_152_overlap_2": [
      "dispatch/__init__.py",
      "scripts/finish-task.sh"
    ],
    "task_2568_2569_plans_3": [
      "memory/plans/tasks/task-2568/checklist.md",
      "memory/plans/tasks/task-2568/context-notes.md",
      "memory/plans/tasks/task-2568/plan.md"
    ],
    "task_2569_plans_3": [
      "memory/plans/tasks/task-2569/checklist.md",
      "memory/plans/tasks/task-2569/context-notes.md",
      "memory/plans/tasks/task-2569/plan.md"
    ],
    "reports_3": [
      "memory/reports/task-2568.md",
      "memory/reports/task-2569.md",
      "memory/reports/task-2569+1.md"
    ],
    "specs_3": [
      "memory/specs/protection-list.json",
      "memory/specs/protection-list.md",
      "memory/task-timer.py",
      "memory/tasks/task-2569.md"
    ],
    "cleanup_scripts_4": [
      "scripts/cleanup-stale-tasks.sh",
      "scripts/cleanup-workspace.py",
      "scripts/file_cleanup.py",
      "scripts/task_scope.py"
    ],
    "git_hooks_2": [
      "scripts/git-hooks/pre-push",
      "scripts/pre_push_guard.py"
    ],
    "task_2569_regression_5": [
      "tests/regression/test_cleanup_workspace_protection_2569.py",
      "tests/regression/test_dispatch_smoke_2569_plus_1.py",
      "tests/regression/test_finish_task_stash_lifecycle_2569.py",
      "tests/regression/test_scope_guard_lock_sha_2569.py",
      "tests/regression/test_task_md_preservation_2569.py"
    ]
  },

  "scope_leak_root_cause_anu_analysis": {
    "primary": "dev8 라 봇이 main workspace 의 dirty state (★ task-2691.merge-blocked-by-main-workspace-state.json 의 7 non_task_files) 를 worktree 로 끌어옴",
    "secondary": "봇 self-evaluation 실패: scope-diff.txt 16 file 작성 but 실제 commit 42 file (★ self 검증 누락)",
    "tertiary": "finish-task.sh pre_push_guard blocked 상태에서도 commit 강행 후 push (★ 가드 우회)"
  },

  "callback_failure_root_cause_anu_analysis": {
    "primary": "envelope 파일 작성 후 cokacdir --cron 호출 0 (★ schedule_history F99C1C91.log 흔적 0)",
    "irony": "★ task-2691 자체가 callback session propagation wiring fix Phase 1 → dogfood 자체 실패",
    "consistent_with_doctrine": "[[feedback_normal_callback_not_registered_variant_260523]] 박제 사고 재발 (★ envelope sendfile only / cron 등록 0)"
  },

  "chair_verbatim_forbidden_9": [
    "PR #153 merge",
    "PR #153 force push",
    "PR #153 cleanup rewrite",
    "PR #153 scope leak 파일 일부만 되돌려서 계속 사용",
    "PR #152 와 수동 병합",
    "scripts/finish-task.sh 수정",
    "live settings.json 변경 / hooks live 변경 / dispatch.py 변경",
    "Axis runtime 변경",
    "HARNESS_ENFORCED 전체 선언"
  ],

  "followup_task_2691_plus_a_status": {
    "decision": "task-2691+a 새 발의 (★ fresh origin/main 기준 별도 worktree)",
    "task_md_drafted": "memory/tasks/task-2691+a.md (★ ANU 작성 진행 · chair_authorization_id 회장 verbatim 발급 대기)",
    "dispatch_status": "HELD (★ chair_authorization_id 회장 verbatim 도착 후만 dispatch · 본 ANU 자기 정정 doctrine 적용)"
  },

  "track_status_5": {
    "track_a_pr_149_x1_r7": "task-2689 watcher in progress (★ 5762AA9D · 별도 트랙)",
    "track_b_pr_151_self_key_hardening": "READ_ONLY_HOLD 유지",
    "track_c_task_2686_plus_1": "PR #152 HOLD_FOR_CHAIR (★ unresolved 6건 별도 판단 · PR #153 사고와 혼합 금지)",
    "track_d_pr_152_watcher": "task-2690 in progress",
    "track_e_finish_task_latency": "PR #153 CLOSED + task-2691+a 발의 준비 (★ chair_authorization_id 발급 대기)"
  },

  "anu_action_count_session_aggregate": {
    "code_change": 0,
    "new_dispatch_cumulative": 5,
    "pr_closed": 1,
    "marker_written": 7,
    "git_fetch": 1,
    "git_push": 0,
    "polling": 0,
    "chair_report_critical_immediate": 1
  },

  "common_forbidden_maintained_12": [
    "PR merge 0",
    "auto-merge 0",
    "branch 삭제 0 (★ task/task-2691-dev8 보존)",
    "live settings.json 변경 0",
    "hooks live 변경 0",
    "dispatch.py 변경 0",
    "Axis runtime 변경 0",
    "HARNESS_ENFORCED 전체 선언 0",
    "policy 승격 0",
    "BLOCK 확대 0",
    "PR #149 / PR #151 / PR #152 영역 혼합 0",
    "chair_authorization_id 임의 발급 코드 task 선발사 0 (★ 본 ANU 자기 정정 적용)"
  ],

  "linked_markers": [
    "memory/tasks/task-2691.md (★ 원본 task md · PR #153 close 후에도 보존)",
    "memory/events/task-2691.done (★ dev8 라 봇 완료 marker)",
    "memory/events/task-2691.finish-task-latency-phase-1-result-260526.json (★ 봇 결과)",
    "memory/events/task-2691.merge-blocked-by-main-workspace-state.json (★ pre_push_guard blocked 원인)",
    "memory/events/anu_callback/task-2691-normal-completion.json (★ envelope 3 SID PASS / cron FAIL)",
    "memory/events/task-2691-phase-1-authorization-warn-accepted-by-chair-after-dispatch-260526.json (★ AUTHORIZATION_WARN 박제)",
    "memory/feedback_chair_authorization_id_must_be_chair_verbatim_for_code_tasks_260526.md (★ ANU 자기 정정 doctrine)",
    "memory/feedback_normal_callback_not_registered_variant_260523.md (★ 재발 사고 박제 doctrine)",
    "memory/tasks/task-2691+a.md (★ 후속 fresh worktree task md · 작성 진행 · 발사 대기)"
  ]
}
