---
task_id: task-2452
type: checklist
scope: task
created: 2026-05-05
updated: 2026-05-05
status: in-progress
---

# 체크리스트: task-2452

**task**: task-2452

---

## Phase 1 — `auto_merge.py` 공식 폐기 (헤르메스, Lv.1)

- [ ] A. `crontab -e`에서 매분 실행 라인 제거 (`* * * * * cd /home/jay/workspace && /usr/bin/python3 scripts/auto_merge.py >> /home/jay/workspace/logs/auto_merge.log 2>&1`)
- [ ] B. `scripts/auto_merge.py` 헤더 docstring에 DEPRECATED 마커 + 30일 유예 안내 추가
- [ ] C. `logs/auto_merge.log` (24MB) → `logs/auto_merge.log.archive-2026-05-05` rename
- [ ] D. 빈 `logs/auto_merge.log` 새로 생성 (touch)
- [ ] E. `systemd/auto-merge.service` 상태 확인 + 보고서 명시 (현재 not-found 확인됨)
- [ ] F. 검증: `crontab -l | grep auto_merge` → 0건

## Phase 2 — `finish-task.sh` 끝부분 신호등 통합 (헤르메스, Lv.2)

- [ ] A. Step 2.7 (member-status idle 복원)을 삭제하고 신규 마지막 Step (`.done` 생성 직전)으로 이동
- [ ] B. 신규 마지막 Step에 `bot-activity.json idle 전환` 로직 추가 (동일 시점·동일 트리거)
- [ ] C. composite 작업 `team_id=""` 케이스 처리:
  - task-timers.json `affected_teams` 또는 `composite_teams` 필드 읽어 모든 참여 팀 idle
  - 없으면 `team_short`/`team_id` fallback, 그것도 없으면 warning 로그
- [ ] D. `bash -n scripts/finish-task.sh` syntax 검증
- [ ] E. 검증: dummy task 시나리오에서 `bot-activity.json` 해당 팀 status=idle, since=현재시각

## Phase 3 — `done-watcher.py` fallback only로 강등 (헤르메스, Lv.2)

- [ ] A. `process_done_files()` 변경:
  - 30분 grace 미만 .done은 스킵
  - `.merge-done` 마커 존재 시 스킵 (finish-task.sh가 곧 처리)
  - 30분 이상 + .merge-done 부재 시에만 `set_bot_idle()` + `[FALLBACK-IDLE]` 로그
- [ ] B. `extract_team_from_done_file()` 보강:
  - `task-timers.json[task_id].team_id`가 빈 문자열이면 `team` 필드 / `composite_teams` fallback
- [ ] C. `python3 -m py_compile scripts/done-watcher.py` → exit 0
- [ ] D. 검증: 30분 미만 .done은 idle 안 함, 30분 이상 + .merge-done 부재 시 fallback 동작

## Phase 4 — 4개 문서 일괄 정정 + 신호등 스펙 v2 (헤르메스, Lv.1)

- [ ] A. `memory/specs/anu-system-spec-for-external-advisor.md` V2 → V3:
  - §0 정정 요약: "auto_merge classify_tier Tier 1 자동 머지" 표현 정정 (BLOCKED 상태)
  - §1.4 / §3.9 / §5.2 / §6.10 등 머지 경로 A/B/C 3개로 명시
  - 부록 B에 `.done.escalated` 마커 생성자 미상 항목 추가
- [ ] B. `memory/specs/traffic-light-sync-analysis-2026-05-05.md`:
  - "auto_merge가 .done.escalated/.done.merging/.done.clear 마커 만든다" 부분 정정
  - 결함 3 (escalated dead-lock) 원인 정정: "마커 출처 미상 + done-watcher 스킵"
- [ ] C. `memory/plans/anu-guide-system/{plan,context-notes,checklist}.md`:
  - Phase 6 정정: auto_merge 의존 표현 제거 + 머지 3경로 명시
  - Phase 7 신규 추가: 신호등 통합 + auto_merge 폐기 (본 task)
- [ ] D. `memory/specs/anu-system-spec.md`:
  - §6.10 정정 + 1.1.1로 bump + changelog 추가
- [ ] E. `memory/specs/traffic-light-spec.md` v2 갱신:
  - 단일 책임 = `finish-task.sh` 끝부분 명시
  - 다단계 마커별 신호등 시점 정의

## 검증

- [ ] Phase 1 검증: 위 Phase 1 F 통과
- [ ] Phase 2 검증: 위 Phase 2 D, E 통과
- [ ] Phase 3 검증: 위 Phase 3 C, D 통과
- [ ] Phase 4 검증: 위 Phase 4 A~E 통과
- [ ] 시나리오 5.1 (정상 흐름): dummy task가 finish-task.sh 통과 → 두 source 동시 idle
- [ ] 시나리오 5.3 (auto_merge 폐기): crontab 0건 + 로그 0byte + DEPRECATED 마커
- [ ] git 커밋 1건 이상 (task-2452 메시지 포함, GIT-GATE 통과 조건)
- [ ] 보고서 작성: `memory/reports/task-2452.md`
- [ ] 3문서 업데이트: 본 checklist [x] 비율 50%+, plan.md status=in-progress→completed
- [ ] G3 독립 검증 PASS
- [ ] finish-task.sh 실행 (유일한 완료 경로)
