# task-2679 — PR_150_0AA96E1B_CI_GEMINI_WATCHER (Track G 후속)

- Level: Lv.2 (★ read-only · 코드 0 · merge 0 · nudge 0)
- 담당: **dev3 다그다** (★ idle · task-2675 완료 · task-2677 dev2/task-2678 dev6 충돌 0 · self-key 사고 봇 회피)
- 단일소스: 본 task md
- chair_authorization_id: **`CHAIR-AUTH-PR150-0AA96E1B-CI-GEMINI-WATCH-20260526-JJONGS-WATCH-001`** (★ ANU 권고 · 회장 verbatim 발급 대기)

## 배경

PR #150 X1 자동수렴 완료 (head `0aa96e1b24451034f1db398bb669ed63275bbd65`). /gemini review nudge 1회 발사 (★ comment_id 4535961995 · 2026-05-26 02:15:16 KST).

★ PR #149와 결과 혼합 금지. PR #150 separate watcher 위임.

## CI_WATCH_HANDOFF 12 필드

pr=150 / head=0aa96e1b / branch=task/task-2673-dev8 / expected=관찰만 / forbidden=전체 / watcher=dev3 다그다 / max_watch=60min / poll=120s / nudge=NUDGE_0 / auto_remediation=AUTO_REMEDIATION_0 / callback=ANU normal 1회 (★ ANU key c119085addb0f8b7) / terminal_states=5 enum

## 허용 8 / 금지 10 (회장 verbatim)

허용: PR #150 상태 관찰 / CI 11 / gemini-review-gate / phase3-merge-gate / Gemini head 0aa96e1b match / unresolved count / mergeable·mergeStateStatus / terminal state 시 ANU callback. 금지: 코드 수정 / PR #150 merge / auto-merge / 추가 Gemini nudge / dev bot 재dispatch / expected_files 밖 / Axis 1/2/3 runtime / dispatch.py / live settings.json / HARNESS_ENFORCED 전체.

## ★ 격리 anchor + HOLD 조기 전환 권장

- PR #149 (any head) 결과 혼합 금지 ★
- task-2670 RCA · task-2677 hardening 결과 혼합 금지
- head 0aa96e1b 기준만 평가
- ★ HOLD_FOR_CHAIR 조기 전환 권장 (★ poll #N unresolved 발생 즉시 분류)

## terminal_state 분류

- MERGE_READY: CLEAN + CI 11 SUCCESS + Gemini fresh head 0aa96e1b match + unresolved=0
- HOLD_FOR_CHAIR: BLOCKED + unresolved>0
- GEMINI_EXTERNAL_TRIGGER_STALE: head 0aa96e1b fresh review 60min 내 미도착
- CI_FAILED_NON_REMEDIABLE: Critical7 또는 코드결함 FAILURE
- LOOP_BOUNDARY: max_watch 60 도과

## 보고 필수 11

1. terminal state · 2. PR 번호 (150) · 3. head SHA · 4. CI 11 checks · 5. gemini-review-gate · 6. phase3-merge-gate · 7. latest Gemini head match 0aa96e1b · 8. unresolved count · 9. mergeStateStatus · 10. forbidden_action_count (0) · 11. recommended next action

## 완료 상태

성공: **`PR_150_0AA96E1B_CI_GEMINI_WATCH_TERMINAL_STATE_REPORTED`**

## expected_files (~3)

- `memory/events/task-2679.pr-150-0aa96e1b-ci-gemini-watch-result-260526.json`
- `memory/events/task-2679.done`
- `memory/reports/task-2679.md`

## allowed_resources

```yaml
allowed_resources:
  paths:
    - "memory/events/task-2679.*"
    - "memory/reports/task-2679.md"
    - "memory/tasks/task-2679.md"
    - "INDEX.md"
  read_only_reference:
    - "PR #150 GitHub state"
    - "memory/events/parallel-5-tracks-h-i-j-accepted-with-warn-track-a-x1-round4-260526.json"
  forbidden_paths:
    - "/home/jay/.claude/**"
    - "/usr/local/bin/cokacdir"
    - ".github/**"
    - "hooks/**"
    - "dispatch.py"
    - "scripts/finish-task.sh"
    - "utils/**"
    - "tests/**"
    - "schemas/**"
    - "memory/specs/**"
    - "memory/events/task-2662*"
    - "memory/events/task-2663*"
    - "memory/events/task-2664*"
    - "memory/events/task-2665*"
    - "memory/events/task-2666*"
    - "memory/events/task-2667*"
    - "memory/events/task-2668*"
    - "memory/events/task-2669*"
    - "memory/events/task-2670*"
    - "memory/events/task-2671*"
    - "memory/events/task-2672*"
    - "memory/events/task-2673*"
    - "memory/events/task-2674*"
    - "memory/events/task-2675*"
    - "memory/events/task-2676*"
    - "memory/events/task-2677*"
    - "memory/events/task-2678*"
    - "**/.env*"
    - "**/credentials*"
  commands:
    - "gh pr view"
    - "gh api graphql"
    - "gh api"
    - "python3 -c"
    - "python3 -m json.tool"
    - "ls"
    - "cat"
    - "sha256sum"
    - "wc"
    - "printf"
    - "grep"
    - "find"
    - "tail"
    - "head"
    - "cokacdir --cron"
    - "cokacdir --currenttime"
    - "touch"
    - "mkdir"
    - "sleep"
  merge_policy: "watch_only_0aa96e1b_no_pr_no_merge_no_code"
  ttl_hours: 2
```

## 종결

성공: **`PR_150_0AA96E1B_CI_GEMINI_WATCH_TERMINAL_STATE_REPORTED`**

끝
