con un clic
personal-merge-pr
ユーザーが PR のマージを求めたときや、エージェントが PR をマージするときに必ず使用してください。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
ユーザーが PR のマージを求めたときや、エージェントが PR をマージするときに必ず使用してください。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
既存の GitHub Issue を整理・再構成します。ユーザーが Issue を「整理して」「構造化して」「書き直して」「わかりやすくして」「clarify して」などと依頼したときに使用してください。
ユーザーの説明から新しい GitHub Issue を作成します。ユーザーが Issue を「作って」「起票して」「立てて」「登録して」などと依頼したときに使用してください。
Git リポジトリの慣習に則って新しいブランチや worktree を作成します。ユーザーがブランチや worktree の作成を求めたときや、エージェントが `git branch` や `git switch -c`、`git worktree add` などを用いて新しい作業を開始するときに必ず使用してください。
各リポジトリの既存の慣習からコミットメッセージ・PR タイトルの言語/スタイルを検出し、それに従うための手順をまとめたリファレンスです。ユーザーが Git の規約について尋ねたときや、他のスキルがコミット・PR 作成時に規約判定を必要とするときに使用してください。
プロジェクトに TypeScript 環境をセットアップします。typescript(ネイティブコンパイラ)のインストール、適切な @tsconfig/bases の選定と tsconfig.json への反映、package.json への typecheck スクリプト追加、CI への typecheck ジョブ追加を行います。TypeScript のセットアップを求められたときに使用してください。
Git リポジトリのスタイルに合わせてコミットを作成します。ユーザーがコミットを求めたときや、エージェントがコミットするときに必ず使用してください。
| name | personal-merge-pr |
| description | ユーザーが PR のマージを求めたときや、エージェントが PR をマージするときに必ず使用してください。 |
| allowed-tools | Bash(gh review-comment list *), Bash(gh pr checks), Bash(gh pr list *), Bash(gh pr edit *), Bash(gh repo view *), Bash(git fetch), Bash(git log *), Bash(git rev-parse *) |
以下のコマンドで、ローカルにあってリモートにないコミットを確認します。
git fetch
git log origin/$(git branch --show-current)..HEAD --oneline
未 push のコミットがある場合は、PR に反映されていない変更が存在する可能性があるため、ユーザーに確認します。
以下のコマンドで、未解決のレビューコメントがあるか確認します。
gh review-comment list --unresolved
未解決のレビューコメントがある場合は、ユーザーに対応の要否を確認します。
gh pr checks でチェックのステータスを確認し、以下のルールに従って行動します。
| ステータス | 行動 |
|---|---|
pass / skipping のみ | 次のステップへ進む |
pending が含まれる | gh pr checks --watch で完了まで待機し、結果に応じて再判定 |
fail / cancel が含まれる | 失敗しているチェックの URL を確認して原因を特定し、ユーザーに報告する |
以下を実行して許可されているマージ方法を取得します。
gh repo view --json mergeCommitAllowed,squashMergeAllowed,rebaseMergeAllowed
許可されているマージ方法が 1 つだけの場合、それを使用します。 許可されているマージ方法が複数の場合、ユーザーにどれを使うか質問します。
このステップは Squash Merge のときのみ実行します。
GitHub の Squash Merge は、ブランチのコミット数によってマージ後のコミットメッセージが変わります。
| ブランチのコミット数 | マージ後のコミットメッセージ |
|---|---|
| 1 件 | ブランチのコミットメッセージ |
| 複数件 | PR タイトル |
コミットが 1 件のとき、PR タイトルとコミットメッセージが異なっていると意図しないコミットメッセージでマージされる可能性があります。そのため、以下を確認して、必要に応じて修正します。
# コミット数
git log <base-branch>..HEAD --oneline | wc -l
# コミットメッセージ(1件目のタイトル)
git log <base-branch>..HEAD --format="%s" | head -1
# PR タイトル
gh pr view --json title -q .title
コミットが 1 件かつ PR タイトルとコミットメッセージが異なる場合は、どちらに合わせるかユーザーに確認します。
git commit --amend でコミットメッセージを修正してから force push しますgh pr edit --title で PR タイトルを修正しますマージ対象のブランチを base にしている、他のオープンな PR がないか確認します。
gh pr list --base "$(git branch --show-current)" --state open
[!WARNING] GitHub の Web UI でマージ・ブランチ削除を行った場合、依存する PR の base ブランチはマージ先へ自動的に付け替わります(Pull Request Retargeting)。しかし
gh pr merge --delete-branch(やgit push origin --deleteによるブランチ削除)はこの自動付け替えを発火させない既知の問題があり(cli/cli#1168)、依存する PR は base ブランチが失われて自動的にクローズされます。base が失われた PR は reopen も base の付け替えもできず、実質的に復旧できません。
依存する PR が見つかった場合、ブランチを削除する前に、それぞれの base をマージ先ブランチへ付け替えます。
gh pr edit <PR番号> --base <マージ先ブランチ名>
付け替えが完了してから、後続のマージ・削除の手順に進みます。 依存する PR がない場合は、そのまま次に進んで構いません。
gh pr merge でマージします。
先程取得したマージ方法に応じてオプションを付けます。
--merge オプション--rebase オプション--squash オプションマージ時・マージ後の後片付けは、現在のディレクトリが linked worktree かどうかで手順が変わります。以下のコマンドで判定します。
test "$(git rev-parse --git-dir)" != "$(git rev-parse --git-common-dir)" && echo "linked worktree" || echo "main working tree"
--delete-branch オプションを付けてマージと同時にブランチを削除します(このオプションを使うと、自動でベースブランチに切り替わります)。
[!WARNING]
--repoオプションは--delete-branchオプションを無効化するため、他リポジトリの PR をマージするときに限り、使用します。
--delete-branch オプションは付けません。ベースブランチが別の worktree でチェックアウトされているため、マージ後のブランチ切り替えに失敗します。
マージ後、マージしたブランチ名(git branch --show-current)を控えたうえで、以下の手順で worktree とローカルブランチを削除します。
# main working tree に移動する
cd "$(dirname "$(git rev-parse --path-format=absolute --git-common-dir)")"
# worktree とローカルブランチを削除する
git wt -d <branch-name>
リモートブランチは、リポジトリの Automatically delete head branches 設定が有効なら自動で削除されます。以下のコマンドで確認し、false の場合のみ手動で削除します。
gh repo view --json deleteBranchOnMerge -q .deleteBranchOnMerge
git push origin --delete <branch-name>