mcpField
C
create-pr

create-pr

github.com/tartinerlabs開発8402 回インストール今日更新
リポジトリ

create-pr について

現在のブランチをプッシュし、GitHub のプルリクエストまたは GitLab のマージリクエストを作成する開発スキルです。ブランチとマイグレーションの状態を確認し、最近のコミットを基にタイトルと説明を作成します。

主な機能

  1. 01ブランチと作業ツリーの状態確認
  2. 02マイグレーション差分の事前確認
  3. 03リモートへのブランチのプッシュ
  4. 04GitHub PR または GitLab MR の作成
  5. 05タイトルと説明のルール適用

活用シーン

  1. 01指定したベースブランチへの修正 PR
  2. 02コミット済み変更の提出
  3. 03ブランチスタックでの依存 PR 作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tartinerlabs/skills --skill create-pr

インストール後、Claude Code で/create-prを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
migration-drift.md
pr-description.md
pr-title.md

詳細

ブランチをプッシュし、プルリクエスト/マージリクエストを作成します。

ルールの概要

ルール影響度ファイル
PR タイトルHIGHrules/pr-title.md
マイグレーションのずれHIGHrules/migration-drift.md
PR の説明MEDIUMrules/pr-description.md

ワークフロー

  1. 現在の Git の状態とブランチを確認し、ベースを決定します。ユーザーが指定したブランチ(例:ホットフィックスの場合はリリースブランチ)があればそれを使用し、なければデフォルトブランチを使用します
    • ベースブランチ上にいる場合は、先に create-branch スキルを使ってブランチを作成します
    • 未コミットの変更がある場合は、commit スキルを使ってコミットします。この作業では、直接 git commit を実行しないでください。変更の一部がほかの変更と無関係に見える場合に限り、先に確認します
  2. rules/migration-drift.md に従って、マイグレーションのずれに関する事前確認を実施します。スキーマが変更されているのにマイグレーションがない場合は、プッシュを中止して確認します
  3. 現在のブランチをリモートにプッシュします(必要に応じて -u フラグを指定)
  4. 最近のコミットを分析し、PR のタイトルと説明を作成します
  5. 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 "..." で修正します。タイトルと説明はスタック全体ではなく、そのレイヤーのベースに対するコミットの差分に限定します。既存のレイヤーには手を加えないでください。送信時に既存レイヤーの内容は再生成されず、レビュー中に編集されている可能性があります。
    • GitLab:@me はリストのフィルターであり、MR の作成には使えません。まず glab api user --jq .username でユーザー名を解決し、ステップ 1 で決定したベースを指定して glab mr create --assignee <username> --target-branch <base> を実行します。

現在のユーザーを自動で割り当てます。割り当てに失敗した場合(ユーザーがコラボレーター/メンバーではない場合)でも、割り当てなしで PR/MR は作成されます。

コメント