AutoFor

smart-commit

会話の文脈と変更内容を分析し、テーマごとにコミットを分割して作成する。

AutoFor 0 Updated 3mo ago
GitHub

Install

npx skillscat add autofor/claude-code-config/smart-commit

Install via the SkillsCat registry.

SKILL.md

スマートコミットスキル

会話の文脈とファイルの関連性を分析し、意味のある単位でコミットを分割して作成する。

実行手順

1. 変更内容を収集

まず CWD がリポジトリルートであることを保証する(サブディレクトリにいると相対パスが不一致になるため):

cd $(git rev-parse --show-toplevel)

次に変更内容を収集する:

git status --short
git diff
git diff --cached

変更がない場合は「コミットする変更がありません」と表示して停止する

2. 変更ファイルをテーマごとにグループ化

以下の情報を総合的に分析してグループ化する:

  • ファイルパスの関連性: 同じディレクトリ・モジュールのファイル
  • 変更内容の性質: diff の内容から機能追加/修正/設定変更などを判断
  • 会話の文脈: これまでの会話でユーザーが指示した作業単位

グループ化のルール:

  • 同じ目的・テーマの変更は1つのコミットにまとめる
  • 単一テーマしかない場合は1コミットでOK
  • 設定ファイル変更、テストファイル変更、ドキュメント変更など性質が異なるものは分ける
  • 各グループに対して日本語で簡潔なコミットメッセージを生成

3. コミットを実行

確認なしで即座に実行する。各グループごとに:

git add <ファイル1> <ファイル2> ...
git commit -m "<コミットメッセージ>"

4. 完了メッセージ

以下の形式で表示する:

コミットが完了しました(N件):

1. <hash> feat: ダークモード用のCSS変数を追加
2. <hash> feat: ダークモード切り替えコンポーネントを追加
3. <hash> chore: テーマ設定をconfigに追加

コミットメッセージ規約

  • Conventional Commits 形式: <type>: <description>
  • type: feat, fix, chore, docs, refactor, test, style
  • description: 日本語で簡潔に記述

注意事項

  • 確認なしで即座にコミットを実行する(ユーザーへの確認は不要)
  • 既にステージングされた変更(git diff --cached)も考慮に含める
  • 他のスキルから呼び出された場合: コミット完了後、呼び出し元スキルの次のステップに処理を戻すこと。smart-commit の完了は呼び出し元スキル全体の完了を意味しない。