---
name: anu-no-direct-ci-watch-use-handoff-260523
description: ANU는 CI/Gemini를 직접 기다리지 않는다. PR open 이후 대기/감시/자동수렴은 반드시 bot 또는 watcher task에 위임한다. session-bound polling 한계 + 사고 박제 2회 (PR #143/#144).
metadata:
  type: feedback
---

# ★★★ ANU 직접 CI/Gemini 대기 금지 — CI_WATCH_HANDOFF 위임 강제 (2026-05-23)

## Rule
**ANU는 CI/Gemini를 직접 기다리지 않는다.** PR open 이후 대기/감시/자동수렴은 반드시 bot 또는 watcher task에 위임한다. PR open 시 `CI_WATCH_HANDOFF` 생성 필수.

## Why
- ANU 세션-bound background polling 한계 — 세션 종료 시 polling도 함께 죽음 (`ci_watcher_session_lifetime_gap_backlog_260523.json` 박제)
- PR #143 task-2640: 15분 지연 ("ci 재실행 체크는 언제 해?" 회장 직접 지적, 2026-05-23 17:13 KST)
- PR #144 task-2641: ANU 가 "CI 완료 대기 백그라운드 진입" 동일 패턴 반복 → 회장 verbatim 정책 변경 (2026-05-23 19:38 KST)
- 회장 명시: "ANU 가 'CI 완료 즉시 자동수렴' 또는 '백그라운드에서 계속 보겠다' 고 말하는 것은 부정확하다"

## How to apply

### 역할 분리 (회장 verbatim)
**ANU 책임**:
- batch plan 작성 / dev bot dispatch / callback 수신 / independent verification / merge-ready 판정 / Critical7 보고 / consolidated report

**watcher (dev bot 또는 cron) 책임**:
- PR open 이후 CI polling / Gemini freshness / OWNER nudge / 자동수렴 / regression 재실행 / push/thread resolve / GREEN 확인 / merge-ready 시 ANU callback 발사

### PR open 시 CI_WATCH_HANDOFF 생성 필수
12 필수 필드: `pr_number` · `head_sha` · `branch` · `expected_files` · `forbidden_paths` · `watcher_owner` · `max_watch_minutes` · `poll_interval_seconds` · `gemini_nudge_policy` · `auto_remediation_policy` · `callback_on_terminal_state` · `terminal_states`

### terminal_states 5 enum
`MERGE_READY` · `CHAIR_REQUIRED` · `GEMINI_EXTERNAL_TRIGGER_STALE` · `CI_FAILED_NON_REMEDIABLE` · `LOOP_BOUNDARY`

### Watcher 방식 5 단계
1. dev bot 이 PR open = dev bot 이 계속 watcher
2. ANU OWNER 권한 PR open = 즉시 별도 watcher cron / dev bot watcher 발사
3. watcher = terminal state 도달까지 polling
4. watcher = terminal state 에서 ANU normal callback 발사
5. ANU = callback 받은 뒤에만 consolidated report

### 4 금지 (verbatim)
1. ANU 가 "CI 완료 대기 백그라운드 진입" 보고 금지
2. session-bound background task 만 믿고 자동수렴 약속 금지
3. 회장 입력 기다리는 CI watcher 운영 금지
4. 회장에게 "나중에 확인해달라" 기본 경로 요구 금지

## 관련 메모리
- [[ci-watcher-session-lifetime-gap]] — backlog 옵션 3종 (C1 cokacdir cron / C2 webhook / C3 GitHub Actions self-notification)
- [[owner-gemini-trigger-router-spec]] — Gemini fresh evidence 부재 시 watcher 가 1차 사용
- [[system-ci-watch-handoff-policy-spec]] — 단일 소스 spec

## 단일 소스
`memory/specs/system_ci_watch_handoff_policy_spec_260523.md` (회장 verbatim 12 필드 + 5 terminal states + Watcher 5 단계 + 4 금지)
