woocommerce-git-commit について
WooCommerce リポジトリで未コミットの変更を扱う開発者向けのスキルです。変更の確認、コミットのグループ分け、メッセージ作成、実行、変更ログ項目の作成方法を案内します。
主な機能
- 01ブランチ状態と差分の確認
- 02コミットのグループ分けの判断
- 03簡潔な命令形コミットメッセージの作成
- 04指定ファイルのステージングとコミット
- 05変更ログ項目の形式の説明
活用シーン
- 01未コミット変更のコミット準備
- 02無関係な変更の別コミット化
- 03WooCommerce パッケージの変更ログ作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ woocommerce/ woocommerce --skill woocommerce-git-commitインストール後、Claude Code で/woocommerce-git-commitを入力して読み込まれたか確認します。
詳細
変更をコミットする
未コミットの作業を、明確で慣例に沿ったメッセージでコミットします。関連のない変更は、必要に応じて別々のコミットに分けます。
動的コンテキスト
- 現在のブランチ:!
git branch --show-current - 未コミットの変更:!
git status --short - 差分の概要:!
git diff --stat - ステージ済み差分の概要:!
git diff --cached --stat
手順
1. 変更を分析する
上記の動的コンテキストから、何が変更されたかを判断します。
- 変更がない場合:中止し、コミットするものがないことをユーザーに伝えます。
- すでにステージ済みの場合:ユーザーがステージした内容を尊重します。追加のコミットを検討するのは、ステージされていないファイルのみです。
- 概要だけでは判断しにくいファイルについてのみ、完全な差分を確認します。
2. コミットの分け方を決める
変更が明らかに無関係でない限り、単一のコミットをデフォルトとします。次の場合に限り、分割します。
- ソースコードの変更とともに変更履歴の項目がある場合(変更履歴は別コミット)
- 明らかに独立した変更が混在している場合(例:バグ修正と無関係な設定変更)
同じ理由で変更された2つのファイルは、1つのコミットにまとめます。過度に分割しないでください。
3. コミットメッセージを作成する
現在のセッションのコンテキストを使って、どのような作業を行い、その理由は何かを把握します。差分と会話を確認しても動機が不明な場合は、差分とコミットの慣例から、最も妥当な説明を推測します。
形式 — 動詞から始まる命令形で、72文字未満にします。
Fix get_item_downloads() not always returning an arrayAdd cache priming to AJAX downloadable searchUpdate email editor reset action label for consistencyRefactor order count cache refresh logicRemove deprecated payment gateway fallback
動詞:Fix、Add、Update、Refactor、Remove、Restore、Bump、Prepare、Simplify、Improve、Replace
変更履歴のみのコミットの場合:Add changelog entries for [description]
課題番号やプルリクエストの参照は含めないでください。GitHub がスカッシュマージ時に追加します。
$ARGUMENTS が指定されている場合は、コミットメッセージの指針として使用します。
4. プレビューする
実行する前に、提案する各コミットを次の形式で示します。
Commit 1: Fix double margin-top in flex layout
files: src/Blocks/EmailEditor/Layout.php
src/Blocks/EmailEditor/styles.css
Commit 2: Add changelog entries for email editor fix
files: plugins/woocommerce/changelog/fix-email-margin
5. 実行する
確認された各コミットについて、次の処理を行います。
git add <specific files>
git commit -m "<message>"
必ず対象ファイルを指定してステージしてください。git add -A や git add . は使用しないでください。
すべてのコミットが完了したら、確認のため git log --oneline -n <number of new commits> を表示します。
変更履歴の項目ファイル
影響を受けるパッケージごとに、<package>/changelog/ の下に項目を1つ作成します。対話形式の pnpm --filter=<project> changelog add は回答を求めるため、フラグ(-s significance、-t type、-e entry、-c comment、-f filename)を指定して非対話形式で実行するか、
pnpm --filter=<project> changelog add --no-interaction -s patch -t fix -e "One user-facing sentence."
次の形式でファイルを直接作成します。
Significance:—patch、minor、majorのいずれか。Type:— パッケージのcomposer.jsonのextra.changelogger.typesで宣言されているタイプのいずれか。WooCommerce Core の場合:fix、add、update、dev、tweak、performance、enhancement。- 本文 — 空行の後に、販売者向けに変更内容を説明する一文を記載します。これはリリース時の変更履歴に掲載されるため、短くまとめ、課題番号、プルリクエストへのリンク、実装の詳細は含めないでください。
Comment:— 本文を掲載しない項目に限り、ユーザー向けの記載がない理由を説明するために使用します。ほとんどの場合、Type: devと組み合わせます。本文と一緒に使用せず、課題番号を記録する場所としても使用しないでください。
ユーザー向けの変更がある項目:
Significance: patch
Type: fix
Restore the "Browse store" link on the empty cart page.
販売者に伝える変更がない項目:
Significance: patch
Type: dev
Comment: Remove real sleep() calls from PHP unit tests; no production change.
各フィールドに実際に何を書くか、誰が読むか、長さの目安、レビュー基準については、リポジトリルートの AGENTS.md の「変更履歴の項目」セクションを参照してください。
Comment: と、プルリクエストテンプレートの「下記にコメント必須」フィールドを混同しないでください。後者はプルリクエストフォームに属するもので、変更履歴ファイルとは無関係です。
パッケージに関係しない変更(例:.ai/skills/ や AGENTS.md)には、変更履歴の項目は必要ありません。
制約
- Co-Authored-By 行や自己帰属の記載は禁止です
- リモートにプッシュしないでください
git add -Aやgit add .は使用しないでください- pre-commit の lint/テストチェックは実行しないでください。これらは
woocommerce-dev-cycleスキルが処理します。lint は、このスキルを実行する前に行い、実行後には行わないでください。PHP の変更については、このスキルの PHP lint が通過するまでコミットしないでください(警告があると CI は失敗します)。