mcpField
C
ce-clean-gone-branches

ce-clean-gone-branches

github.com/everyinc開発25.8k1.7k 回インストール今日更新
リポジトリ

ce-clean-gone-branches について

ce-clean-gone-branches は、リモート追跡ブランチが削除されたローカル Git ブランチと関連する worktree を整理するエージェントスキルです。対象を提示し、削除前に確認を求めます。

主な機能

  1. 01リモート状態の取得と整理
  2. 02gone 状態のブランチ検出
  3. 03一括削除前の確認
  4. 04関連 worktree の削除

活用シーン

  1. 01リモートで削除済みのブランチ整理
  2. 02不要なローカル worktree の削除
  3. 03整理対象ブランチの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/everyinc/compound-engineering-plugin --skill ce-clean-gone-branches

インストール後、Claude Code で/ce-clean-gone-branchesを入力して読み込まれたか確認します。

同梱ファイルscripts/clean-gone

詳細

不要になったブランチのクリーンアップ

リモート追跡ブランチが削除されたローカルブランチを、関連するワークツリーも含めて削除します。

ワークフロー

ステップ 1:不要なブランチを検出する

検出スクリプトを実行して、リモートの最新状態を取得し、不要なブランチを特定します。

bash scripts/clean-gone

scripts/clean-gone

スクリプトは最初に git fetch --prune を実行し、その後 git branch -vv を解析して : gone] と表示されたブランチを特定します。

スクリプトの出力が __NONE__ の場合、不要なブランチは見つからなかったことを報告して終了します。

ステップ 2:ブランチを提示して確認を求める

削除するブランチの一覧をユーザーに提示します。シンプルなリスト形式にします。

These local branches have been deleted from the remote:

  - feature/old-thing
  - bugfix/resolved-issue
  - experiment/abandoned

Delete all of them? (y/n)

プラットフォームのブロッキング質問ツールを使用してユーザーの回答を待ちます。Claude Code では AskUserQuestion(スキーマが読み込まれていない場合は、最初に select:AskUserQuestion を指定して ToolSearch を呼び出します)、Codex では request_user_input、Gemini では ask_user、Pi では ask_user(pi-ask-user 拡張機能が必要)を使用します。ハーネスにブロッキングツールがない場合、または呼び出しがエラーになった場合(例:Codex の編集モード)に限り、チャットで一覧を提示します。スキーマの読み込みが必要であることを理由に、フォールバックしてはいけません。質問を黙って省略してはいけません。

これは一覧全体についての「はい」か「いいえ」の判断です。複数選択やブランチごとの選択肢を提示してはいけません。

ステップ 3:確認済みのブランチを削除する

ユーザーが確認した場合、各ブランチを削除します。ブランチごとに、次の手順を実行します。

  1. 関連するワークツリーがあるか確認します(git worktree list | grep "\\[$branch\\]")
  2. ワークツリーが存在し、それがメインリポジトリのルートでない場合は、最初に削除します:git worktree remove --force "$worktree_path"
  3. ブランチを削除します:git branch -D "$branch"

作業の進行に合わせて結果を報告します。

Removed worktree: .worktrees/feature/old-thing
Deleted branch: feature/old-thing
Deleted branch: bugfix/resolved-issue
Deleted branch: experiment/abandoned

Cleaned up 3 branches.

ユーザーが拒否した場合は、その旨を伝えて、何も削除せずに終了します。

コメント