mcpField
W
woocommerce-git-draft-pr

woocommerce-git-draft-pr

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

woocommerce-git-draft-pr について

WooCommerce リポジトリ向けに、現在のブランチからレビューしやすいドラフトプルリクエストを準備するスキルです。ブランチ状態と変更内容を確認し、リポジトリの規約に沿って GitHub CLI で作成します。

主な機能

  1. 01ブランチと作業ツリーの事前確認
  2. 02変更内容と issue 参照の分析
  3. 03タイトルとテンプレートに沿った本文の生成
  4. 04変更履歴とマイルストーンの要否判断
  5. 05GitHub CLI によるドラフト PR 作成

活用シーン

  1. 01完成した機能ブランチからドラフト PR を準備
  2. 02変更履歴の追加要否を判断
  3. 03WooCommerce リポジトリの規約に沿った PR 作成

インストール

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

$npx skills add https://github.com/woocommerce/woocommerce --skill woocommerce-git-draft-pr

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

詳細

ドラフト PR を作成

現在のブランチから、簡潔でレビューしやすいドラフト PR を作成します。

動的コンテキスト

  • 現在のブランチ:!git branch --show-current
  • コミット:!git log trunk..HEAD --format="%h %s" --reverse 2>/dev/null || echo "No commits ahead of trunk"
  • 差分の概要:!git diff trunk...HEAD --stat 2>/dev/null
  • 未コミットの変更:!git status --short
  • 既存の変更履歴:!git diff trunk...HEAD --name-only -- '*/changelog/*' 2>/dev/null
  • PR テンプレート:!cat .github/PULL_REQUEST_TEMPLATE.md

手順

1. 事前確認と分析

動的コンテキストから、trunk 上ではないこと(trunk 上なら停止)、trunk より先のコミットがあること(なければ停止)、未コミットの変更がないこと(変更があれば停止)を確認します。

ベースブランチ:ブランチが release/* から作成されている場合は release/* を、それ以外の場合は trunk を使用します。

上記の動的コンテキストから(概要だけでは判断がつかない場合に限り、完全な差分を確認して)、以下を判断します。

  • 変更の種類:Fix、Add、Update、Dev、Tweak、Performance、または Enhancement
  • 重要度:Patch(最も一般的)、Minor(新機能)、Major(破壊的変更 — まれ)
  • バグ修正か? コミットやブランチ名にある Issue 参照を確認します(例:#12345、fix/issue-12345)。
  • UI の変更か? client/、templates/、CSS/SCSS、JSX/TSX の変更を確認します。
  • プラグインに影響するか? ユーザーに提供されるコードであれば「はい」です。CI/CD、ワークフロー、ツール、ドキュメントは「いいえ」です。これは手順 3 のマイルストーンと変更履歴の判断に使用します。
2. コンテキストの収集

コミットとブランチ名から Issue/PR 参照を抽出します。

  • Issue 参照:コミットまたはブランチにあれば使用します。なければ Closes # は省略します(Linear の参照は内部向けのため、PR では GitHub の Issue のみを参照します)。
  • バグ修正の起点となった PR:バグ修正で、差分やコミットに PR 参照がない場合は、履歴を検索し(変更行に対する git log -S を使用)、原因となった PR を特定します。見つからない場合は Bug introduced in PR #XXXX. を省略します。
  • 動機:差分とコミットメッセージから推測します。できるだけ要点を押さえてまとめ、不足しているコンテキストの確認で作業を止めないでください。
3. PR のタイトルと本文を作成

タイトル(70 文字未満、動詞から始める — リポジトリの慣例):

  • Fix <what was broken>、Add <what>、またはその他の動詞(Restore、Bump、Prepare など)
  • エリアのプレフィックスは任意です:[Email Editor] Fix double margin-top in flex layout
  • fix:/feat: のプレフィックスは付けません。Linear のチケット参照も付けません — Linear は内部向けで、PR は公開されます。

本文 — .github/PULL_REQUEST_TEMPLATE.md(上記の動的コンテキストで読み込んだもの)に、セクションごとに順番に記入します。各セクションの用途はテンプレート内の HTML コメントに記載されています。セクションごとの指示として従ってください。テンプレートに記載されていない、リポジトリ固有のルールは以下のとおりです。

  • 提案する変更:2~3 文にします。まず WHY(理由)、次に WHAT(内容)を説明します。埋め草の文言(「この PR では……」など)は避けます。GitHub の Issue 参照がなければ Closes # . の行を削除します。バグ修正でない場合、または原因となった PR が不明な場合は Bug introduced in PR # . の行を削除します。
  • マイルストーン:プラグインに影響する変更の場合のみ、自動割り当てのチェックボックスにチェックを入れます。このセクション自体は残します — テンプレートで削除禁止とされています。
  • 変更履歴エントリー:
    • プラグインに影響し、差分に変更履歴ファイルが含まれない場合 → 重要度、種類、ユーザー向けメッセージを記入して Automatically create にチェックを入れます。
    • プラグインに影響し、差分に変更履歴ファイルがすでに含まれている場合 → コメントに「Created manually.」と記入して does not require にチェックを入れます。
    • プラグインに影響しない場合 → 理由を説明するコメント(例:「マーチャントに提供されない内部ツール」)を記入して does not require にチェックを入れます。

記入後もテンプレートの HTML コメント(``)は残します — PR の自動化と GitHub のテストで使用されます。実際に表示される未記入のプレースホルダー行(例:Closes # .、Bug introduced in PR # .)のみ削除します。

4. プレビュー

実行前に、作成するタイトルと本文を提示します。

5. プッシュと作成
git push -u origin $(git branch --show-current)
gh pr create --draft --title "<title>" --base <base-branch> --body "$(cat <<'PRBODY'
<full PR body>
PRBODY
)"

PR の URL を出力します。UI の変更でスクリーンショットが必要な場合は、ユーザーにその旨を伝えます。

制約

  • Co-Authored-By 行や自己 attribution は追加しないでください
  • コードはコミットしないでください。プッシュは問題ありません
  • PR テンプレートのセクション見出しと HTML コメントはそのまま保持してください。Milestone セクションは、チェックの有無にかかわらず、すべての PR 本文に必須です。この `` マーカーが PR の自動化を制御します
  • 変更履歴のチェックボックスは CI 自動化の形式に合わせてください

コメント