create-pr について
ブランチの実際の変更内容に基づいて Pull Request を作成する、ユーザー起動型スキルです。ブランチ状態と差分を確認し、関連する品質チェックを行い、作成後に PR の情報を検証します。
主な機能
- 01明示的な PR 作成依頼が必要
- 02全差分とベースブランチの確認
- 03安全でないブランチ状態で停止
- 04関連する品質チェックの実行
- 05ブランチを push して gh で PR 作成
- 06PR の詳細と状態の検証
活用シーン
- 01ブランチ作業完了後の PR 作成
- 02指定オプションによるドラフト PR の準備
- 03変更公開前のブランチ準備状況の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ulpi-io/ skills --skill create-prインストール後、Claude Code で/create-prを入力して読み込まれたか確認します。
同梱ファイルreferences/pr-body-examples.mdreferences/pr-conventions.md
詳細
譲れないルール:
- PR の下書きを作成する前に、実際のベースブランチとの差分全体を読みます。
- 保護されたブランチの使用、ブランチが空であること、または競合マーカーがあることが判明した場合は、作業を中止します。
- 未コミットの変更がある場合は、誤解を招く PR を作成するのではなく、まず
commitを実行します。 - PR を作成する前に、ブランチをプッシュします。
- PR の作成はユーザー主導で行います。タイトル、範囲、ベースブランチ、またはレビュアーの意図が曖昧な場合は、先に質問します。
PR を作成する
入力
$request:ドラフト作成の意図、レビュアーの希望、ベースブランチ、ラベル、タイトルの方向性など、任意の PR に関する指示
目標
実際のブランチの変更内容に合った PR を作成し、次の状態を実現します。
- 正しいベースブランチ
- 正確なタイトル
- 有用な本文
- プッシュ済みのブランチ
- 検証済みの PR URL と状態
ステップ 0:PR 作成の明示的な依頼か確認する
このスキルはユーザー専用です。
ユーザーが PR の作成またはオープンを明示的に依頼した場合にのみ使用します。
依頼の内容が実際には次のいずれかである場合:
- コードレビューのみ:レビュー用スキルに振り分けます
- コミットの作成のみ:
commitに振り分けます - 計画のみ:プランナーに振り分けます
レビュアーの割り当て、ラベル、マイルストーン、またはベースブランチが曖昧で、依頼に影響する場合は、AskUserQuestion を使用します。
成功基準:PR の作成が明示的に依頼されており、意図する PR の内容が十分明確で、作業を進められること。
ステップ 1:実際のブランチの状況を把握する
下書きを作成する前に、現在のブランチを確認します。
- 現在のブランチ名
- ブランチの追跡状態
- 未コミットの変更
- ベースブランチの候補
- ベースブランチより先にあるコミット
- ベースブランチとの差分全体
ルール:
- コミットメッセージだけでなく、実際の差分を読みます
- PR を分類する前に、実際のベースブランチを特定します
- 差分の概要だけでは変更内容を十分に理解できない場合は、変更されたファイルに対して
Readを使用します
必要に応じて references/pr-conventions.md を読み込み、ベースブランチの選択と PR 分類のヒューリスティクスを確認します。
成功基準:ブランチ、ベースブランチ、差分の概要を把握し、そのブランチが実際に PR を作成できる状態かどうかを確認できていること。
ステップ 2:ブランチの準備状態を検証する
作業を止める条件:
main、master、またはdevelopにいる- ベースブランチに対するコミットがない
- 変更されたファイルに競合マーカーがある
未コミットの変更がある場合:
commitスキルを実行します- その後、作業を続ける前にブランチの状況を再確認します
警告:
- 型チェックまたは lint の失敗は、ユーザーが先に停止して修正することを希望しない限り、警告として扱います
- 破壊的変更は作業を止める条件ではありませんが、必ず記載します
成功基準:正確な情報に基づいて PR を作成できる状態にブランチがあること。
ステップ 3:実際の差分に基づいて PR を分類する
次の項目を判断します。
- 種類
- 範囲
- 規模
- リスク
- 破壊的変更の有無
次の情報を使用します。
- ブランチ名は参考情報として扱い、確定情報とはみなしません
- 変更されたパスとモジュール
- 補足情報としてのみコミットメッセージ
- 真実を判断するための情報源として差分全体
次のいずれかに該当する場合は、破壊的変更を記載します。
- 公開エクスポートの削除または名前変更
- ルートまたは API コントラクトの変更
- スキーマまたはマイグレーションの変更
- 環境変数の変更
- 主要な依存関係の変更
次の内容については、references/pr-conventions.md を読み込みます。
- 分類のヒューリスティクス
- タイトルのルール
- オプションフラグのマッピング
- 作業を止める条件と警告の扱い
成功基準:PR がブランチ名だけでなく、実際のコード変更に基づいて分類されていること。
ステップ 4:対象に関連する最小限の品質チェックを実行する
変更箇所とプロジェクトのツールに適したチェックを実行します。
一般的なチェック:
- 型チェック
- lint
- 競合マーカーのスキャン
ルール:
- 競合マーカーがあれば、必ず作業を止めます
- その他の失敗は、ユーザーに正確に伝えます
- PR の本文でチェックに合格したと偽って記載してはいけません
- ユーザーが既知の、作業を止めるほどではない問題がある状態での続行を求めた場合は、最終報告でその旨を明示します
成功基準:PR にブランチの実際の準備状態が反映されていること。
ステップ 5:PR のタイトルと本文を作成する
次を作成します。
- Conventional Commit 形式の PR タイトル
- 変更内容とレビュー方法を説明する本文
本文には次の内容を含めます。
- 概要
- 変更領域ごとの分類
- 該当する場合は破壊的変更
- 具体的なテスト計画
- デプロイ、設定、依存関係の変更に関する補足(任意)
次を使用します。
- タイトルと準備完了のルールには
references/pr-conventions.md - 本文の形式例が必要な場合に限り、
references/pr-body-examples.md
ユーザーがタイトルに関する指針を明示している場合は、実際の差分に合致する限り、その指針を使用します。
成功基準:タイトルと本文がブランチ全体を正確に説明し、レビュー可能な内容になっていること。
ステップ 6:ブランチをプッシュして PR を作成する
PR を作成する前に、次を確認します。
- ブランチがプッシュ済みであること
- 必要に応じて上流ブランチが設定されていること
その後、gh pr create で PR を作成します。
次のようなリクエストに応じたオプションをサポートします。
- ドラフト
- レビュアー
- 担当者
- ラベル
- マイルストーン
ルール:
- ブランチがリモートに存在する前に PR を作成しないでください。
- 手動での API 呼び出しより
ghを優先してください。 ghを使用できない場合は処理を中止し、準備したタイトル、本文、比較 URL をユーザーに提示してください。
成功基準:PR がリモートに作成されているか、手動で作成するために必要な正確な代替情報がユーザーに提供されていること。
ステップ 7:確認して報告する
作成後、次を確認します。
- PR 番号
- URL
- タイトル
- 状態
- ドラフトかどうか
- ベースブランチ
また、次の点も報告します。
- 未コミットの変更が残っているか
- ブランチがリモートより先行しているか
- PR 作成時に引き継がれた警告があるか
成功基準:作成された PR の内容と、ブランチに残っている注意事項をユーザーが正確に把握できること。
ガードレール
- PR を先回りして作成しないでください。
- SkillTool 経由でモデルにこのスキルを呼び出させないでください。このワークフローは意図的にユーザー専用です。
paths:を追加しないでください。これは汎用的なワークフロースキルです。context: forkを追加しないでください。PR の状態はアクティブなワークスペースに保持する必要があります。- 巨大な準備状況チェックリスト、スコアカード、失敗事例一覧を
SKILL.md内に残さないでください。 - テスト状況、ブランチの状態、破壊的変更がないことを捏造しないでください。
参照資料を読み込むタイミング
references/pr-conventions.mdベースブランチの選択、分類のヒューリスティック、オプションの解析、ブロック条件に使用します。references/pr-body-examples.md類似するリクエスト向けの PR 本文の形式例が必要な場合に限り使用します。
出力仕様
次を報告します。
- PR 番号、URL、タイトル、ベース、状態
- 先に
commitを実行する必要があったか - 実行したチェックと残っている警告
- 記載した破壊的変更
- 残っている作業ツリーまたはブランチの状態