create-pull-request について
`gh` CLIでプルリクエストを作成するワークフロースキルです。リポジトリの状態、ブランチとタイトルの規約、本文の準備を案内し、作成コマンドの実行前に確認を求めます。
主な機能
- 01作成前のリポジトリ確認
- 02差分とブランチ状態の確認
- 03ブランチ名とタイトルの規約
- 04リポジトリのPRテンプレート適用
- 05作成前のコマンド確認
活用シーン
- 01機能ブランチからのPR作成
- 02提出前の変更確認
- 03Conventional Commits形式のタイトル作成
- 04PRテンプレートの記入
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hrdtbs/ agent-skills --skill create-pull-requestインストール後、Claude Code で/create-pull-requestを入力して読み込まれたか確認します。
詳細
プルリクエストの作成
このスキルでは、ブランチ名、コミット形式、PR テンプレートに従って、gh CLI を使用し、プルリクエストを正しく作成できるようにします。
PR を作成する前に(事前チェックリスト)
gh pr create を実行する前に、リポジトリの状態を確認してください。クリーンな Git 履歴を保ち、レビューを円滑に進めるうえで、これらのチェックが重要な理由をユーザーに説明してください。
- 未コミットの変更を確認する: 未コミットの変更はありますか?(
git statusを実行します。)ある場合は、コミットするか、スタッシュするかをユーザーに確認してください。 - 自分の差分を確認する: 変更内容は PR の意図に沿っていますか?(
git diff main...HEADなどを実行します。)誤って含まれたシークレットやデバッグ用の記述などを見つけられるよう、差分を確認せずに PR を作成することは避けてください。 - ブランチを確認する: 正しいブランチにいますか?未完成の作業を誤ってマージしないよう、
mainやmasterから直接ではなく、フィーチャーブランチから PR を作成するようにしてください。 - ブランチをプッシュする: PR を作成する前に、ブランチがリモートにプッシュされていることを確認してください(
git push -u origin <branch-name>)。プッシュされていない場合、ghCLI は失敗します。
期待される出力
ユーザーから PR の作成を依頼されたら、リポジトリとブランチの状態を確認するために行う手順を明確に伝えてください。チェックが完了したら、実行する正確な gh pr create コマンドを提示し、ユーザーの確認を待ってから先に進んでください。
ブランチとタイトルの規則
- ブランチ名:
type/issue-number-slugまたはtype/slugを使用します。- 有効なタイプ:
feat、fix、docs、refactor、chore。 - 例:
feat/123-add-login、fix/memory-leak。
- 有効なタイプ:
- PR タイトル: 変更履歴を正確に記録できるよう、Conventional Commits の形式に従ってください。
- 形式:
<type>[optional scope][optional !]: <description> - 例 1:
feat(auth): add OAuth2 login - 例 2:
fix(api): resolve race condition in user fetch
- 形式:
PR の本文とテンプレート
重要: リポジトリに .github/pull_request_template.md が存在する場合は、その PR テンプレートを読み、適用してください。テンプレートに沿って PR の本文を構成すると、レビュー担当者が変更内容を理解しやすくなります。
テンプレートがない場合は、次の内容を簡潔かつ明確にまとめてください。
- PR の内容。
- 変更の理由(解決する問題)。
- テスト手順やレビュー担当者への補足事項。
よくある落とし穴
- 曖昧な PR タイトルは避けてください(例:「ファイルを更新」「バグを修正」)。レビュー担当者や変更履歴の自動生成ツールには、タイトルからすぐに内容が伝わることが重要です。意図がひと目でわかるよう、Conventional Commits(例:
fix(auth): resolve token expiration issue)に従ってください。これにより、メンテナーが変更の範囲をすばやく理解できます。 - PR テンプレートを省略したり削除したりしないでください。
.github/pull_request_template.mdにあるテンプレートは、必須のコンプライアンス項目、テストカバレッジ、レビュー用チェックリストなどを記録するためのものです。メンテナーの認知負荷を減らし、レビューを迅速化できるよう、テンプレートのすべての項目に記入してください。 - 差分を先に確認せず PR を作成しないでください(例:
git diff main...HEADを実行します)。デバッグ用の記述(console.log、print)、シークレット(.envファイル)、無関係なファイルが誤って含まれていないか、差分を必ず再確認してください。これにより、コードのクリーンさと安全性を確保できます。 - 確認せずに、ターゲットブランチが
mainまたはmasterだと思い込まないでください。 PR を作成する前に、ベースブランチを確認してください。誤ったブランチ(例:統合ブランチではなくリリースブランチ)を対象に PR を作成すると、マージコンフリクトが複雑になったり、意図しないデプロイが発生したりする可能性があります。正しいブランチが対象になっていることを確認してください。
例
例 1:フィーチャーのプルリクエストを作成する 入力:ログインページを追加するブランチ「feat/login」の PR を作成したいです。 出力:まず、未コミットの変更があるか確認し、必要であればブランチをプッシュします。次に、以下を実行します。
gh pr create --title "feat(auth): add login page" --body "## What the PR does\nAdds a new login page component to handle user authentication.\n\n## Why\nResolves issue #123 where users couldn't log in."
例 2:テンプレートを使わずにバグ修正の PR を作成する 入力:メモリーリークの修正について PR を作成してください。 出力:
gh pr create --title "fix(core): resolve memory leak in event listener" --body "Fixes a memory leak caused by not removing event listeners in the core module. Ensure to test by monitoring memory usage while spamming events."
コマンドリファレンス
gh CLI を使用して PR を作成します:
gh pr create --title "feat(scope): your descriptive title" --body "Your descriptive body following the template"