commit について
Git のコミット作成と検証を行う構造化スキルです。対象の変更、メッセージ形式、フック、トレーラーを管理し、プッシュは行いません。
主な機能
- 01ハッシュによる変更の固定
- 02差分の根拠に基づくメッセージ作成
- 03フックとトレーラーの制御
- 04スナップショットとのコミット照合
- 05プッシュせずに状態を報告
活用シーン
- 01確認済みメッセージでステージ済み変更をコミット
- 02未ステージの追跡対象変更を安全にコミット
- 03コミット停止や検証不一致の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ prathamdby/ skills --skill commitインストール後、Claude Code で/commitを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
コミット
オプション
デフォルトは、ステージ済み、Conventional、トレーラー拒否、フックは無効化がホストポリシーで許可される場合に限りオフ、それ以外はオンです。「ステージされていない作業」では、インデックスが空である必要があります。未追跡ファイルは除外されたままです。「プレーンな件名」/「シンプルなメッセージ」を選ぶと、シンプルになります。「フックを実行」/「フックをスキップしない」を選ぶと、オンになります。IDトレーラーの明示的な要求があった場合は、そのトレーラーのみを許可します。スコープやスタイルの競合、必要な値の不足がある場合はブロックします。フックの失敗によって選択したポリシーが変わることはありません。
1. 固定
ステータスと選択した差分を読み取ります(ステージ済みの場合はキャッシュ済み、ステージされていない場合はワークツリー)。空の場合は、切り替えずに他のレイヤーを示して NO_CHANGES とします。選択したバイト列を git hash-object でハッシュ化します。ステージされていない場合、インデックスが空でなければブロックします。
scope | style | hooks | requested trailers | hash | paths | message | command | SHA | terminal を記録します。
意図したバイト列とスコープ外の作業が確定したら完了です。
2. 下書きと追跡
選択したスタイルと拒否チェックを REFERENCE.md から読み込みます。
ロックしたハンクのみを使って下書きします。セッション/チケット/計画/ブランチ/レビュアーのコンテキストや、以前のレビュー対応の下書きは使いません。
メッセージの各行を、根拠となるハンクに対応付けます。
根拠のない文面と、拒否対象となるすべての形式を書き直します。エディター、HEREDOC、-F、-a、箇条書きごとの引数は使わず、件名には -m を1つ、本文には最大1つの -m を使用します。
スタイル、クリーンルームでの追跡、要求されたトレーラーのポリシーを満たしたら完了です。
3. コミット
変更を加える直前に再ハッシュします。差異があれば「固定」からやり直します。ステージされていない場合は、ロックした追跡対象のパスのみをステージし、キャッシュ済みのバイト列がスナップショットと一致することを確認します。 件名と本文には、別々のリテラルな argv 値を使います。シェル変数は、引用符、バッククォート、ドル記号、バックスラッシュ、改行を保持する必要があります。 必要または選択されている場合はフックを実行します。記録済みのポリシーとホストの両方で許可される場合に限り、フックを無効化できます。コミットが1つ作成されたら完了です。エラーや中断が発生した場合は、stderr とインデックスへの変更を記録して BLOCKED とし、フックポリシーを黙って変更してはいけません。
4. 検証
コミットの差分/パスと %B を、ロックしたスナップショット/メッセージと照合し、コマンドの形式/フックポリシー、および無関係な作業が保持されていることを確認します。不一致があれば、SHA と正確な差異を示してブロックします。トレーラーが拒否されている場合は、常に REFERENCE.md のトレーラーの衛生チェックを適用します。オプトインしている場合は、要求されていない禁止行が見つかったときに適用します。
REPL のストリップと、公開されていない/実行所有の HEAD のチェックは維持します。-m がクリーンでも、HEAD がクリーンである証明にはなりません。安全な修正後にコミットとメッセージが一致したら完了です。
SHA、件名、スコープ、フック/トレーラー、追跡結果、修正状況、残っている追跡対象/未追跡の作業を報告します。終了状態は SUCCESS、NO_CHANGES、BLOCKED です。プッシュは絶対にしないでください。