mcpField
C
cleanup-merged-branches

cleanup-merged-branches

github.com/timschoch開発068 回インストール1 週間前に更新
リポジトリ

cleanup-merged-branches について

マージ済みプルリクエストに関連するリモートブランチを整理し、未完了の関連イシューも確認するスキルです。削除計画を事前に表示し、明確な承認後にのみ削除します。

主な機能

  1. 01削除対象ブランチの事前計画
  2. 02マージ済み・未完了PRの確認
  3. 03デフォルトと staging の保護
  4. 04削除前の明確な承認
  5. 05未完了の関連イシューの確認

活用シーン

  1. 01整理対象のリモートブランチを確認
  2. 02計画を承認してブランチを削除
  3. 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() だけで行ってください。他の場所では行わないでください。

手順

  1. ドライラン。 bash scripts/plan.sh を実行します(origin 以外の場合はリモート名を $1 として渡します)。削除可能なブランチが <branch> #<pr> <title> の形式で表示されます。ここでは何も削除されません。一覧が表示されたら完了です。出力が空の場合は「クリーンアップ対象はありません」と報告して終了します。
  2. 提示して確認。 一覧全体をユーザーに提示し、明示的な許可を求めます。曖昧な返答では削除しないでください。明確な同意があった場合に限り削除します。この確認は毎回必須です。
  3. 削除。 確認済みの各ブランチに対して、git push origin --delete <branch> を実行します。プランの一覧にないものは削除しないでください。
  4. 報告。 削除したものを列挙し、push に失敗したものがあればその旨を記載します。

追加事項:古いオープン中の issue

Closes #N によって自動的にクローズされるのは、デフォルトブランチへのマージ時のみです。統合ブランチ(例:rebuild/v1)に PR がマージされても、#N はオープンのままになります。ここでクリーンアップするマージ済み PR ごとに、紐づく issue を確認してください。作業内容がデフォルトブランチに反映されているのに issue がまだオープンの場合は、手動でクローズします(gh issue close #N --reason completed --comment "merged via #<pr>")。同じ誤動作により、完了済みの issue がオープンとして残っていることもあります。ここで見つけてください。

コメント