# 워크트리 정리 미팅 기록

- **일시**: 2026-03-07
- **작업 ID**: task-401.1
- **참석자**: 헤르메스(팀장), 불칸(백엔드), 아르고스(테스터)
- **안건**: 워크트리 잔류 원인 분석 + 개선안 도출

---

## 1. 원인 분석

### 현재 워크트리 생명주기
1. **생성**: dispatch.py → 팀 프롬프트에 worktree 생성 지시 포함
2. **작업**: 팀이 워크트리 안에서 코드 작업
3. **완료**: 팀이 `finish --action keep` → `.done` 파일 생성 → 아누 통보
4. **머지**: 아누가 수동으로 `git merge` 실행
5. **정리**: ❌ 없음 ← **갭 발견**

### 근본 원인
- DIRECT-WORKFLOW Step 4.5는 팀에게 `--action keep`을 지시 (팀이 직접 머지하지 않도록)
- notify-completion.py는 아누에게 보고서 요약만 지시 → 머지/정리 단계 없음
- report_parser.py가 `merge_worktree` 경로를 추출하지만 이를 활용하는 코드 없음

---

## 2. 논의 요약

### Q1: 자동 정리를 어디에 넣을 것인가?
- **불칸**: B안(cleanup 명령) 중심 + A안(프롬프트) 보조. LLM 실행에만 의존하면 신뢰성 떨어짐.
- **헤르메스**: 동의. 코드 레벨에서 안전하게 처리하되, 프롬프트로도 유도.
- **결론**: worktree_manager.py에 `cleanup` 명령 추가 + notify-completion.py 프롬프트 수정

### Q2: 안전 기준
- **불칸**: `git branch --merged <main>` 확인 후에만 제거
- **아르고스**: dirty worktree(미커밋 변경사항) 경고 필요
- **결론**: 머지된 브랜치만 정리, 삭제 전 로그 출력

### Q3: 머지 실패(충돌) 시
- **전원 합의**: 워크트리 유지, 아누가 충돌 보고 → 제이회장님 판단
- 자동 해결 시도하지 않음

### Q4: 테스트 전략
- **아르고스**: cleanup은 "다수 대상 일괄 탐색 후 선별 제거"라는 별도 책임 → 독립 테스트 필요
- 필수 케이스: 머지된 것만 제거, 미머지 보존, task/ 외 패턴 무시, 대상 없을 때 정상

---

## 3. 결론 (합의된 구현안)

### 3-1. worktree_manager.py에 `cleanup` 명령 추가
```
cleanup <project_path>
```
- 모든 task/ 패턴 워크트리 스캔
- `git branch --merged <main>` 확인
- 머지된 워크트리만 제거 + 브랜치 삭제
- 반환: `{"cleaned": [...], "skipped": [...]}`

### 3-2. notify-completion.py 프롬프트 수정
- 머지 성공 후 cleanup 실행 지시 추가
- report_parser.py에서 추출한 merge_worktree 경로 활용

### 3-3. 안전장치
- `git branch --merged` 기반 안전 확인
- 삭제 전 로그 출력
- task/ 패턴 외 워크트리 무시
