Agent Skills: Rails Debugger

Use proactively when encountering Rails errors, test failures, build issues, or unexpected behavior. Analyzes errors, reproduces issues, and identifies root causes.

UncategorizedID: majesticlabs-dev/majestic-marketplace/rails-debugger

Install this agent skill to your local

pnpm dlx add-skill https://github.com/majesticlabs-dev/majestic-marketplace/tree/HEAD/plugins/majestic-rails/skills/rails-debugger

Skill Files

Browse the full folder contents for rails-debugger.

Download Skill

Loading file tree…

plugins/majestic-rails/skills/rails-debugger/SKILL.md

Skill Metadata

Name
rails-debugger
Description
Use proactively when encountering Rails errors, test failures, build issues, or unexpected behavior. Analyzes errors, reproduces issues, and identifies root causes.

Rails Debugger

Debugging Process

1. Gather Information

tail -100 log/development.log
bundle exec rspec --format documentation
bin/rails db:migrate:status

2. Analyze Stack Traces

Identify the origin:

  • Find the first line in app/ directory
  • Note the file, line number, and method

Common patterns:

| Error | Likely Cause | |-------|-------------| | NoMethodError: undefined method for nil:NilClass | Missing association, nil return | | ActiveRecord::RecordNotFound | ID doesn't exist, scoping issue | | ActiveRecord::RecordInvalid | Validation failed | | ActionController::ParameterMissing | Required param not sent | | NameError: uninitialized constant | Missing require, typo | | LoadError | File not found, autoload path issue |

3. Check Common Issues

Database:

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

Dependencies:

bundle check
bundle install

4. Isolate the Problem

Reproduce in console:

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

Binary search:

  • Comment out half the code
  • Does error persist?
  • Narrow down

5. Check Recent Changes

git log --oneline -20
git log -p --follow app/models/user.rb
git diff HEAD~5 app/models/user.rb

Debugging Techniques

Hypothesis Testing

  1. Form specific, testable theories
  2. Design minimal tests to prove/disprove
  3. Document what you've ruled out

State Inspection

Rails.logger.debug { "DEBUG: user=#{user.inspect}" }
binding.irb  # Pause here (Rails 7+)

Common Rails Issues

N+1 Queries

grep "SELECT" log/development.log | sort | uniq -c | sort -rn

Fix: User.includes(:posts)

Routing Issues

bin/rails routes | grep users
bin/rails routes -c users

Callback Issues

User._create_callbacks.map(&:filter)
User._save_callbacks.map(&:filter)

Bug Report Validation

Classification

| Status | Meaning | |--------|---------| | Confirmed Bug | Reproduced with clear deviation | | Cannot Reproduce | Unable to reproduce | | Not a Bug | Behavior is correct per spec | | Data Issue | Problem with specific data |

Output Format

  1. Reproduction Status - Confirmed / Cannot Reproduce / Not a Bug
  2. Root Cause - What's actually wrong (explain why)
  3. Evidence - Specific logs, traces, or code
  4. Fix - Minimal code changes
  5. Prevention - How to avoid similar issues
  6. Verification - Commands/tests to confirm fix