commit-work について
commit-work は、リポジトリの変更をまとまりのある検証済みの Git コミットにするスキルです。作業ツリーを調べ、変更を目的別にまとめ、コミットやチェック、残作業を報告します。
主な機能
- 01ブランチ、状態、差分、未追跡ファイルの確認
- 02目的と依存関係に基づく変更の分類
- 03対象内容のステージングと検証
- 04コミット前の必要なチェック
- 05コミット検証と残変更の報告
活用シーン
- 01完成した機能とテストをまとめてコミット
- 02独立した変更を複数のコミットに分割
- 03ステージ済み変更のみの準備・検証
- 04依頼されたプッシュ結果の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hburaktasyurek/ agent-skills-and-commands --skill commit-workインストール後、Claude Code で/commit-workを入力して読み込まれたか確認します。
詳細
作業をコミットする
依頼された作業を一貫性のあるコミットにまとめ、対象範囲のすべてを考慮して、Git に実際に記録された内容を確認します。
現在の作業から対象を確定する
制限のないコミット依頼は、選択したリポジトリとワークツリーにある、ステージ済み、未ステージ、および無視対象ではない未追跡の変更をすべて対象とします。他のタスクの変更も含まれます。変更が別のセッションで行われたというだけで、再度確認を求めてはいけません。明示されたファイル、タスク、またはステージ済みのみという制限には従ってください。メッセージのみの依頼では Git を変更せず、ステージのみの依頼ではコミットせずにインデックスを準備して確認します。
呼び出しまたは再開のたびに、リポジトリ、ブランチ、存在する場合は HEAD、ステータス、ステージ済みおよび未ステージの差分、未追跡の内容を確認します。各変更を理解するために、周辺コードと履歴を十分に読みます。記憶や古い報告を、現在の証拠の代わりにしてはいけません。リポジトリの指示と除外ルールに従ってください。秘密情報は決してコミットしてはいけません。機密値を明かさずに、保留したパスとその理由を特定します。事実関係の不確実性は直接解消し、必要な未解決の選択肢がある場合に限って質問してください。
変更を目的と依存関係に基づいてグループ化します。1つの変更に必要なコード、テスト、設定、ドキュメントはまとめ、独立した作業は分けます。一貫性のある変更には、コミットは1つで十分です。削除を含む、対象範囲内のすべての変更を扱います。ファイルの種類ごとに分割したり、後続のコミットに依存するグループを作成したりしてはいけません。
各グループを記録して確認する
インデックスには、グループの内容だけを正確に用意します。変更を加える前に既存のステージ状態を確認し、対象外の内容とステージ済みの選択を保持します。1つのファイルに複数のグループや範囲の変更が混在している場合は、他のハンクをコミットに含めず、必要なハンクを選択します。追加したパスだけでなく、最終的なステージ済み差分全体を読みます。作業中に内容が変わった場合は、影響を受けた作業を読み直してグループ分けし直します。
git diff --cached --check と、リポジトリで必要なチェックを実行します。フックは無効化せずに実行させてください。チェック結果は、実際にチェック対象となった内容に結び付けます。ワークツリーの変更を含むチェックが成功しても、その変更がこのグループに含まれていない場合があります。コミットの確認をもって実装レビューの代わりにしてはいけません。
リポジトリのメッセージ規約に従います。規約がなければ、72文字以内の件名を持つ英語の Conventional Commits を使用します。実際の変更と、その理由が有用な場合は理由を記述します。実施していない検証を記載したり、Co-Authored-By や AI による帰属情報を追加したりしてはいけません。コミットの作成には直接 Git コマンドを使用し、安全に引用したリテラルのメッセージ、またはメッセージファイルを使います。シェルラッパーやコマンド置換は避けてください。
作成したコミットの差分とメッセージを意図したグループと比較し、その後、残りのインデックスとワークツリーの変更を確認します。成功を強制するために、ワークツリーの内容を破棄または編集したり、既存のコミットを書き換えたりしてはいけません。失敗、中断、フックによる編集があった場合は、再試行する前に HEAD、インデックス、ワークツリーの内容を確認します。成功したコミットは保持し、実際に残っている変更から再開します。
依頼された操作を完了する
結果のコミットと残りの変更を、意図した対象範囲と照合します。除外またはブロックされた項目があれば、その理由とともに報告します。一部の作業しか完了していないのに、全体が完了したと表現してはいけません。記録すべき変更がなければ、空のコミットは作成しません。ただし、許可されたプッシュには引き続き対応します。
プッシュは、依頼された場合に限り、意図したコミット一式を完了してから行います。通常の非強制プッシュの前に、リモート、送信先ブランチ、未送信の履歴を確認します。origin やアップストリームを決めつけてはいけません。送信先に重大な曖昧さがあれば解消し、一部の変更だけを黙って公開したり、拒否された後に履歴を書き換えたりしてはいけません。リモートが意図したコミットを受け取ったことを確認します。ローカルのコミット成功と、プッシュの失敗または未確認の状態を区別してください。
コミットハッシュと件名、チェック内容と重要な制約、残りの変更とその理由を報告します。メッセージのみ、またはステージのみの作業では、その結果を報告します。確認できたローカルまたはプッシュ済みの状態を明示し、許可された操作の範囲で終了します。