mcpField
F
finishing-a-development-branch

finishing-a-development-branch

github.com/pixel-process-ug開発380 回インストール33 週間前に更新
リポジトリ

finishing-a-development-branch について

テスト確認からベースブランチの確定、PR またはマージ方法の選択、後片付けまでを段階的に進めるスキルです。履歴変更や破壊的な操作には、ユーザーの明示的な承認を求めます。

主な機能

  1. 01マージや PR の前に検証
  2. 02ベースブランチの特定と確認
  3. 03ブランチ終了方法を4つ提示
  4. 04破壊的な操作には承認を要求
  5. 05ブランチと worktree の整理

活用シーン

  1. 01完了した機能ブランチのレビュー準備
  2. 02開発後のマージ方法の選択
  3. 03ブランチのマージ後の後片付け

インストール

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

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill finishing-a-development-branch

インストール後、Claude Code で/finishing-a-development-branchを入力して読み込まれたか確認します。

詳細

開発ブランチの作業を完了する

概要

開発ブランチでの作業を完了するための、検証、マージ戦略の選択、クリーンアップを含む、体系的で安全なプロセスを提供します。このスキルにより、テストに合格していないブランチがマージされることを防ぎ、破壊的な操作にはすべて、ユーザーによる明示的な確認が必要になります。

使用するタイミング

  • フィーチャーブランチで予定していた作業がすべて完了したとき
  • ブランチのコードレビューまたはマージの準備ができたとき
  • 開発作業の完了後にクリーンアップするとき
  • チームレビュー用のプルリクエストを準備するとき

フェーズ 1:すべてのテストに合格していることを確認する

[HARD-GATE] 検証に合格するまで、マージや PR 関連の作業に進んではいけません。

マージや PR 関連の作業を行う前に、verification-before-completion を呼び出して、以下を確認します。

  • すべてのテストに合格していること(該当する場合、ユニット、統合、E2E)
  • lint エラーや警告がないこと
  • ビルドが成功すること
  • コミットすべき未追跡ファイルがないこと
# Run the project's full verification suite
# Do NOT skip this step even if "tests were passing earlier"

検証に失敗した場合は、そこで停止します。先に失敗を修正してください。テストに失敗している状態で、PR を作成したりブランチをマージしたりしてはいけません。

停止 — フェーズ 2 に進む前に、検証に合格する必要があります。

フェーズ 2:ベースブランチを決定する

以下の検出ロジックを使用して、マージ先のブランチを特定します。

自動検出
# Check for common base branch names
git branch -a | grep -E 'remotes/origin/(main|master|develop)$'

# Check what branch was the fork point
git log --oneline --decorate --graph HEAD...main --first-parent 2>/dev/null
git log --oneline --decorate --graph HEAD...master --first-parent 2>/dev/null
ベースブランチ選択の判断表
条件ベースブランチ確度
main が存在するmain高
master のみ存在するmaster高
develop が存在し、プロジェクトが GitFlow を採用しているdevelop中
複数の候補が見つかったユーザーに確認する必須
上記のいずれにも該当しないユーザーに確認する必須
ベースブランチが最新であることを確認する
git fetch origin
git log HEAD..<base-branch> --oneline

フィーチャーブランチの作成後にベースブランチが進んでいる場合は、ユーザーに知らせます。先にベースブランチをフィーチャーブランチにリベースまたはマージすることを検討してもらいます。

ベースブランチとの分岐に関する判断表
分岐対応
ベースブランチに新しいコミットが 0 件通常どおり進める
ベースブランチに新しいコミットが 1~5 件ユーザーに知らせ、リベースを提案する
ベースブランチに新しいコミットが 6 件以上ユーザーに警告し、続行前にマージまたはリベースすることを推奨する
マージコンフリクトが検出された停止 — 先にコンフリクトを解決する

停止 — 続行する前に、ベースブランチをユーザーに確認してください。

フェーズ 3:マージの選択肢を提示する

以下の 4 つの選択肢を、そのままユーザーに提示します。選択肢を追加または削除してはいけません。

How would you like to finish this branch?

  A) Create PR    -- push and open a pull request for review
  B) Merge        -- merge into <base> with a merge commit
  C) Squash merge -- squash into one commit, merge into <base>
  D) Leave as-is  -- keep the branch, decide later
選択肢選定の判断表
状況推奨する選択肢理由
コードレビューを行うチームプロジェクトA) PR を作成レビューワークフローを利用できる
履歴が整理された個人プロジェクトB) マージブランチの全履歴を保持できる
WIP コミットが多く、履歴が整理されていないC) スカッシュマージベースブランチにクリーンな単一コミットを作成できる
作業が未完了、または状況が不確かD) そのままにするリスクがなく、後で判断できる

停止 — ユーザーが選択するまで待ちます。既定の選択肢を決めつけてはいけません。

フェーズ 4:選択したオプションを実行する

オプション A:プルリクエストを作成する
# Push the branch
git push -u origin <branch-name>

# Generate PR title from branch name or recent commits
# Generate PR body from commit messages and diff summary
gh pr create --title "<title>" --body "<body>"

PR タイトルの作成:

  • ブランチ名から作成します。例:feature/add-auth は Add authentication になります
  • 70 文字以内にします
  • 命令形を使用します

PR 本文の作成:

  • 変更内容とその理由を要約します
  • 主な変更点を列挙します
  • 互換性を損なう変更があれば記載します
  • テスト計画を含めます
オプション B:ローカルでマージする
# Switch to base branch
git checkout <base-branch>

# Merge feature branch
git merge <feature-branch>

# Delete the feature branch
git branch -d <feature-branch>

マージを実行する前に、確認が必要です。

オプション C:スカッシュマージする
# Switch to base branch
git checkout <base-branch>

# Squash merge
git merge --squash <feature-branch>

# Commit with a comprehensive message
git commit -m "<squash commit message>"

# Delete the feature branch
git branch -d <feature-branch>

スカッシュコミットのメッセージには、最後のコミットだけでなく、ブランチ内のすべての変更を要約します。

スカッシュマージを実行する前に、確認が必要です。

オプション D:ブランチをそのままにする

対応は不要です。ユーザーに次のように伝えます。

Branch <branch-name> left as-is.
You can return to it later with: git checkout <branch-name>

フェーズ 5:クリーンアップ

オプション A、B、C を実行した後に、クリーンアップを行います。

ワークツリーを削除する(該当する場合)

ブランチの開発に Git ワークツリーを使用した場合:

# Navigate out of the worktree first
git worktree remove <worktree-path>
git worktree prune
リモート追跡のクリーンアップ(オプション B と C のみ)

ブランチを以前にプッシュしていた場合:

# Delete remote branch after local merge
git push origin --delete <branch-name>

リモートブランチを削除する前に、確認が必要です。

最終状態を確認する
git status
git log --oneline -5

ベースブランチが想定どおりの状態であることを確認します。

確認が必要な操作

[HARD-GATE] 次の操作を実行するには、事前にユーザーの明示的な確認が必要です。確認なしに進めてはいけません。必ず確認してください。

操作確認が必要な理由
ベースブランチへのマージベースブランチの履歴が変更されます
スカッシュマージ個々のコミット履歴が失われます
ローカルブランチの削除プッシュしていない場合、元に戻せません
リモートブランチの削除ほかの共同作業者に影響します
ワークツリーの強制削除未コミットの変更が失われる可能性があります
更新されたベースへのリベースコミット履歴が書き換えられます

アンチパターン/よくある間違い

アンチパターン問題点代わりに行うこと
テストを実行せずにマージする壊れたコードがベースブランチに入ります必ず最初に検証をすべて実行してください
ベースブランチの最新状態を確認しないマージの競合が後から見つかりますgit fetch を実行し、分岐状況を確認してください
マージ戦略を自動で選択するユーザーが別の方法を希望する場合があります必ず4つの選択肢をすべて提示してください
確認せずにブランチを削除するデータ損失のリスクがあります削除のたびに確認してください
CI が失敗したまま PR を作成するレビュー担当者の時間を無駄にしますPR を作成する前に CI の問題を修正してください
最後のコミットだけをもとにスカッシュメッセージを作成するブランチで行った作業全体の背景が失われますすべての変更をまとめてスカッシュメッセージに記載してください
古いリモートブランチを残すリポジトリが煩雑になりますマージ後にリモートのブランチを整理してください
PR 作成後に強制プッシュするレビューコメントが失われますPR のブランチへの強制プッシュは避けてください

エラー処理

エラー対応
マージの競合競合を報告し、ユーザーに解決を依頼してください。自動で解決してはいけません
プッシュが拒否されたフェッチして、リベースまたはマージが必要か確認してください
PR の作成に失敗したgh auth status を確認し、エラーの詳細を報告してください
ブランチがすでに削除されている削除をスキップし、残りのクリーンアップを続けてください
テストが失敗した直ちに停止し、マージも PR の作成も行ってはいけません
ベースブランチがリモートに存在しない正しいベースブランチをユーザーに確認してください

統合ポイント

スキル統合
verification-before-completionマージ作業の前にフェーズ1で必ず呼び出してください
using-git-worktrees該当する場合、クリーンアップにはワークツリーの削除も含まれます
git-commit-helperスカッシュコミットメッセージは、Conventional Commits 形式に従います
code-reviewPR の作成(オプション A)はコードレビューのワークフローにつながります
planningブランチの完了は、計画の実行における最後のステップです
deploymentmain/release へのマージによって、デプロイパイプラインが起動する場合があります

スキルの種類

RIGID — この手順に厳密に従ってください。すべてのフェーズを順番に完了する必要があります。検証を省略してはいけません。ユーザーの確認なしにマージしてはいけません。マージ戦略を勝手に決めてはいけません。確認せずにブランチを削除してはいけません。

コメント