--- name: commit description: コミット規約に沿ったコミットを作成する(変更の分類・分割も自動判断)。ユーザーが「コミットして」「変更をコミット」「/commit」などと言った場合に使用。Conventional Commitsを基本とした規約に従い、適切なtype/scope/subjectを自動生成。複数の論理単位に分割すべき変更は自動判断して複数コミットに分割する。 --- # コミット作成スキル ## 実行フロー ### 1. 変更の確認 ```bash git status git diff git diff --staged git log --oneline -5 ``` - 変更ファイルと差分を確認 - 最近のコミットスタイルを参照 ### 2. 変更の分類と分割判断 以下の場合は**コミットを分割**: - 異なる機能の変更が混在 - `feat` と `fix` が混在 - 独立してリバート可能な変更が含まれる - 差分が大きすぎる(300行超が目安) ### 3. コミットメッセージ生成 [references/commit-conventions.md](references/commit-conventions.md) の規約に従ってメッセージを生成。 **Bodyの「なぜ」について**: - コードの差分や会話の文脈から変更理由が推測できる場合は記述 - 推測できない場合は**ユーザーに確認**(例: 「この変更の背景や理由を教えてください」) - 単純な変更(typo修正、フォーマット等)はbody省略可 ### 4. ユーザー確認 コミットを分割する場合はその理由と分割単位を提示し、確認。 分割の必要がない場合は、確認不要。 ### 5. コミット実行 確認後、`git add` と `git commit` を実行。 分割が必要な場合は、各まとまりごとにステージング→コミットを繰り返す。 ## 注意事項 - `git commit --amend` は使用しない(明示的な指示がない限り) - `--no-verify` は使用しない(明示的な指示がない限り) - プッシュは行わない(明示的な指示がない限り)