ワンクリックで
merge
PRをMerge commit方式でマージし、リモート・ローカル両方のfeatureブランチを削除して司令塔ベースブランチを最新化する。マージのタイミングはユーザーが決める。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
PRをMerge commit方式でマージし、リモート・ローカル両方のfeatureブランチを削除して司令塔ベースブランチを最新化する。マージのタイミングはユーザーが決める。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
@issue_note.txt の課題No、または Evernote 共有リンク(ノート下書き)をもとに、GitHub Issueを作成する。対応種別に応じてfeature/bugfixテンプレートを使い分ける。
Issue起点の実装計画を作成する。Issueの内容とプロジェクトの設計ドキュメントを照合し、影響範囲・実装方針・テスト方針を含む計画を出力する。
Playwright MCPを使って、既に起動済みのlocalhost環境に対してE2E観点の動作確認を行うための運用ルール。
PRのコードレビューを実施し、レビュー結果をPRコメントとして投稿する。アーキテクチャ観点でのコードレビュー。
ブランチ・Git運用ルール。feature ブランチ作成、コミット、プッシュ、PR作成の手順。品質チェック後のGit操作フロー。
ready ラベル付き Issue を古い順に1件ずつ直列で消化する半自動ループ。各Issueを /impl の手順で実装し、品質ゲート(pr-review が Low 以下 + E2E green + CI green)を満たせば /merge 相当で自動マージする。条件を満たさないものは needs-merge / blocked で人に戻す。実装ロジック本体は /impl が持つ。
| name | merge |
| description | PRをMerge commit方式でマージし、リモート・ローカル両方のfeatureブランチを削除して司令塔ベースブランチを最新化する。マージのタイミングはユーザーが決める。 |
| when_to_use | PRをマージしたい時、「マージして」「merge」「このPRマージ」などの発言時、PR番号を指定してマージを依頼された時。上流の実装ワークフローで pr-review 完了後にマージを選んだ時もこれを実行する。 |
引数: $ARGUMENTS(PR番号。例: 123)
このスキルでは、PRのベースブランチを「ベースブランチ」と呼ぶ(統合ブランチにPRを積む運用ならその統合ブランチ、 単純運用ならデフォルトブランチ)。司令塔はこのベースブランチにいる前提。
git branch --show-current # 現在ブランチを確認
git status --porcelain # 作業ツリーが clean か確認
git status --porcelain が空)なら、自動でベースブランチへ git switch してから続行する。
(/merge は司令塔から打つ運用だが feature ブランチ上で叩かれることもある。clean なら切り替えは安全)gh pr view $ARGUMENTS --json number,title,headRefName,baseRefName,state,mergeable,mergeStateStatus
state が OPEN であること。MERGED / CLOSED なら、その旨を報告して停止(既にマージ済みなら 4 のローカル後片付けだけ実施するか確認する)。baseRefName が想定どおりのベースブランチであること。想定外のベースなら、勝手にマージせずユーザーに確認する。mergeable が MERGEABLE であること。CONFLICTING ならコンフリクト解消が必要な旨を報告して停止(このスキルではコンフリクトを解消しない)。headRefName(= マージ対象の feature/bugfix ブランチ名)を控えておく。4 のローカル削除で使う。CI の完了を --watch で見届ける。
gh pr checks $ARGUMENTS --watch --interval 30
--watch は全チェックが完了するまでブロックして待ち、完了したら結果を表示して終了する。
実行中(pending)のチェックがあっても、それが終わるまで待ってから合否を判定できる。
--interval 30 は30秒間隔でポーリング(CI が長い場合は適宜伸ばしてよい)。--watch か:
mergeable: MERGEABLE は「コンフリクトが無い」ことしか保証せず、CI の合否は別物。
コンフリクトが無くても CI が実行中・失敗中のままマージできてしまうため、ここで必ずガードする。/merge を叩き直す必要があり手間。--watch は
完了したら必ず抜けるので「待ち続けて止まれない」事故にはならず、見届けと安全停止を両立できる。--watch 完了後): gh pr checks は全チェック成功なら終了コード 0、1つでも失敗・キャンセルがあれば非0で返る。
--watch の打ち切り目安: CI が異常に長い・ハングしている場合は、無限に待たず適当な時点で打ち切り、
「CI が想定より長くかかっている」と状況を報告してユーザーの判断を仰ぐ。--watch は即座に返る)。gh pr merge $ARGUMENTS --merge --delete-branch
--merge(Merge commit)か: feature の個々のコミットをベースブランチの履歴の鎖に残し、
git checkout <コミットID> での断面復元や git bisect を可能にするため。Squash は中間コミットへの
到達性を構造的に捨てるため採用しない。--delete-branch でリモートの feature ブランチを削除する。--delete-branch がローカルブランチも削除しようとするが、
司令塔は別ブランチ(ベースブランチ)にいるため、ローカル feature ブランチが残ることがある。
そのため 4 で明示的にローカル削除を行う(gh 任せにしない)。なぜスキル側で明示的にクローズするか: PRのベースがデフォルトブランチでない場合、
GitHub の自動クローズキーワード(Closes #N 等)はデフォルトブランチをターゲットにしたPRでのみ機能するため、
ベースブランチへのマージでは Issue が自動クローズされず取りこぼす。マージの単一窓口である /merge で確実にクローズする。
PR本文と headRefName から Issue 番号を抽出する。
gh pr view $ARGUMENTS --json body,headRefName
body)から Closes #N / Fixes #N / Resolves #N
(大文字小文字問わず、closes: のようなコロンも許容)にマッチする #N をすべて抽出する。複数あれば全て対象。headRefName(例: feature/123-xxx /
bugfix/45-yyy)の先頭付近の数値を Issue 番号とみなす。feature/ bugfix/ 等のプレフィックス直後の数値を拾う。抽出した各 Issue について、open かどうかを確認してからクローズする。
gh issue view <N> --json number,state,title # state を確認
gh issue close <N> --comment "PR #$ARGUMENTS のマージに伴いクローズ"
CLOSED の Issue はスキップする(再クローズしない)。gh issue view が 404)場合は、勝手に他の番号を推測せず、その旨を報告する。Issue 番号が1件も抽出できなかった場合: 推測でクローズしてはならない。 「PR本文・ブランチ名から対応 Issue 番号を特定できませんでした。手動でクローズするか、Issue 番号を教えてください」と報告し、 マージ自体(2 まで)は成功している旨も併せて伝える。クローズ失敗で手順全体を止めない(3 以降は続行する)。
git pull --ff-only origin <ベースブランチ名>
--ff-only が失敗する場合は、勝手に rebase / merge せず状況をユーザーに報告して指示を仰ぐ。1 で控えた headRefName(マージ対象ブランチ名)をローカルから削除する。
git branch -d <headRefName>
-d(小文字)を使う: マージ済みでないと削除を拒否する安全側の動作。3 でベースブランチを最新化済みなので、
正常にマージされていれば -d で削除できる。-d が「not fully merged」で失敗した場合は、-D(強制削除)に勝手に切り替えない。
未マージのコミットが残っている可能性があるため、状況をユーザーに報告して判断を仰ぐ。git worktree remove してからブランチ削除する。git fetch --prune origin
origin/feature/...)をローカルから掃除する。以下を報告する:
state が OPEN でない、または mergeable が MERGEABLE でないPRを勝手にマージすること--watch で完了を見届け、全チェック成功を必須とする。1-1 参照)-d が失敗した際に -D へ勝手に切り替えることgh issue close すること(特定不能なら報告して手動対応に委ねる。2-1 参照)