Help us improve
Share bugs, ideas, or general feedback.
From rubyist
Intelligently analyze RSpec test failures and provide actionable debugging guidance.
npx claudepluginhub jwplatta/agent-cubicle --plugin rubyistHow this skill is triggered — by the user, by Claude, or both
Slash command
/rubyist:ruby-test-analyzerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Intelligently analyze RSpec test failures and provide actionable debugging guidance.
Writes, fixes, and refactors RSpec tests for Ruby/Rails apps using describe/it blocks, expect matchers, test doubles, FactoryBot, and TDD best practices. Activates on spec files or test queries.
Guides RSpec testing for Ruby and Rails apps covering model specs, request specs, system specs, factories, mocks, and TDD workflow. Triggers on RSpec keywords and testing scenarios.
Writes RSpec tests for Ruby and Rails apps using AAA pattern, describe/context blocks, subject/let, fixtures, allow/expect mocking, and shoulda matchers. Use for spec files, test cases, or new features.
Share bugs, ideas, or general feedback.
Intelligently analyze RSpec test failures and provide actionable debugging guidance.
This skill activates when:
Automatically identify common failure patterns:
NoMethodError Patterns:
Expectation Failures:
Database/State Issues:
For each failure, suggest:
Immediate Checks:
Investigation Steps:
puts or binding.pry at strategic pointsLikely Fixes:
Evaluate test quality:
Good Signs:
Warning Signs:
Identify untested scenarios:
Failure Detected:
Failure/Error: expect(user.full_name).to eq("John Doe")
expected: "John Doe"
got: "John"
Analysis Response:
Failure: User#full_name incomplete
Immediate Cause:
The full_name method is only returning the first name.
Investigation Steps:
Check the implementation at lib/user.rb:15
# Current implementation (likely):
def full_name
first_name
end
Verify test data:
# Check that your factory/test setup has both names
user = User.new(first_name: "John", last_name: "Doe")
Suggested Fix:
# lib/user.rb:15
def full_name
[first_name, last_name].compact.join(' ')
end
Additional Considerations:
compact)Suggested Additional Tests:
context 'when last_name is missing' do
it 'returns only first_name' do
user = User.new(first_name: "John", last_name: nil)
expect(user.full_name).to eq("John")
end
end
When tests are slow:
Identify Bottlenecks:
bundle exec rspec --profileOptimization Suggestions:
Database-Heavy Tests:
build_stubbed instead of createlet instead of let! where possibleExternal Services:
Factory Optimization:
build instead of createOffer to:
binding.pry at failure pointSuggest tests for: