mergedlisted
Install: claude install-skill devbasex/ai-plugins
# マージ後クリーンアップコマンド
PR マージ後の後始末をまとめて実行する。対象 PR のブランチ削除に加えて、残っているマージ済みブランチの整理と main の取り込みもこの Skill で扱う。
## 用途の切り分け(最初に判定する)
| 依頼の意図 | 実行する節 |
|---|---|
| PR マージ後のクリーンアップ | 「クリーンアップの手順」→ 必要なら「マージ済みブランチの整理」 |
| マージ済みブランチの整理のみ | 「マージ済みブランチの整理」のみ(クリーンアップの手順は実行しない) |
| 作業中ブランチへ最新 main を取り込む | 「main の取り込み」のみ(クリーンアップの手順は実行しない) |
「クリーンアップの手順」以外を目的とする場合、対象 PR は未マージであるのが通常のため、
手順 1(PR のマージ確認)を前提条件にしてはならない。「マージ済みブランチの整理」と
「main の取り込み」はいずれも **単独で実行可能** で、PR のマージ状態に依存しない。
## 削除前の同意取得(必須)
worktree 削除・ローカルブランチ削除・リモートブランチ削除はいずれも取り消しが難しい。
**この 3 種類の操作は、実行の直前に削除対象を一覧で提示して利用者の同意を得る。
同意が得られていない対象は削除しない。** この Skill は自然文の依頼でも起動するため、
安全性はこの手順で担保する(frontmatter の発動制御には依存しない)。
| 操作 | 提示するもの |
|---|---|
| worktree 削除 | worktree のパスと、未コミット変更の有無(`git -C <path> status --short`) |
| ローカルブランチ削除 | ブランチ名と、main へ未マージのコミットがあるか |
| リモートブランチ削除 | リモート名とブランチ名。共有ブランチに影響するため、他の削除と分けて同意を取る |
- 「削除してよいか」だけを尋ねるのは確認にならない。**対象そのものを一覧で示す**
- 同意が得られなかった対象はスキップし、作業完了報告にスキップした対象と理由を記載する
- 利用者が対象を明示して削除を依頼した場合(`/ndf:merged 123` で PR 番号を指定した等)は、
その依頼が対象への同意にあたる。それでも一覧の提示は行い、依頼に含まれない対象
(マージ済みブランチの一括整理、リモート削除)については改めて同意を取る
## クリーンアップの手順
1. **マージ確認**: 引数の(引数がなければ自身が作成した最新の)PR が main に merge されていることを github mcp で確認。merge されていなければクリーンアップは実施せず終了
2. **作業ツリー退避**: `git branch --show-current` で**退避元のブランチ名を記録**し、`git status` を確認して変更があれば `git stash`
3. **main 更新**: `git checkout main` → `git pull`
4. **worktree クリーンアップ**: `git worktree list` で当該 PR 番号に対応する worktree (`pr<PR番号>`) を探し、**「削除前の同意取得」に従ってパスと未コミット変更の有無を提示し、同意を得てから** `gi