変更内容を確認し、日本語でコミットメッセージを自動生成してコミットしてください。
手順
Step 1: 状態確認
- •
git statusとgit diff(ステージ済み・未ステージ両方)を確認 - •最近のコミットメッセージ(
git log --oneline -10)を確認してスタイルを合わせる - •変更がない場合はその旨を伝えて終了
Step 2: 秘密情報・不要コードの検出(コミット前に必ず実行)
差分(git diff および git diff --cached)に以下が含まれていないか検査する。1つでも検出した場合はコミットを中断し、該当箇所をユーザーに報告する:
- •APIキー・トークンのパターン(
sk-,ghp_,AKIA, 32文字以上の英数字文字列など) - •
.env以外にハードコードされた秘密情報(パスワード、接続文字列など) - •conflict marker の残り(
<<<<<<<,=======,>>>>>>>) - •
TODO: removeや一時的なデバッグコード(printlnによるデバッグ出力、Log.dの残り等)
Step 3: 分割コミットの判断
変更内容を分析し、以下に該当する場合は分割コミットを提案する:
- •異なるプレフィックスに該当する変更が混在している(例: テスト追加 + バグ修正 →
test:とfix:に分割) - •異なるモジュール/パッケージにまたがる無関係な変更がある
分割が必要な場合は、どう分割するかをユーザーに提案し、承認を得てから各コミットを順番に実行する。
Step 4: amendの提案
以下の条件をすべて満たす場合、git commit --amend を提案する(通常の新規コミットも選択肢として提示):
- •直前のコミットから5分以内(
git log -1 --format=%ciで確認) - •直前のコミットと同じプレフィックスの変更である
amend を選択した場合は、既存メッセージを保持するか更新するかをユーザーに確認する。
Step 5: 変更サマリの表示と確認
以下のフォーマットで変更内容のサマリを表示し、ユーザーの確認を得る:
text
変更: <N>ファイル (+<追加行数>, -<削除行数>) M feature/chart/viewmodel/CandlesViewModel.kt -- キャッシュロジックを追加 A feature/chart/viewmodel/CandlesViewModelTest.kt -- キャッシュのユニットテスト M build.gradle.kts -- 依存追加 提案コミット: feat: 株価キャッシュにTTLを導入
Step 6: コミット実行
ユーザーの承認後、関連ファイルをステージングしてコミットする。
コミットメッセージのルール
- •日本語で簡潔に記述
- •プレフィックスは英語の慣例に従う:
feat:,fix:,docs:,refactor:,test:,chore:,ci: - •形式:
<prefix>: <日本語の説明> - •例:
feat: ユーザー認証機能を追加,fix: キャッシュTTLの計算を修正 - •「何を」ではなく「なぜ」に焦点を当てる
- •Co-Authored-By ヘッダーを末尾に付与
本文(body)の追加基準
変更ファイルが5つ以上、または差分が100行以上の場合は本文を追加する:
text
feat: 株価キャッシュにTTLを導入 APIレート制限への対策として、取得済み株価を5分間キャッシュする。 これにより外部API呼び出しを約80%削減できる。 Co-Authored-By: ...
注意事項
- •
.env, credentials 等の機密ファイルはコミットしない - •変更がない場合はその旨を伝える
- •必ずユーザーの確認を取ってからコミットを実行する