작업 마무리
개요
구현이 끝나면 깔끔하게 마무리하세요.
마무리 없이 끝내면:
-
변경사항이 흩어짐
-
다음에 어디까지 했는지 모름
-
불필요한 파일이 남음
-
배운 것이 사라짐
시작할 때 알림: "wrap 스킬을 사용하여 작업을 마무리하겠습니다."
┌──────────────────────────────────────────────────────────────────────┐ │ Wrap 워크플로우 (Enhanced) │ └──────────────────────────────────────────────────────────────────────┘
┌─────────────────┐ │ 구현 완료 │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ 1. 테스트 확인 │ npm test / pytest └────────┬────────┘ │ ┌─────┴─────┐ │ │ ▼ ▼ ┌──────┐ ┌──────┐ │ PASS │ │ FAIL │──▶ 테스트 먼저 수정! └──┬───┘ └──────┘ │ ▼ ┌─────────────────┐ │ 2. 상태 확인 │ git status / branch └────────┬────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ 3. 세션 인사이트 추출 │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Phase 1: 병렬 분석 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ doc-updater │ │ automation- │ │ learning- │ │ │ │ │ │ │ │ scout │ │ extractor │ │ │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ │ │ │ │ └────────────────┼────────────────┘ │ │ │ │ ▼ │ │ │ │ Phase 2: 순차 검증 │ │ │ │ ┌────────────────────────────────┐ │ │ │ │ │ duplicate-checker │ │ │ │ │ └────────────────┬───────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌────────────────────────────────┐ │ │ │ │ │ followup-suggester │ │ │ │ │ └────────────────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────┘ │ └────────────────────────┬────────────────────────────────────────┘ │ ▼ ┌─────────────────┐ │ 4. 옵션 선택 │ └────────┬────────┘ │ ┌────────┼────────┬────────┐ │ │ │ │ ▼ ▼ ▼ ▼ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │로컬│ │ PR │ │유지│ │삭제│ │머지│ │생성│ │ │ │ │ └─┬──┘ └─┬──┘ └─┬──┘ └─┬──┘ │ │ │ │ ▼ ▼ │ ▼ ┌─────┐ ┌─────┐ │ ┌─────┐ │main │ │push │ │ │확인 │ │머지 │ │+PR │ │ │후 │ │ │ │ │ │ │삭제 │ └──┬──┘ └──┬──┘ │ └──┬──┘ │ │ │ │ └───────┴──────┴───────┘ │ ▼ ┌─────────────────┐ │ 5. Worktree │ (사용했다면) │ 정리 │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ 완료! 🎉 │ └─────────────────┘
═══════════════════════════════════════════════════════════════════ 옵션 1: 로컬 머지 → merge + branch 삭제 + worktree 정리 옵션 2: PR 생성 → push + gh pr create + worktree 정리 옵션 3: 유지 → 그대로 (나중에 처리) 옵션 4: 삭제 → 확인 후 강제 삭제 ═══════════════════════════════════════════════════════════════════
전문 에이전트 (2-Phase Pipeline)
세션 인사이트 추출을 위해 5개의 전문 에이전트가 협력합니다.
Phase 1: 병렬 분석 (동시 실행)
에이전트 역할 모델
doc-updater CLAUDE.md, context.md, decision-record 업데이트 분석 sonnet
automation-scout 반복 작업을 skill/command/agent로 자동화할 기회 탐지 sonnet
learning-extractor 세션에서 배운 것, 실수, 새 발견 추출 sonnet
Phase 2: 순차 검증
에이전트 역할 모델
duplicate-checker Phase 1 제안의 중복 여부 검증 haiku
followup-suggester 미완성 작업, 개선 포인트, 다음 세션 작업 정리 opus
에이전트 실행 방법
Phase 1: 병렬 실행 (Task tool로 동시 호출)
Task(subagent_type="general-purpose", prompt="doc-updater 에이전트 실행...") Task(subagent_type="general-purpose", prompt="automation-scout 에이전트 실행...") Task(subagent_type="general-purpose", prompt="learning-extractor 에이전트 실행...")
Phase 2: Phase 1 결과를 입력으로 순차 실행
Task(subagent_type="general-purpose", prompt="duplicate-checker: Phase 1 결과 검증...") Task(subagent_type="general-purpose", prompt="followup-suggester: 후속 작업 정리...")
에이전트 상세
각 에이전트의 상세 프롬프트는 references/ 폴더에 있습니다:
references/ ├── automation-scout.md # 자동화 기회 탐지 ├── doc-updater.md # 문서 업데이트 분석 ├── duplicate-checker.md # 중복 검증 (Phase 2) ├── followup-suggester.md # 후속 작업 제안 └── learning-extractor.md # 학습 포인트 추출
절차
1단계: 테스트 확인
마무리 전에 테스트가 통과해야 합니다.
프로젝트에 맞는 테스트 명령어
npm test
또는
pytest
또는
go test ./...
테스트 실패 시:
테스트 실패:
- 실패: 2개
- 통과: 45개
[실패 내용 표시]
테스트를 먼저 수정해야 합니다. 마무리를 진행할 수 없습니다.
테스트 통과 시: 2단계로 진행
2단계: 현재 상태 확인
어떤 브랜치에 있는지
git branch --show-current
변경사항 확인
git status --short
worktree인지 확인
git worktree list
3단계: 옵션 선택
사용자에게 4가지 옵션을 제시합니다:
작업이 완료되었습니다. 어떻게 마무리할까요?
- 로컬에서 main에 머지
- PR 생성
- 브랜치 유지 (나중에 처리)
- 작업 취소 (삭제)
어떤 옵션을 선택하시겠습니까?
4단계: 선택에 따른 실행
옵션 1: 로컬 머지
메인 브랜치로 이동
git checkout main
최신 상태로 업데이트
git pull
기능 브랜치 머지
git merge feature/my-feature
테스트 재확인
npm test
브랜치 삭제
git branch -d feature/my-feature
옵션 2: PR 생성
원격에 푸시
git push -u origin feature/my-feature
PR 생성
gh pr create --title "기능 제목" --body "$(cat <<'EOF'
요약
- 변경 내용 1
- 변경 내용 2
테스트
- 확인 사항 1
- 확인 사항 2 EOF )"
PR URL을 사용자에게 알려줍니다.
옵션 3: 브랜치 유지
브랜치 feature/my-feature를 유지합니다. 다음에 이어서 작업하거나 마무리할 수 있습니다.
워크트리도 그대로 유지합니다.
옵션 4: 작업 취소
확인을 받습니다:
정말로 삭제하시겠습니까?
삭제될 항목:
- 브랜치: feature/my-feature
- 커밋: abc1234, def5678
- 워크트리: .worktrees/my-feature (있는 경우)
'삭제'를 입력하면 실행됩니다.
확인 후:
git checkout main git branch -D feature/my-feature
5단계: Worktree 정리
옵션 1, 2, 4를 선택한 경우 worktree 정리:
worktree 목록 확인
git worktree list
해당 worktree가 있으면 삭제
git worktree remove .worktrees/my-feature
옵션 3을 선택한 경우 worktree 유지.
마무리 체크리스트
-
테스트 통과 확인
-
적절한 마무리 옵션 선택
-
커밋 메시지 명확
-
PR 설명 (옵션 2의 경우)
-
worktree 정리 (해당되는 경우)
옵션별 요약
옵션 머지 푸시 브랜치 삭제 Worktree 정리
- 로컬 머지 O
O O
- PR 생성
O
O
- 유지
- 삭제
O (강제) O
주의사항
-
테스트 실패 상태로 머지하지 마세요
-
삭제는 되돌릴 수 없습니다 - 반드시 확인
-
PR은 리뷰 후 머지하세요
예시 흐름
사용자: /wrap
Claude: wrap 스킬을 사용하여 작업을 마무리하겠습니다.
[테스트 실행] npm test 결과: 12개 통과, 0개 실패 ✅
[상태 확인] 브랜치: feature/login 변경사항: 5개 파일, 커밋 3개
[옵션 제시] 작업이 완료되었습니다. 어떻게 마무리할까요?
- 로컬에서 main에 머지
- PR 생성
- 브랜치 유지
- 작업 취소
사용자: 2
Claude: PR을 생성합니다.
[푸시] git push -u origin feature/login
[PR 생성] gh pr create --title "로그인 기능 추가" --body "..."
PR이 생성되었습니다: https://github.com/...
[Worktree 정리] .worktrees/login 삭제 완료
마무리가 완료되었습니다!