cleanup-merged-branches について
マージ済みプルリクエストに関連するリモートブランチを整理し、未完了の関連イシューも確認するスキルです。削除計画を事前に表示し、明確な承認後にのみ削除します。
主な機能
- 01削除対象ブランチの事前計画
- 02マージ済み・未完了PRの確認
- 03デフォルトと staging の保護
- 04削除前の明確な承認
- 05未完了の関連イシューの確認
活用シーン
- 01整理対象のリモートブランチを確認
- 02計画を承認してブランチを削除
- 03統合ブランチへのマージで残ったイシューをクローズ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ timschoch/ mattpocock-skills --skill cleanup-merged-branchesインストール後、Claude Code で/cleanup-merged-branchesを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlscripts/plan.sh
詳細
マージ済み PR に紐づくリモートブランチを削除します。破壊的な操作のため、まずドライランを実行し、明示的な確認なしに削除することはありません。
削除ルール
以下のすべてを満たす場合に限り、ブランチを削除できます。判定条件は唯一の信頼できる情報源である scripts/plan.sh に記述されています。
- リモートにまだ存在している
- マージ済み PR がある
- オープン中の PR がない
- 保護対象ではない
保護対象とは、デフォルトブランチと staging です。マージ済み PR が紐づいていても、これらは削除しないでください。PR がないブランチ、またはクローズ済みで未マージの PR しかないブランチは削除できません(「マージ済み PR に紐づく」ことがないためです)。保護対象の追加は、scripts/plan.sh 内の is_protected() だけで行ってください。他の場所では行わないでください。
手順
- ドライラン。
bash scripts/plan.shを実行します(origin以外の場合はリモート名を$1として渡します)。削除可能なブランチが<branch> #<pr> <title>の形式で表示されます。ここでは何も削除されません。一覧が表示されたら完了です。出力が空の場合は「クリーンアップ対象はありません」と報告して終了します。 - 提示して確認。 一覧全体をユーザーに提示し、明示的な許可を求めます。曖昧な返答では削除しないでください。明確な同意があった場合に限り削除します。この確認は毎回必須です。
- 削除。 確認済みの各ブランチに対して、
git push origin --delete <branch>を実行します。プランの一覧にないものは削除しないでください。 - 報告。 削除したものを列挙し、push に失敗したものがあればその旨を記載します。
追加事項:古いオープン中の issue
Closes #N によって自動的にクローズされるのは、デフォルトブランチへのマージ時のみです。統合ブランチ(例:rebuild/v1)に PR がマージされても、#N はオープンのままになります。ここでクリーンアップするマージ済み PR ごとに、紐づく issue を確認してください。作業内容がデフォルトブランチに反映されているのに issue がまだオープンの場合は、手動でクローズします(gh issue close #N --reason completed --comment "merged via #<pr>")。同じ誤動作により、完了済みの issue がオープンとして残っていることもあります。ここで見つけてください。