😭

【業務効率化】もうやめましょうよ〜コミットメッセージ考えるのは

に公開2

はじめに

もうやめましょうよ〜!
コミットメッセージ考えるのはやめましょうよ〜!
リソースが勿体無い!!

ワン◯ースのコ◯ー大佐の言葉を借りてみましたが、開発中、以下のような悩みを抱えていませんか。

  • 「適切なコミットメッセージが思いつかない...」
  • 「日本語での表現に悩む」
  • 「適切な言い回しが分からない」
  • 「細かい修正の説明が面倒」

このような悩みを解決し、より本質的な開発作業に時間を使うため、コミットメッセージの生成をAIに任せる方法を紹介します。
私の場合、IntelliJ IDEAを使用しているため、JetBrains AI Assistantを活用しています。

AI Assistantとは

JetBrains AI AssistantはIntelliJ IDEAなどのJetBrains IDEに統合されているAI機能です。コード補完、リファクタリング、ドキュメント生成などの機能を提供しており、その中にコミットメッセージ生成機能も含まれています。

コミットメッセージ生成の手順

  1. ツールウィンドウのCommitを選択

  2. コミットしたいファイルを選択

  3. AI Assistantのアイコンをクリック

  4. 生成されたコミットメッセージを確認

  5. コミットを実行

カスタマイズ

ちなみに、私がコミット作業をAIに任せたいと思った理由は、業務効率化だけではありません。もう一つ、大きな理由があります。それは「カスタマイズ性」です。

たとえば、以下のような希望がありました。

  • コミットメッセージの冒頭に「[実装]」や「[修正]」といったプレフィックスを付けたい
  • 日本語に統一したい
  • 修正した対象や関心事を明確に記載したい

AI Assistantなら、プロンプトを自分好みにカスタマイズので上記の希望が叶うんです!!
以下に、私が作成したプロンプトをご紹介します。

作成したプロンプト

#  コミットメッセージ生成に関する指示

以下のルールに従って、日本語のコミットメッセージを生成してください。

---

##  基本ルール

- **メッセージは日本語で書いてください**
- **コミットメッセージの先頭に、変更の種類に応じたプレフィックス(分類)を付けてください**
- **主語は "変更されたコンポーネントや機能" を意識してください**

---

##  プレフィックス一覧(変更種別)

| プレフィックス | 用途 ||
|----------------|------|-----|
| [実装]       | 新しい機能の追加、ページ追加など | [実装] ユーザー登録ページを追加 |
| [修正]       | 振る舞いが変わるようなバグ修正、ロジックの修正 | [修正] フォーム送信時のバリデーションエラーを修正 |
| [リファクタ] | 振る舞いは変わらないが、コードの整理や最適化 | [リファクタ] ヘッダーコンポーネントの構造を整理 |
| [テスト]     | ユニットテスト・E2Eテストなどの追加や修正 | [テスト] ログイン機能のテストケースを追加 |
| [UI]      | CSSやスタイル調整に関する変更 | [UI] ボタンのホバー時カラーを変更 |

---

##  その他の指針

- **変更は「コンポーネント単位」「機能単位」で捉えてください。**
    -*OK: 「〇〇コンポーネントの〜を変更」*
    -*NG: 「細かい修正をいろいろ」*
- **コミット内容が一目で分かるよう、簡潔で明確な表現にしてください。**
- **不要な情報や主観的な言葉(例:とりあえず、ちょっと)などは避けてください。**

プロンプトの設定方法

  1. Intellij IDEAの settings > tools > AI Assistant > Prompt Library を開く

  2. Build-In Actions > Commit Message Generation を選択

  3. プロンプトを記入

  4. プロンプトを適用

最後に

生成AIの活用により、コミットメッセージ作成の工数を削減し、本質的な開発作業に注力できるようになりました。
皆様もぜひ、AI活用による業務効率化をお試しください。

おまけ

まだ精度が低く時々変なコミットメッセージを生成することがあります。
一番おもろかったのがこちら

[修正] レコメンドAPIで除外IDのロジックを修正し、結果アイテムを統一적으로排除

いや急に韓国語!?

nextbeat Tech Blog

Discussion

あいや - aiya000あいや - aiya000

僕はVimなので、gina.vimからopencommitを呼び出すようにしてます!
ollamaに対応しているので、こちらも無料でできます!
https://zenn.dev/luup_developers/articles/server-oco-ollama-20250311#comment-cf1d8100f772e4
https://github.com/aiya000/dotfiles/blob/30980cb803a2804e0a705e471ef07bcd0aaa94ec/.vim/after/ftplugin/gin-status.vim#L52