mcpField
W
woocommerce-git-commit

woocommerce-git-commit

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

woocommerce-git-commit について

WooCommerce リポジトリで未コミットの変更を扱う開発者向けのスキルです。変更の確認、コミットのグループ分け、メッセージ作成、実行、変更ログ項目の作成方法を案内します。

主な機能

  1. 01ブランチ状態と差分の確認
  2. 02コミットのグループ分けの判断
  3. 03簡潔な命令形コミットメッセージの作成
  4. 04指定ファイルのステージングとコミット
  5. 05変更ログ項目の形式の説明

活用シーン

  1. 01未コミット変更のコミット準備
  2. 02無関係な変更の別コミット化
  3. 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 array
  • Add cache priming to AJAX downloadable search
  • Update email editor reset action label for consistency
  • Refactor order count cache refresh logic
  • Remove 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 は失敗します)。

コメント