create-pr について
現在のブランチをプッシュし、GitHub のプルリクエストまたは GitLab のマージリクエストを作成する開発スキルです。ブランチとマイグレーションの状態を確認し、最近のコミットを基にタイトルと説明を作成します。
主な機能
- 01ブランチと作業ツリーの状態確認
- 02マイグレーション差分の事前確認
- 03リモートへのブランチのプッシュ
- 04GitHub PR または GitLab MR の作成
- 05タイトルと説明のルール適用
活用シーン
- 01指定したベースブランチへの修正 PR
- 02コミット済み変更の提出
- 03ブランチスタックでの依存 PR 作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tartinerlabs/ skills --skill create-prインストール後、Claude Code で/create-prを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/migration-drift.mdpr-description.mdpr-title.md詳細
ブランチをプッシュし、プルリクエスト/マージリクエストを作成します。
ルールの概要
| ルール | 影響度 | ファイル |
|---|---|---|
| PR タイトル | HIGH | rules/pr-title.md |
| マイグレーションのずれ | HIGH | rules/migration-drift.md |
| PR の説明 | MEDIUM | rules/pr-description.md |
ワークフロー
- 現在の Git の状態とブランチを確認し、ベースを決定します。ユーザーが指定したブランチ(例:ホットフィックスの場合はリリースブランチ)があればそれを使用し、なければデフォルトブランチを使用します
- ベースブランチ上にいる場合は、先に
create-branchスキルを使ってブランチを作成します - 未コミットの変更がある場合は、
commitスキルを使ってコミットします。この作業では、直接git commitを実行しないでください。変更の一部がほかの変更と無関係に見える場合に限り、先に確認します
- ベースブランチ上にいる場合は、先に
rules/migration-drift.mdに従って、マイグレーションのずれに関する事前確認を実施します。スキーマが変更されているのにマイグレーションがない場合は、プッシュを中止して確認します- 現在のブランチをリモートにプッシュします(必要に応じて
-uフラグを指定) - 最近のコミットを分析し、PR のタイトルと説明を作成します
git remote get-url originでリモートホストを判別し(github.com → gh、gitlab.com → glab、それ以外は GitHub がデフォルト)、対応する CLI で PR/MR を作成します。本文は簡潔な箇条書きのみとし(## Summary、## Test Plan、チェックリストなどの見出しセクションは使用しません):- GitHub:
gh pr create --assignee @meを使用します(@meは認証済みユーザーに解決されます)。- ベースの選択:ステップ 1 で決定したベースを使用します。デフォルト以外のブランチから分岐したブランチに、そのブランチを対象とするオープン中の PR がある場合(マージベースを確認し、次に
gh pr list --head <parent>を実行して確認)、--base <parent-branch>を指定して作成します。これにより差分はこのレイヤーに限定され、GitHub が PR をスタックとして自動的にリンクします(パブリックプレビュー)。スタックは同一リポジトリ内でのみ利用できます。プレビューがまだ公開されていないリポジトリでは、通常の依存関係のある PR として機能しますが、その場合もこのベースが適切です。 gh stack拡張機能がインストールされている場合(gh extension list)、スタックのナビゲーションやローカルでの連鎖的なリベースに使用できます。インストールはしないでください。また、下位レイヤーがマージされたときに GitHub が上位レイヤーを自動的にリベースして対象ブランチを変更するため、スタックの管理(リベース順序やレイヤーのマージ)はこの拡張機能に任せ、ブランチの対象を手動で変更しないでください。gh stack submitで作成した PR には自動生成されたタイトルと本文が設定されており、ルールに準拠しません。送信後、今回の送信で作成された PR のみを対象に、rules/pr-title.mdとrules/pr-description.mdに従ってgh pr edit <number> --title "..." --body "..."で修正します。タイトルと説明はスタック全体ではなく、そのレイヤーのベースに対するコミットの差分に限定します。既存のレイヤーには手を加えないでください。送信時に既存レイヤーの内容は再生成されず、レビュー中に編集されている可能性があります。
- ベースの選択:ステップ 1 で決定したベースを使用します。デフォルト以外のブランチから分岐したブランチに、そのブランチを対象とするオープン中の PR がある場合(マージベースを確認し、次に
- GitLab:
@meはリストのフィルターであり、MR の作成には使えません。まずglab api user --jq .usernameでユーザー名を解決し、ステップ 1 で決定したベースを指定してglab mr create --assignee <username> --target-branch <base>を実行します。
- GitHub:
現在のユーザーを自動で割り当てます。割り当てに失敗した場合(ユーザーがコラボレーター/メンバーではない場合)でも、割り当てなしで PR/MR は作成されます。
コメント
Markdown 対応