---
task_id: task-1837_5.2
type: context
scope: task
created: 2026-04-16
updated: 2026-04-16
status: completed
---

# 맥락 노트: task-1837_5.2

**task**: task-1837_5.2

---

## 결정 근거

### 기존 auto_merge.py 확장 vs 신규 파일
- 기존 AutoMerger 클래스(769줄)에 추가하는 방식 선택
- 이유: 동일 모듈 내 유틸리티(logger, _load_env_keys, report_parser) 재활용 가능
- 대안: 별도 파일 — 기각 사유: import 복잡성 증가, 코드 중복

### 3 Step Why 자문

**1st Why**: "왜 이 설계가 필요한가?"
→ A: 현재 자동 머지는 개별 task 단위. 병렬 위임 시 3팀이 독립 작업 완료해도 통합 검증 파이프라인이 없어서 수동으로 확인해야 함.

**2nd Why**: "왜 A(3-Layer 분리)가 최선의 접근인가?"
→ B: 한꺼번에 merge+test하면 실패 시 원인 특정 어려움. L1(완료감지)→L2(충돌체크)→L3(테스트)로 분리하면 각 단계에서 FAIL 원인을 즉시 알 수 있고, Telegram으로 해당 단계 정보만 전달 가능.

**3rd Why**: "왜 B(단계별 분리)가 다른 대안보다 나은가?"
→ C: 대안 1(CI/CD 위임): 우리 환경은 로컬 workspace 기반이라 GitHub Actions 없음. 대안 2(수동 통합): 아누 부담 증가, 반복 작업. 3-Layer cron이 자동화+디버깅 용이성 모두 충족.

A→B→C 논리적 일관성 확인: 파이프라인 부재(A) → 단계별 분리로 실패점 특정(B) → 로컬 환경에서 cron 기반 자동화가 유일한 현실적 선택(C). 일관됨.

## 참조 자료

- 기존 코드: `/home/jay/workspace/scripts/auto_merge.py` (AutoMerger 클래스)
- dispatch.py check_batch_completion: line 1009
- task-timers.json: `{"tasks": {"task-id": {"batch_id": "...", ...}}}`

## 주의사항

- config.loader import는 pyright에서 reportMissingImports 경고 발생 (기존 코드부터 존재, 런타임에는 정상)
- systemd 등록은 install.sh 수동 실행 필요 (자동 등록 안 함)
- git merge --no-commit 시뮬레이션 후 반드시 git merge --abort + git reset --hard HEAD로 원복
