| name | cleanup-worktree |
| description | git ワークツリーを用いた作業が終わり、ワークツリーのクリーンアップ (後片付け) を指示されたときの手順。「ワークツリーを片付けて」「ワークツリーをクリーンアップして」「作業が終わったのでワークツリーを消して」などの依頼が出たら必ずこの skill を使うこと。ワークツリー設定の解除とブランチ削除を行ったあと、ワークツリーフォルダ内のファイルは削除を試みるが (失敗しても再試行しない)、ワークツリーフォルダ自身は削除せず手動削除を促す、という固定の手順を踏む。 |
ワークツリーのクリーンアップ手順
git ワークツリーを使った作業が終わったあとの後片付けを行う。
重要な方針: ワークツリーフォルダは Cursor などのエディタが開いているとロックされ、フォルダ自身の削除に失敗することがある。
この skill では、フォルダ削除で詰まることを避けるため、フォルダ内のファイル削除までにとどめ、フォルダ自身は削除しない。
全体の流れ
- 対象ワークツリーの確認
- ワークツリー設定の解除
- 不要ブランチの削除
- フォルダ内のファイルを削除 (失敗したら再試行せず報告)
- フォルダ自身は削除しない (手動削除を促す)
Step 1: 対象ワークツリーの確認
現在のワークツリー一覧を確認し、片付ける対象のパスとブランチを特定する。
git worktree list
確認する内容:
- 片付ける対象のワークツリーのパス (以降
<path> と表記) とブランチ名 (以降 <branch> と表記)。
- 自分が今いる場所が、これから消すワークツリー内でないこと。もし対象ワークツリー内にいる場合は、先にメインの作業ツリーへ移動してから進める。
対象が曖昧な場合は、ここでユーザーに確認する。
Step 2: ワークツリー設定の解除
対象ワークツリーの登録を解除する。
git worktree remove <path>
注意点:
- 未コミットの変更などで解除に失敗した場合は、内容を確認する。意図的に捨ててよいことがユーザーから示されている場合に限り
--force を付けてよい。判断がつかない場合は中断してユーザーに報告する。
git worktree remove がフォルダごと削除してくれた場合は、Step 4 と Step 5 は不要。Step 3 に進み、その後完了を報告する。
Step 3: 不要ブランチの削除
ワークツリーで使っていたブランチが不要であれば削除する。
git branch -d <branch>
注意点:
- 未マージのブランチを消す必要がある場合は、ユーザーに確認してから
-D を使う。残すべきブランチであれば削除しない。
- どのブランチを消すか曖昧な場合は、ここでユーザーに確認する。
Step 4: フォルダ内のファイルを削除
ワークツリーフォルダがまだ残っている場合、フォルダの中身 (ファイル・サブフォルダ) のみを削除する。
本リポジトリは Windows (PowerShell) 環境なので、PowerShell のコマンドを用いる。
Get-ChildItem -LiteralPath "<path>" -Force | Remove-Item -Recurse -Force
注意点:
Get-ChildItem -Force で隠しファイル (.git ファイルなど) も対象に含めること。
- これは成功することが多いが、失敗しても変に再試行したり別の手段を試したりしないこと。失敗した場合は、その失敗内容 (エラーメッセージ) をそのままユーザーに報告して、この skill の処理を終える。
- フォルダ自身 (
<path>) は 絶対に削除しようとしないこと (Remove-Item "<path>" や rmdir をしない)。エディタにロックされている可能性があり、ここで詰まるのを避けるのが本 skill の目的。
Step 5: フォルダ自身は削除せず手動削除を促す
最後に、ユーザーに以下を必ず伝えて終了する。
- ワークツリー設定の解除・ブランチ削除・フォルダ内ファイルの削除 (成功/失敗) の結果。
- ワークツリーフォルダ
<path> 自身は削除していないこと。
- Cursor などのエディタが開いているとロックされて削除できないことがあるため、
<path> は後で手動で削除してほしいこと。