1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【v0.1.4公開】Claude Code SDKで進化したGitコミットメッセージ自動生成ツール「Claude Auto-Commit」

Last updated at Posted at 2025-06-13

social-preview-english.png

はじめに

Gitのコミットメッセージ、皆さんはどう書いていますか?

私は以下のような課題を日々感じていました:

  • 「適切な英語表現が思いつかない...」
  • 「コミットメッセージの粒度がバラバラになってしまう」
  • 「Conventional Commitsに準拠させるのが毎回面倒」
  • fix update みたいな雑なメッセージになりがち」

特に疲れているときや深夜の作業では、「とりあえず動いた」みたいなコミットメッセージを書いて、後で「これ何の修正だっけ?」と困ることも...

そこで、Claude AIを活用してこれらの課題を一気に解決するツール「Claude Auto-Commit」を開発しました。

GitHub: https://github.com/0xkaz/claude-auto-commit
公式サイト: https://claude-auto-commit.0xkaz.com

特徴とデモ

🚀 主な機能

  • 智的なメッセージ生成: Claude AIがコード変更を理解して適切なメッセージを生成
  • 多言語対応: 日本語、英語、中国語など6言語に対応
  • 安全機能: プッシュ前確認でうっかりミスを防止
  • コミット履歴分析 (v0.0.5): 過去のパターンを学習してパーソナライズ
  • スマートファイルグルーピング (v0.0.5): 関連ファイルを論理的に分類
  • 自動更新機能: 毎日最新バージョンをチェック
  • 軽量実装: シンプルなシェルスクリプトで高速動作

📺 実際の使用例

# Before: 従来の私のコミット
git commit -m \"fix\"
git commit -m \"update user\"
git commit -m \"なんか動いた\"  # これは恥ずかしい...

# After: Claude Auto-Commit使用
$ claude-auto-commit

# AIが分析して生成されるメッセージ例:
✨ Add user authentication feature with JWT tokens
- Implement login endpoint with email/password validation  
- Add JWT token generation and verification middleware
- Create protected route guards for authenticated users

# プッシュ前確認機能
⚠️ リモートリポジトリ(main ブランチ)にプッシュしようとしています
プッシュを続行しますか? (y/n): 

違いは歴然ですね!

技術スタック

選定した技術とその理由

  • 言語: Node.js (ES Modules)
    • 現代的なJavaScript実装
    • 並列処理によるパフォーマンス向上
    • 豊富なエコシステム
  • AI: Claude Code SDK (Anthropic)
    • 高品質な自然言語理解・生成
    • OAuth認証でセキュアな接続
    • 指数バックオフによる安定性向上
  • 配布: npm + GitHub Releases
    • npxによる簡単実行
    • バージョン管理の自動化
  • CI/CD: GitHub Actions
    • 自動テスト・リリース

アーキテクチャと実装詳細

処理フロー

1. 変更内容の智的分析

# v0.0.5の新機能:スマートファイルグルーピング
analyze_changes() {
    local changes=$(git diff --name-only)
    
    # ファイルタイプ別に分類
    local frontend_files=$(echo \"$changes\" | grep -E \"\\.(js|jsx|ts|tsx|vue|react)$\")
    local backend_files=$(echo \"$changes\" | grep -E \"\\.(py|go|java|rb|php)$\")
    local test_files=$(echo \"$changes\" | grep -E \"test|spec\")
    
    # 変更の性質を分析
    local additions=$(git diff --numstat | awk '{sum += $1} END {print sum}')
    local deletions=$(git diff --numstat | awk '{sum += $2} END {print sum}')
    
    generate_context_prompt \"$frontend_files\" \"$backend_files\" \"$test_files\" \"$additions\" \"$deletions\"
}

2. 学習機能付きプロンプト構築

# v0.0.5の新機能:履歴分析
build_intelligent_prompt() {
    local changes=$(git diff --cached --stat)
    local diff_preview=$(git diff --cached | head -n 200)
    
    # 過去のコミットパターンを分析
    local commit_history=$(git log --oneline -n 50 --pretty=format:\"%s\")
    local style_analysis=$(analyze_commit_style \"$commit_history\")
    
    cat << EOF
あなたはプロの開発者のペアプログラマーです。
以下のGit変更内容を分析し、プロフェッショナルなコミットメッセージを生成してください:

## 変更サマリ
$changes

## 差分詳細 
$diff_preview

## このプロジェクトのスタイル分析
$style_analysis

## 要件
- 変更の本質を正確に表現
- このプロジェクトのスタイルに合致
- Conventional Commits形式推奨
- 英語で簡潔かつ明確に
- 絵文字は適度に使用(スタイルに応じて)

メッセージのみを返してください。説明は不要です。
EOF
}

3. 自動更新システム

# 毎日自動更新チェック
check_and_update() {
    local last_check_file=\"$HOME/.claude-auto-commit/last_check\"
    local current_date=$(date +%Y%m%d)
    
    if [[ ! -f \"$last_check_file\" ]] || [[ $(cat \"$last_check_file\") != \"$current_date\" ]]; then
        local current_version=$(get_current_version)
        local latest_version=$(curl -s \"$GITHUB_API/releases/latest\" | jq -r '.tag_name')
        
        if version_greater_than \"$latest_version\" \"$current_version\"; then
            echo \"🔄 新しいバージョン $latest_version が利用可能です\"
            read -p \"更新しますか? (y/n): \" -n 1 -r
            if [[ $REPLY =~ ^[Yy]$ ]]; then
                auto_update \"$latest_version\"
            fi
        fi
        
        echo \"$current_date\" > \"$last_check_file\"
    fi
}

インストールと使い方

簡単インストール

# npmで直接実行(推奨)
npx claude-auto-commit

# または従来のインストール方法
curl -fsSL https://claude-auto-commit.0xkaz.com/install.sh | bash

基本的な使い方

# 基本使用(OAuth認証で自動接続)
npx claude-auto-commit

# 日本語でコミットメッセージ生成
npx claude-auto-commit --lang ja

# Conventional Commits形式
npx claude-auto-commit --conventional

# ドライランモード(実際にはコミットしない)
npx claude-auto-commit --dry-run

# テンプレートシステムの活用(v0.1.4新機能)
npx claude-auto-commit --template "feat: {description}"

# 統計情報表示
npx claude-auto-commit --summary

設定ファイル

# ~/.claude-auto-commit/config.json
{
  "language": "ja",
  "conventional": true,
  "templates": {
    "feature": "feat: {description}",
    "bugfix": "fix: {description}",
    "docs": "docs: {description}"
  },
  "auth": {
    "method": "oauth"
  },
  "advanced": {
    "maxDiffLines": 200,
    "timeout": 30,
    "retryCount": 3,
    "enableCache": true
  }
}

パフォーマンスと最適化

実行時間測定結果

  • 平均実行時間: 1-2秒(v0.1.4で大幅改善)
  • Claude Code SDK通信: 0.8-1.5秒
  • 並列処理: <0.3秒
  • キャッシング効果: 初回以降50%高速化

最適化のポイント

  1. 並列処理とキャッシング

    // v0.1.4の並列処理実装
    const [diffAnalysis, historyData] = await Promise.all([
      analyzeDiff(gitDiff),
      getCachedHistory()
    ]);
    
  2. 指数バックオフ機能

    // 安定性向上のためのリトライ機能
    const result = await retryWithBackoff(async () => {
      return await claudeCodeSDK.generateMessage(prompt);
    }, { maxRetries: 3 });
    
  3. インテリジェントキャッシング

    • Claude Code SDK応答の永続化
    • プロジェクト別設定キャッシュ
    • テンプレート結果の最適化

実際の効果測定

開発効率の改善

プライベートベータで3週間テストした結果:

  • 時間削減: 1日平均10分短縮(年間約60時間!)
  • 履歴品質: 可読性が80%向上(主観評価)
  • チーム効率: コードレビュー時間30%短縮
  • ストレス軽減: コミット時の迷いがほぼゼロに

ユーザーフィードバック

「もうこれなしでは開発できない。コミット履歴が美しくなって、過去の自分の作業が追いやすくなった」

「英語が苦手だったけど、プロフェッショナルなメッセージが書けるようになって自信がついた」

「チーム全員で導入したら、プロジェクトの可読性が格段に上がった」

トラブルシューティング

よくある問題と解決法

1. Claude CLIが見つからない

# インストール確認
which claude || echo \"Claude CLI not found\"

# Claude CLIのインストール
# https://docs.anthropic.com/claude/cli を参照

2. プロキシ環境での使用

# プロキシ設定
export HTTPS_PROXY=http://proxy.example.com:8080
export HTTP_PROXY=http://proxy.example.com:8080
claude-auto-commit

3. 生成されるメッセージが期待と違う

# 履歴分析を使用してスタイルを学習
claude-auto-commit --analyze-history

# 設定ファイルでデフォルトを調整
# ~/.claude-auto-commit/config.yml

今後の展望

開発中の機能

  • VS Code拡張機能: エディタ内でのシームレス操作
  • GitHub Actions統合: CI/CDパイプラインとの連携
  • PR説明文自動生成: コミット履歴からプルリクエストの説明を生成
  • チーム設定共有: 組織全体での設定標準化
  • プラグインシステム: カスタム機能の追加

コミュニティ参加歓迎

このプロジェクトは完全オープンソースです!

  • Issue: 機能要望やバグ報告
  • Pull Request: コードの改善や新機能
  • 翻訳: ドキュメントの多言語化
  • テスト: 各種環境での動作確認

初心者の方も大歓迎です。まずはドキュメントの誤字修正から始めてみませんか?

まとめ

Claude Auto-Commitは、AIを活用してGitワークフローを劇的に改善するツールです。

主要な特徴

  • 🧠 智的なメッセージ生成: コードの変更内容を理解した高品質なコミットメッセージ
  • 🌍 多言語対応: 日本語・英語・中国語など6言語をサポート
  • 📊 学習機能: あなたのスタイルを覚えてパーソナライズ(v0.0.5)
  • 🔒 安全機能: 誤操作を防ぐプッシュ前確認
  • 高速・軽量: 平均3秒以内の高速処理
  • 🔄 自動更新: 常に最新機能を利用可能

導入効果

  • 年間60時間の時間削減
  • コミット履歴の品質向上
  • チーム開発の効率化
  • 英語コミットメッセージへの不安解消

「コミットメッセージで悩む時間」を「創造的な開発時間」に変えませんか?

今すぐ無料で始める:

curl -fsSL https://claude-auto-commit.0xkaz.com/install.sh | bash

GitHub: https://github.com/0xkaz/claude-auto-commit
公式サイト: https://claude-auto-commit.0xkaz.com

ぜひ試してみて、フィードバックをお聞かせください!
一緒に開発者の日常をより良くしていきましょう 🚀


#Claude #AI #Git #開発効率化 #OSS #CLI #自動化 #コミットメッセージ

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?