git-merge-to-dev について
git-merge-to-devは、現在のブランチをローカルのdev、なければdevelopへマージするスキルです。計画の確認後に実行し、保護されていない元ブランチだけを安全に削除します。
主な機能
- 01devを優先し、なければdevelopを選択
- 02マージ計画の提示と確認
- 03マージコンフリクトを自動解決しない
- 04元ブランチを-dで安全に削除
- 05保護ブランチの削除を省略
活用シーン
- 01機能ブランチをdevへマージ
- 02ローカルにdevがない場合にdevelopを使用
- 03保護対象の元ブランチを残してマージ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ chann/ skills --skill git-merge-to-devインストール後、Claude Code で/git-merge-to-devを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlevals/evals.json
詳細
Git Merge to Dev
概要
git-merge-to-main の派生版で、マージ先は dev(優先)または develop(代替)です。現在のブランチを dev ブランチにマージし、保護対象のブランチでない限り、ソースブランチを安全に削除します。
開始時に伝えます:「git-merge-to-dev スキルを使って、<source-branch> を <target> にマージし、保護対象でなければ削除します。」
マージ先ブランチの解決
以下の順序でマージ先ブランチを解決します。
- ローカルに
devが存在する場合 → マージ先 =dev - それ以外で、ローカルに
developが存在する場合 → マージ先 =develop - どちらも存在しない場合 → 中止:「ローカルに
devブランチもdevelopブランチも見つかりません。作成するか、git-merge-to-mainを使用してください。」
if git rev-parse --verify dev >/dev/null 2>&1; then
target=dev
elif git rev-parse --verify develop >/dev/null 2>&1; then
target=develop
else
echo "No dev or develop branch found locally; aborting." >&2
exit 1
fi
続行する前に、解決したマージ先を声に出して伝え、ユーザーが訂正できるようにします。
ワークフロー
開始前に、メインの git-merge-to-main SKILL.md を読みます。 場所は <plugin-root>/skills/git-merge-to-main/SKILL.md です。このワークフローに厳密に従い、main と記載されている箇所はすべて、解決した $target に置き換えます。事前条件、計画の提示と確認の手順、保護対象のソースブランチの処理、競合の処理、安全な削除ルール(git branch -d を使用し、-D は使用しない)、マージ後の概要は、すべて同様に適用されます。
保護対象のソースブランチは、main、master、dev、develop、development、stg、stage、staging、root です。src が保護対象のソースブランチの場合、確認後にマージしますが、git branch -d "$src" は実行せず、ローカルブランチの削除を省略します。
置き換え箇所:
git-merge-to-main での記載 | このスキルでの記載 |
|---|---|
事前条件 3:現在のブランチ ≠ main | 現在のブランチ ≠ $target |
事前条件 5:ローカルに main が存在する | ローカルに $target(dev または develop)が存在する |
git checkout main | git checkout "$target" |
git merge "$src"(main へのマージ) | git merge "$src"($target へのマージ) |
git fetch origin main(分岐の確認) | git fetch origin "$target"(分岐の確認) |
マージ競合のルール、-d を使い -D を使わないルール、自動プッシュ禁止ルール、Red Flags の一覧はすべて同じです。
計画を提示する際は、保護対象でないソースブランチの場合に限り、削除の手順を含めます。保護対象のソースブランチの場合は、次のように表示します。
3. skip the local delete for protected source branch $src
実施例
User: dev에 머지해줘
Resolution: dev exists → target = dev
Source: feature/payments
Plan:
1. git checkout dev
2. git merge feature/payments
3. git branch -d feature/payments
User confirms.
→ checkout dev, merge succeeds (fast-forward), delete branch.
→ Remind user to push dev when ready.
保護対象のソースブランチの例:
User: staging을 dev에 머지해줘
Resolution: dev exists → target = dev
Source: staging (protected)
Plan:
1. git checkout dev
2. git merge staging
3. skip the local delete for protected source branch staging
User confirms.
→ checkout dev, merge succeeds, keep staging locally.
→ Remind user to push dev when ready.
Red Flags
git-merge-to-main と同じ Never/Always の一覧です。特に、次の点に注意してください。
- 絶対にしないこと:
-D(強制削除)を使うこと。-d(安全な削除)のみを使用します。 - 絶対にしないこと: 保護対象のソースブランチ(
main、master、dev、develop、development、stg、stage、staging、root)を削除すること。 - 絶対にしないこと: マージ競合を自動解決すること。
- 絶対にしないこと: マージ先ブランチを自動でプッシュまたはプルすること。
- 必ず行うこと: マージ前に、解決したマージ先が
devとdevelopのどちらかを伝えること。 - 必ず行うこと: 計画を提示し、確認を待つこと。
- 必ず行うこと: 保護対象のソースブランチを特定し、ローカルブランチの削除を省略すること。
統合
併用するもの:
git-commit/git-commit-push— 先に作業ツリーの変更をコミットします。git-merge-to-main— 同じパターンで、マージ先はmainです。git-branch-cleanup— dev ブランチにすでにマージされた他のブランチをまとめて削除します。
呼び出し元: ユーザーによる手動実行のみ。他のスキルのワークフロー中に自動実行してはいけません。