From reviw-plugin
Safely deletes merged Git worktrees after verifying git merge status and GitHub PR closure via gh CLI. Handles single branch or 'all' for batch cleanup post-PR merge.
npx claudepluginhub kazuph/reviw --plugin reviw-pluginThis skill uses the workspace's default tool permissions.
マージ済みのworktreeを安全に削除する。
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
マージ済みのworktreeを安全に削除する。 git的にマージ済み + PR的にもマージ済みであることを確認してから削除する。
$ARGUMENTS = 削除対象のブランチ名、または all(一括クリーンアップ)
git wt list は禁止("list" というworktreeが作成されてしまう)git wt(引数なし)を使うgit worktree list を使う# 引数なしで一覧表示
git wt
引数あり(単一削除): $ARGUMENTS で指定されたブランチを対象とする
引数が "all"(一括クリーンアップ): 全worktreeを走査し、マージ済みのものを検出
# 各worktreeのブランチについてマージ状態を確認
for branch in $(git worktree list --porcelain | grep 'branch refs/heads/' | sed 's|branch refs/heads/||'); do
# デフォルトブランチ(main/master)はスキップ
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||')
[ "$branch" = "$DEFAULT_BRANCH" ] && continue
echo "--- $branch ---"
# gitマージ状態
if git branch --merged "$DEFAULT_BRANCH" | grep -q "$branch"; then
echo " git: merged"
else
echo " git: NOT merged"
fi
# PRマージ状態
gh pr list --head "$branch" --state merged --json number,title --jq '.[] | " PR #\(.number): \(.title) (merged)"'
gh pr list --head "$branch" --state open --json number,title --jq '.[] | " PR #\(.number): \(.title) (OPEN)"'
done
以下の全てを確認:
| チェック項目 | コマンド | 合格条件 |
|---|---|---|
| gitマージ済み | git branch --merged <default> | ブランチが含まれる |
| PRマージ済み | gh pr list --head <branch> --state merged | 結果が1件以上 |
| 未コミット変更なし | git -C .worktree/<branch> status --porcelain | 出力が空 |
PRが存在しない場合: 警告を表示し、ユーザーに確認する
Question: "ブランチ <branch> にはPRがありません。削除してよいですか?"
Header: "確認"
Options:
1. "削除する" - worktreeとブランチを削除
2. "スキップ" - このブランチは残す
gitで未マージの場合: git wt -d が自動で失敗するので安全。強制削除が必要なら:
Question: "ブランチ <branch> はデフォルトブランチにマージされていません。強制削除しますか?"
Header: "未マージ"
Options:
1. "強制削除 (-D)" - git wt -D で強制削除
2. "スキップ" - このブランチは残す
# worktree + ローカルブランチ削除(マージ済みのみ)
git wt -d <branch>
# 強制削除が必要な場合
git wt -D <branch>
Question: "リモートブランチ origin/<branch> も削除しますか?"
Header: "リモート"
Options:
1. "削除する (Recommended)" - git push origin --delete <branch>
2. "残す" - リモートブランチは残す
git push origin --delete <branch>
| ブランチ | worktree | ローカル | リモート | PR |
|---------|----------|---------|---------|-----|
| feature/xxx | 削除済み | 削除済み | 削除済み | #123 (merged) |
| fix/yyy | 削除済み | 削除済み | スキップ | なし |
git wt list の使用("list" worktreeが作られる)