smart-commit について
smart-commitは、コード変更をもとにLLMでコミットメッセージを作成するGit向けスキルです。対話式の新規コミット、直前のコミットの修正、複数コミットのスカッシュに対応します。
主な機能
- 01コード差分からメッセージを生成
- 02対話式コミットで対象ファイルを確認
- 03直前のコミットメッセージを修正
- 04複数コミットをまとめたメッセージを作成
活用シーン
- 01選択したファイルをコミット
- 02変更に合わせて直前のメッセージを修正
- 03最近の複数コミットを一つに統合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jackjin1997/ clawforge --skill smart-commitインストール後、Claude Code で/smart-commitを入力して読み込まれたか確認します。
同梱ファイルreferences/prompts.mdscripts/git_utils.sh
詳細
スマートコミット
LLM を活用した Git コミットメッセージ生成機能です。コードの変更内容から、意味のあるコミットメッセージを作成します。
機能
- 直前のコミットを修正 - ステージ済み/未ステージの変更を要約し、直前のコミットメッセージを修正します
- コミットをスカッシュ - 直近の N 件のコミットを要約し、統合したコミットを作成します
- 対話型コミット - ユーザーと対象ファイルを確認した後、変更を要約して新しいコミットを作成します
クイックスタート
新しいコミットの場合
# Show changed files and ask user confirmation
git status
# After confirmation, summarize changes with LLM
# Create commit with generated message
修正の場合
# Get diff of changes to amend
git diff --cached # staged
git diff HEAD~1 # compared to last commit
# LLM summarizes, then
git commit --amend -m "new message"
スカッシュの場合
# Get last N commit messages and diffs
git log -n N --format="%H %s"
# LLM summarizes, then
git reset --soft HEAD~N
git commit -m "consolidated message"
ワークフローの判断ツリー
User wants git commit help?
├─ "amend" or "修改"? → Amend workflow
├─ "squash" or "合并" + number? → Squash workflow
└─ New commit? → Interactive workflow
修正ワークフロー
- 変更を取得します:
git diff --cached(ステージ済み)またはgit diff HEAD~1(直前のコミット以降のすべての変更) references/prompts.mdの「Amend Commit」セクションにあるプロンプトを使って、LLM に送信します- ユーザーが提案されたメッセージを確認します
git commit --amend -m "message"
スカッシュワークフロー
- 直近の N 件のコミットを取得します:
git log -n N --format="%H|%s|%an|%ad" - 統合した差分を取得します:
git diff HEAD~N..HEAD references/prompts.mdの「Squash Commits」セクションにあるプロンプトを使って、LLM に送信します- ユーザーが提案されたメッセージを確認します
git reset --soft HEAD~N && git commit -m "message"
対話型コミットのワークフロー
git statusをユーザーに表示します- 含めるファイルをユーザーに確認します
- 確認済みのファイルの差分を取得します
references/prompts.mdの「New Commit」セクションにあるプロンプトを使って、LLM に送信します- ユーザーが提案されたメッセージを確認します
git add <files> && git commit -m "message"
LLM プロンプト
以下については references/prompts.md を参照してください。
- 新しいコミットメッセージの生成
- コミットメッセージの修正
- スカッシュしたコミットのメッセージ生成
各プロンプトには次の内容が含まれます。
- Git 差分の入力形式
- 出力形式の要件
- スタイルガイドライン(Conventional Commits など)
コメント
Markdown 対応