[Claude Code] コミットメッセージを考えるのがめんどくさいのでAIに書かせてみた

2025/08/18

生成AI
Claude Code

こんにちは。

突然ですが、みなさんはコミットメッセージをちゃんと書いていますか?

私は適当に「fix」だの「refactor」だの書いてしまうことが多く、後から見返すと「なんでこんなコミットしたんだっけ?」と悩むこともしばしば。

そこで今回は、AIにコミットメッセージを考えてもらう方法を試してみました。

Claude Codeの独自slashコマンドを使う

さて、AIにコミットメッセージを考えてもらうには、Claude Codeの独自slashコマンドを使います。

早速、以下のマークダウンを.claude/commands/smart-commit.mdというファイル名で作成してみましょう。

# スマートコミット

修正差分を分析して適切なコミットメッセージを生成し、git commitを実行します。

---
allowed-tools: Bash(git status:*), Bash(git add:*), Bash(git diff:*), Bash(git commit:*)
description: 修正差分を分析して適切なコミットメッセージを生成してコミット
---

## 実行手順

### 1. 現在の状態確認
まず現在のgitの状態を確認します:
!`git status`

### 2. 変更内容の詳細分析
ステージングエリアの変更と未ステージの変更を確認:
- ステージ済みの変更: !`git diff --cached`
- 未ステージの変更: !`git diff`

### 3. 変更内容の解析とコミットメッセージ生成

上記の差分情報を基に以下の要素を分析してください:

**変更の種類を判定:**
- `feat:` - 新機能の追加
- `fix:` - バグ修正
- `docs:` - ドキュメントの変更
- `style:` - コードフォーマット、セミコロンなどのスタイル変更
- `refactor:` - リファクタリング(機能変更なし)
- `perf:` - パフォーマンス改善
- `test:` - テストの追加・修正
- `chore:` - ビルドプロセス、補助ツールの変更
- `ci:` - CI設定の変更

**コミットメッセージの構成:**

<type>(<scope>): <subject>

<body>

<footer>
```

- `type`: 上記の変更種類
- `scope`: 影響範囲(ファイル名、モジュール名など)
- `subject`: 50文字以内の簡潔な説明
- `body`: より詳細な説明(必要に応じて)
- `footer`: Breaking changesやIssue番号(必要に応じて)

### 4. ステージング
未ステージの変更がある場合、適切にステージングしてください:
- 全てステージング: `git add .`
- 個別ファイル: `git add <ファイル名>`

### 5. コミット実行
生成したコミットメッセージでコミットを実行:
`git commit -m "<生成されたコミットメッセージ>"`

## 注意事項
- 大きな変更がある場合は、複数のコミットに分割することを提案してください
- Breaking changesがある場合は、フッターに明記してください
- 関連するIssue番号がある場合は適切に参照してください

## 使用例
```bash
# 基本的な使用
/project:smart-commit

# 特定のファイルのみをコミット対象にしたい場合は事前にステージング
git add src/components/Button.tsx
/project:smart-commit
```

これで、Claude Code内で/project:smart-commitと入力することで、現在の変更内容に基づいた適切なコミットメッセージを生成し、コミットを実行できるようになります。

Related Posts

[Claude] Claude Codeが良すぎてCursorからVSCodeに戻ります

[Claude] Claude Codeが良すぎてCursorからVSCodeに戻ります

[Claude] Claude CodeをGitHub Actions内で使いこなす

[Claude] Claude CodeをGitHub Actions内で使いこなす

Kiro × Claude Codeで爆速開発!

Kiro × Claude Codeで爆速開発!