{
  "record_type": "CI_WATCH_HANDOFF",
  "ts": "2026-05-31",
  "pr_number": 164,
  "head_sha": "8b24999d219ec9fdb2c9c807706b9e55fc669127",
  "branch": "task/task-2718-dev1",
  "expected_files": [
    "anu_v2/ci_gemini_watcher_runner.py",
    "tests/regression/test_ci_gemini_watcher_runner_2718.py"
  ],
  "forbidden_paths": [
    "dispatch/**", ".github/**", "anu_v2/merge_queue_executor.py",
    "PR#163 files", "PR#162 files"
  ],
  "watcher_owner": "UNWIRED — no automated watcher. ci_gemini_watcher runner(this PR) is itself not yet OS-driver-wired (state NOT_WIRED). 자기참조 닭-달걀: 이 PR의 CI/Gemini 자동감시 주체가 0.",
  "max_watch_minutes": "N/A (no wired watcher)",
  "poll_interval_seconds": "N/A — ANU session-bound polling 금지(회장 지시)",
  "gemini_nudge_policy": "OWNER gh auth(JonghyukJeon) manual /gemini review 1회, dedupe 후. dev/self-key 금지.",
  "auto_remediation_policy": "PR #163 whack-a-mole 학습 — MEDIUM robustness 무한수정 금지. valid bug/fail-closed gap만 bounded. 동일 semantic 2회 반복 시 LOOP_BOUNDARY.",
  "callback_on_terminal_state": "ANU manual 1-shot read-only re-check on next chair turn (NOT background polling).",
  "terminal_states": ["MERGE_READY_CANDIDATE", "LOOP_BOUNDARY", "BLOCKED_BY_CAPABILITY", "GEMINI_EXTERNAL_TRIGGER_REQUIRED", "CI_FAILED_NON_REMEDIABLE"],
  "operational_truth": "PR #164 자체가 BLOCKED_BY_CAPABILITY 의 실증 — ci_gemini_watcher runner 가 머지+OS driver 결선되기 전까지, 이 PR 의 CI/Gemini 도 결국 ANU/회장 수동 확인. merge는 회장 승인 전 금지."
}
