mcpField
R
rails-debugger

rails-debugger

github.com/majesticlabs-dev開発5048 回インストール7 週間前に更新
リポジトリ

rails-debugger について

rails-debuggerは、Rails開発者がアプリケーションのエラーを調べるためのデバッグスキルです。ログやスタックトレースの分析、問題の切り分け、バグの分類、最小限の修正と検証手順の整理を支援します。

主な機能

  1. 01ログとスタックトレースの分析
  2. 02データベースと依存関係の確認
  3. 03コンソールでの再現と二分探索
  4. 04直近の変更の調査
  5. 05検証を含む構造化バグレポート

活用シーン

  1. 01例外の発生元をアプリケーション内で特定
  2. 02マイグレーションや依存関係の問題を調査
  3. 03報告されたバグを再現して分類

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/majesticlabs-dev/majestic-marketplace --skill rails-debugger

インストール後、Claude Code で/rails-debuggerを入力して読み込まれたか確認します。

詳細

Rails デバッガー

デバッグのプロセス

1. 情報を収集する
tail -100 log/development.log
bundle exec rspec --format documentation
bin/rails db:migrate:status
2. スタックトレースを分析する

発生源を特定する:

  • app/ ディレクトリ内の最初の行を見つける
  • ファイル、行番号、メソッドを確認する

よくあるパターン:

エラー考えられる原因
NoMethodError: undefined method for nil:NilClass関連付けの不足、戻り値が nil
ActiveRecord::RecordNotFoundID が存在しない、スコープの問題
ActiveRecord::RecordInvalidバリデーションに失敗
ActionController::ParameterMissing必須のパラメーターが送信されていない
NameError: uninitialized constantrequire の不足、タイプミス
LoadErrorファイルが見つからない、自動読み込みパスの問題
3. よくある問題を確認する

データベース:

bin/rails db:migrate:status
bin/rails db:schema:dump

依存関係:

bundle check
bundle install
4. 問題を切り分ける

コンソールで再現する:

user = User.find(123)
user.some_method  # Does it fail here?

二分探索:

  • コードの半分をコメントアウトする
  • エラーは引き続き発生するか?
  • 範囲を絞り込む
5. 最近の変更を確認する
git log --oneline -20
git log -p --follow app/models/user.rb
git diff HEAD~5 app/models/user.rb

デバッグ手法

仮説の検証
  1. 具体的で検証可能な仮説を立てる
  2. 仮説を証明または反証するための最小限のテストを設計する
  3. 除外できた項目を記録する
状態の確認
Rails.logger.debug { "DEBUG: user=#{user.inspect}" }
binding.irb  # Pause here (Rails 7+)

Rails でよくある問題

N+1 クエリ
grep "SELECT" log/development.log | sort | uniq -c | sort -rn

修正:User.includes(:posts)

ルーティングの問題
bin/rails routes | grep users
bin/rails routes -c users
コールバックの問題
User._create_callbacks.map(&:filter)
User._save_callbacks.map(&:filter)

バグ報告の検証

分類
ステータス意味
確認済みのバグ明確な仕様との差異を再現できた
再現できない再現できない
バグではない仕様に沿った正しい動作
データの問題特定のデータに関する問題

出力形式

  1. 再現状況 - 確認済み / 再現できない / バグではない
  2. 根本原因 - 実際に何が問題なのか(なぜかを説明する)
  3. 証拠 - 具体的なログ、トレース、またはコード
  4. 修正 - 最小限のコード変更
  5. 予防 - 同様の問題を避ける方法
  6. 検証 - 修正を確認するコマンド/テスト

コメント