woocommerce-git-draft-pr について
WooCommerce リポジトリ向けに、現在のブランチからレビューしやすいドラフトプルリクエストを準備するスキルです。ブランチ状態と変更内容を確認し、リポジトリの規約に沿って GitHub CLI で作成します。
主な機能
- 01ブランチと作業ツリーの事前確認
- 02変更内容と issue 参照の分析
- 03タイトルとテンプレートに沿った本文の生成
- 04変更履歴とマイルストーンの要否判断
- 05GitHub CLI によるドラフト PR 作成
活用シーン
- 01完成した機能ブランチからドラフト PR を準備
- 02変更履歴の追加要否を判断
- 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 自動化の形式に合わせてください