remove-worktreelisted
Install: claude install-skill HyperAITeam/CLITrigger
# Remove Worktree
워크트리를 제거하고 연결된 브랜치를 정리합니다.
## Current context
- Worktree list: `!git worktree list --porcelain`
## Instructions
Follow these phases exactly, in order. Do NOT skip phases.
---
### Phase 1: 워크트리 선택
1. `git worktree list --porcelain`을 실행하여 모든 워크트리 정보를 파싱한다.
- 각 워크트리 항목은 `worktree <path>`, `HEAD <hash>`, `branch refs/heads/<name>` 형태로 출력된다.
- **main worktree** (현재 체크아웃된 주 저장소)는 목록에서 제외한다.
2. **`$ARGUMENTS`가 제공된 경우**:
- 워크트리 경로 또는 브랜치명으로 매칭되는 항목을 찾는다.
- 경로의 마지막 부분(디렉터리명)으로도 매칭을 시도한다.
- 매칭되는 항목이 없으면 사용 가능한 워크트리 목록을 보여주고 중단한다.
3. **`$ARGUMENTS`가 없는 경우**:
- 워크트리가 하나도 없으면 "제거할 워크트리가 없습니다."라고 알리고 중단한다.
- 워크트리가 하나면 자동 선택한다.
- 워크트리가 여러 개면 번호와 함께 목록을 보여주고 `AskUserQuestion`으로 선택 받는다.
```
제거할 워크트리를 선택하세요:
1. feature/task-abc123 → .worktrees/feature-task-abc123
2. feature/task-xyz789 → .worktrees/feature-task-xyz789
```
4. 선택된 워크트리의 **경로**와 **브랜치명**을 확정한다.
---
### Phase 2: 안전 검사
1. `git -C <worktree-path> status --porcelain`을 실행한다.
2. **변경사항이 없으면**: Phase 3으로 바로 진행한다.
3. **미커밋 변경사항이 있으면**:
- 변경된 파일 목록을 보여준다.
- `AskUserQuestion`으로 확인을 받는다:
> "워크트리 `<branch-name>`에 미커밋 변경사항이 있습니다. 강제로 제거하면 이 변경사항은 영구적으로 삭제됩니다. 계속하시겠습니까? (yes/no)"
- "no" 또는 거부하면 중단하고 변경사항을 커밋하거나 스태시할 것을 안내한다.
- "yes"면 강제 제거 플래그(`--force`)를 사용하기로 표시하고 Phase 3으로 진행한다.
---
### Phase 3: 워크트리 제거
1. 워크트리를 제거한다:
- 변경사항 없음: `git worktree remove <worktree-path>`
- 강제 제거: `git worktree remove --force <worktree-path>`
2. 명령이 실