Skip to content

AI Learning Feedback System for Laravel - Capture development feedback and generate insights to improve code quality and documentation

License

Notifications You must be signed in to change notification settings

nzsys/laravel-ai-learning

Repository files navigation

Laravel用 AI学習フィードバック

Software License

開発フィードバックを収集し,コード品質・ドキュメント・開発プロセスの改善に役立つインサイトを生成するLaravelツールです。Claude Code,Cursor,GitHub Copilotなどのコーディングアシスタントとシームレスに連携します。
何故ダメだったのか。繰り返し発生する問題はあるか。どこのコードで問題になったかを検出可能です。

目的

  • フィードバック収集 - 開発セッションからリアルタイムでフィードバックを記録
  • パターン検出 - コードと開発課題における繰り返しパターンの特定
  • 進捗追跡 - 開発の進捗と課題を体系的に追跡
  • 実用的な洞察 - 自動レポートを通じた実行可能な洞察の生成
  • AIガイドライン改善 - 実際の開発経験に基づくAIアシスタントのガイドライン向上
  • データドリブンな改善 - 測定可能なKPIによるプロセス改善

機能

  • 対話的フィードバック収集 - コンテキスト付きでフィードバックを記録(ファイル,コミット,シナリオ)
  • 自動日次レポート - トレンドと優先項目を含むKPIレポート生成
  • 優先度検出 - 低評価の経験を自動的にフラグ化
  • トレンド分析 - 7日間の改善傾向を追跡
  • Slack/Discord通知 - チーム可視性のためのWebhook統合(オプション)
  • SQLiteバックエンド - 軽量でゼロコンフィグのデータベース
  • クイックモード - 迅速なフィードバック収集
  • Git統合 - コミット/ブランチの自動追跡
  • AIコンテキストエクスポート - Claude Code,Cursor,GitHub Copilot向けエクスポート

インストール

要件

  • PHP 8.1以上(8.1,8.2,8.3対応)
  • Laravel 10.0以上(10.x,11.x,12.x対応)
  • SQLite3 PHP拡張

注意: このパッケージはLaravelプロジェクトが提供するilluminate/*パッケージを使用します。個別にバージョンを指定していないため,Laravel 10以降のどのバージョンでも動作します。

インストール方法の比較

項目 方法1: Composer(推奨) 方法2: 手動配置
autoload設定 ✅ 自動 ❌ 手動で追加が必要
サービスプロバイダー ✅ 自動登録 ❌ 手動で登録が必要
更新管理 composer updateで簡単 ❌ 手動でファイルコピー
推奨度 ⭐⭐⭐ すべての環境で推奨 ⚠️ 開発・テスト用のみ

方法1: Composerでインストール(推奨)

このパッケージはLaravelパッケージとして設計されています。Composerでインストールすれば,すべて自動で設定されます。

ステップ1: repositoriesを追加

Laravelプロジェクトのcomposer.jsonに以下を追加:

{
    "repositories": [
        {
            "type": "path",
            "url": "path to/ai-learning",
            "options": {
                "symlink": true
            }
        }
    ]
}

ステップ2: パッケージをインストール

# インストール
composer require nzsys/ai-learning

# minimum-stabilityエラーが出る場合
composer require nzsys/ai-learning:@dev

ステップ3: データベースを初期化

php artisan learning:install

これだけでOKです!以下がすべて自動で実行されます:

  • ✅ PSR-4 autoloadが自動設定(composer.jsonのautoloadセクションへの追加は不要)
  • ✅ サービスプロバイダー(AiLearningServiceProvider)が自動登録(手動登録不要)
  • ✅ Artisanコマンド(learning:*)が自動で利用可能
  • ✅ 設定ファイルも自動で読み込まれる

Gitリポジトリからインストール

# composer.jsonに追加
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/nzsys/ai-learning.git"
        }
    ]
}

composer require nzsys/ai-learning

ステップ4: データベースの初期化

# 自動インストール(推奨)
php artisan learning:install

# 以下が実行されます:
# - 必要なディレクトリの作成
# - SQLiteデータベースの初期化
# - スキーマの自動適用
# - 適切な権限設定

設定(オプション)

config/ai-learning.phpを編集するか,.envに追加:

# データベースパス(デフォルト: storage/app/ai-learning/metrics.sqlite)
AI_LEARNING_DATABASE_PATH=storage/app/ai-learning/metrics.sqlite

# レポートパス(デフォルト: storage/app/ai-learning/reports/daily)
AI_LEARNING_REPORTS_PATH=storage/app/ai-learning/reports/daily

# Slack通知(オプション)
AI_LEARNING_SLACK_WEBHOOK=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
AI_LEARNING_NOTIFICATIONS_ENABLED=true

# 閾値
AI_LEARNING_GUIDELINE_THRESHOLD=3  # この値以下の評価は優先としてフラグ化
AI_LEARNING_PATTERN_MIN_OCCURRENCES=3

クイックスタート

フィードバックの記録

何かを学んだり問題に遭遇したコーディングセッションの後:

# 対話モード(初回使用時推奨)
php artisan learning:feedback

# クイックモード(オプション項目をスキップ)
php artisan learning:feedback --quick

# 事前入力オプション付き
php artisan learning:feedback \
  --type=improvement \
  --rating=8 \
  --scenario=feature \
  --file=app/Models/User.php

AI統合

学習コンテキストのエクスポート

蓄積した学習内容をAIアシスタントで使用するためにエクスポート:

# Claude Code用にエクスポート(Markdown形式)
php artisan learning:export-context --for=claude --output=.claude/context.md

# Cursor用にエクスポート(.cursorrules)
php artisan learning:export-context --for=cursor --output=.cursorrules

# GitHub Copilot用にエクスポート
php artisan learning:export-context --for=copilot --days=7

# 過去7日分のみエクスポート
php artisan learning:export-context --for=claude --days=7

エクスポートされる内容:

  • 重大な問題 - 悪い結果につながったパターン(評価≤3)
  • 特定されたパターン - 発見された繰り返しのコード構造
  • 成功した改善 - 修正と共にうまくいったアプローチ
  • 高インパクトな学習 - 非常に成功したアプローチ(評価≥8)

自動パターン検出

繰り返し発生する問題とパターンを自動検出:

# 過去30日のパターンを分析
php artisan learning:analyze-patterns

# 最小出現回数のしきい値を設定
php artisan learning:analyze-patterns --min-occurrences=3

# 検出されたパターンをデータベースに保存
php artisan learning:analyze-patterns --save

検出される内容:

  • 繰り返し発生するファイルの問題 - 複数の低評価があるファイル
  • 繰り返し発生するシナリオの問題 - 繰り返し問題が発生するシナリオ
  • 改善トレンド - 時間経過による評価トレンド
  • 頻出問題 - 一般的なエラーパターン

AI駆動の提案

フィードバック履歴に基づいた実行可能な提案を取得:

# 過去7日分の提案を取得
php artisan learning:suggest

# 提案数を制限
php artisan learning:suggest --limit=5

# より長い期間を分析
php artisan learning:suggest --days=30

提案のタイプ:

  • ドキュメント - より良いドキュメントが必要なファイル
  • リファクタリング - 改善が必要なコード
  • AIエクスポート - AIアシスタントに学習内容をエクスポートするタイミング
  • 分析 - パターン検出を実行するタイミング
  • コードレビュー - 特別な注意が必要なシナリオ

ファイル構造

storage/app/ai-learning/
├── metrics.sqlite           # ローカルデータベース(gitignore対象)
└── reports/
    └── daily/
        ├── 2025-10-26.json  # 日次KPIレポート
        └── 2025-10-27.json

Gitで追跡するもの:

  • ✅ レポート(storage/app/ai-learning/reports/daily/*.json
  • ❌ データベース(metrics.sqlite)- ローカルのみ

セキュリティ

  • SQLiteデータベースはデフォルトでgitignoreされるstorage/app/に保存されます
  • すべてのフィードバックは環境ローカルに保存されます
  • Webhookを明示的に設定しない限り,外部サービスにデータは送信されません

About

AI Learning Feedback System for Laravel - Capture development feedback and generate insights to improve code quality and documentation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages