# task-401.1 완료 보고서: 워크트리 잔류 원인분석 + 개발시스템 개선

- **작업 ID**: task-401.1
- **팀**: dev1-team (헤르메스)
- **작업 요약**: 머지 완료된 워크트리가 정리되지 않는 문제 분석 및 자동 정리 메커니즘 구현

---

## 1. 원인 분석 결과

### 워크트리 생명주기 갭
- 팀은 `finish --action keep`으로 워크트리를 유지한 채 아누에게 머지 판단 위임
- 아누가 수동 머지 후 워크트리/브랜치를 제거하는 단계가 **존재하지 않음**
- `report_parser.py`가 `merge_worktree` 경로를 추출하지만 활용하는 코드 없음

### 근본 원인
DIRECT-WORKFLOW Step 4.5와 notify-completion.py 사이에 **정리(cleanup) 단계가 누락**

---

## 2. 개선 내용

### 2-1. `worktree_manager.py`에 `cleanup` 명령 추가
- `cleanup <project_path>` — 모든 task/ 워크트리 스캔
- `git branch --merged <main>` 확인하여 머지된 브랜치의 워크트리만 제거
- 미머지 워크트리는 `skipped` 처리 (안전장치)
- 반환값: `{"cleaned": [...], "skipped": [...]}`

### 2-2. `notify-completion.py` 프롬프트 수정
- 아누에게 "머지 완료 후 `worktree_manager.py cleanup` 실행" 지시 추가
- 보고서의 워크트리 경로에서 project_path 추출하여 사용

---

## 3. 수정 파일 목록

- `/home/jay/workspace/scripts/worktree_manager.py` — `cmd_cleanup()` 함수 + CLI 서브커맨드 추가
- `/home/jay/workspace/scripts/notify-completion.py` — `build_prompt()` cleanup 지시 추가
- `/home/jay/workspace/scripts/tests/test_worktree_manager.py` — `TestCleanup` 4개 테스트 추가

---

## 4. 테스트 결과

- **총 테스트**: 14 (기존 10 + 신규 4)
- **통과**: 14
- **실패**: 0

### 신규 테스트 케이스
- `test_cleanup_removes_merged` — 머지된 워크트리만 정리
- `test_cleanup_skips_unmerged` — 미머지 워크트리 보존
- `test_cleanup_mixed` — 혼합 시나리오 (머지+미머지)
- `test_cleanup_no_targets` — 대상 없을 때 정상 동작

---

## 5. 에이전트 미팅 기록

`/home/jay/workspace/memory/meetings/2026-03-07-worktree-cleanup.md` 참조

---

## 6. QC 검증

- pyright: 에러 0건
- black + isort: 변경 없음 (이미 준수)
- 발견 버그: 0건

---

## 머지 판단
- **머지 필요**: No (시스템 스크립트 직접 수정, 워크트리 미사용)
