| name | commit-message |
| description | Git の差分を分析し、リポジトリのスタイルに合わせたコミットメッセージを生成します。 |
コミットメッセージ生成
ワークフロー
1. 情報収集
ステージングされた変更がある場合:
git diff --staged
git log --oneline -10
ステージングされた変更がない場合:
git diff
git log --oneline -10
2. 判定
過去のコミット履歴から以下を判定します。判定不可の場合はユーザーに確認してください。
言語判定
| 言語 | パターン |
|---|---|
| 日本語 | 日本語が含まれる |
| 英語 | 英語のみが含まれる |
| その他 | 上記以外 |
スタイル判定
| スタイル | パターン |
|---|---|
| Conventional Commits | feat:, fix: 等 |
| gitmoji | 絵文字で始まる |
| シンプル形式 | 上記以外 |
gitmoji の場合、絵文字の形式(Unicode / Shortcode)も判定してください。
スコープ判定
過去 10 件にスコープ(例: feat(auth): や
✨ (auth):)が含まれているかを判定します。
含まれている場合、以下のコマンドでスコープ一覧を取得します:
git log --oneline -100 | sed -n 's/^[a-f0-9]* [^(:]*(\([^)]*\)):.*/\1/p' | tr ',' '\n' | sed 's/^ *//' | sort -u | awk '{printf "%s%s", sep, $0; sep=", "} END {print ""}'
3. メッセージ生成
判定結果に基づいてメッセージを生成します。
- タイトル(1行目): What(何をしたか)を簡潔に、50 文字以内
- ボディ(本文): Why(なぜしたか)を必要に応じて補足
- コード参照: コードやパスを表す場合はバッククォートで囲む
- 言語: 判定した言語に合わせる
- スタイル: 判定したスタイルに従う(Conventional Commits / gitmoji)
- スコープ: スコープ一覧から適切なものを選択(該当する場合)
4. 結果提示
コミットメッセージを提示します。実行はユーザーに委ねてください。