name: commit description: コミット依頼があったら必ず使うスキル。「コミットして」「commit」「変更をコミット」「ここまでの作業をコミット」等の指示を受けたら、このスキルを呼び出してコミットを実行する。直接 git commit を実行せずこのスキルを経由すること。
Committing Changes
変更をコミットします。会話の文脈を踏まえてコミット対象を自動選択し、ステージからコミットまで一貫して行います。
手順
注意:
- CWD がリポジトリルートであることを前提とします。
0. コミット対象の選択とステージ
会話の文脈(計画・実装内容・ユーザーとのやり取り)を踏まえ、コミットすべき変更を判断します。
git status --shortを実行して変更ファイルの一覧を確認する- 会話中に作成・編集したファイル、およびそれらと論理的にまとまりのあるファイルを選択する
- 選択したファイルを
git addでステージする
すでにステージ済みの変更がある場合は、その内容が妥当であるか確認し、必要に応じて追加のファイルをステージする。
1. ステージ済みの変更を確認
git diff --cached --stat と git diff --cached を実行してステージ済みの変更を確認する。
2. コミットメッセージ規約の把握
直近のコミット履歴からプロジェクトの規約を把握する:
git log --oneline -10
CLAUDE.md にコミットメッセージ規約があれば、既にコンテキストに含まれているのでそれに従う。
!git claude-attribution
3. コミットメッセージの生成
差分の内容、コミット履歴から読み取れる規約、そしてユーザーから追加の説明がある場合はそれも考慮し、プロジェクトの規約に沿ったコミットメッセージを生成します。
ルール:
- コミットメッセージは${user_config.COMMIT_MESSAGE_LANGUAGE}で生成する
- subject は変更の目的を簡潔に表す
- body は原則不要。変更の意図が subject だけでは伝わらない場合のみ付与する
ユーザーからの追加の説明: $ARGUMENTS
4. コミットの実行
コミットメッセージを渡して git commit を実行する。
5. 完了報告
次のフォーマットでコミットが完了したことをユーザーに報告します:
コミットが完了しました
~~~
<タイトル・本文・フッターを含む完全なコミットメッセージ>
~~~