Curated library of 39 AI agent skills for Ruby on Rails development. Organized by category: planning, testing, code-quality, ddd, engines, infrastructure, api, patterns, context, orchestration, and workflows. Includes 5 callable workflow skills (rails-tdd-loop, rails-review-flow, rails-setup-flow, rails-quality-flow, rails-engines-flow) for complete development cycles. Covers code review, architecture, security, testing (RSpec), engines, service objects, DDD patterns, and TDD automation.
95
98%
Does it follow best practices?
Impact
95%
1.20xAverage score across 35 eval scenarios
Passed
No known issues
Progressive-disclosure reference. Read when the Context Summary detects a conflict, a missing requirement, or spec/code drift.
When two patterns coexist, requirements conflict, or specs disagree with code, silently picking is the highest-risk failure mode. The user's context-window is the source of truth for disambiguation — ask, do not guess.
Emit a Confusion Block whenever any of the following is true after loading context:
| Trigger | Example |
|---|---|
| Two patterns in the same repo | Services split between { success:, response: } hashes and Dry::Monads::Result |
| Spec passes against stale behavior | Spec asserts status: 200 but code returns 201 and neither is recently changed |
| Requirement omitted | PRD says "user can cancel subscription" — no mention of refund behavior |
| Domain term drift | Same concept called Plan, Tier, and Subscription::Level across layers |
| Boundary ambiguity | Change could live in host app or in mounted engine — neither is wrong on its own |
| Version/gem mismatch | Feature requires Rails 7.1+ but Gemfile.lock shows 7.0 |
| Authorization gap | Endpoint being modified has no before_action :authorize and no Pundit policy nearby |
After the Context Summary, attach:
### Confusion Block
Ambiguity: <one-line description of the conflict>
Evidence:
- <path:line> — <what that file shows>
- <path:line> — <what the other file shows>
Options:
A. <option one — named, with consequence>
B. <option two — named, with consequence>
(C. <third if relevant>)
Recommendation: <A/B/C> — <one-line reason>
Needed from you: <specific question, yes/no or A/B/C>Rules:
path:line citations that produce the ambiguity.### Confusion Block
Ambiguity: Two service return conventions coexist in this repo.
Evidence:
- app/services/billing/charge_service.rb:22 — returns `{ success: true, response: { charge_id: ... } }`
- app/services/onboarding/create_user_service.rb:18 — returns `Success(user)` / `Failure(:invalid_email)` (Dry::Monads)
Options:
A. Match billing pattern (hash) — consistent with most recent services, no new gem
B. Match onboarding pattern (Dry::Monads) — richer failure types, requires teaching callers
Recommendation: A — matches the cross-cutting convention in CLAUDE.md (`{ success:, response: }`).
Needed from you: A or B?### Confusion Block
Ambiguity: Spec asserts behavior the code no longer performs.
Evidence:
- spec/models/subscription_spec.rb:44 — expects `subscription.active?` to be false after 30 days
- app/models/subscription.rb:78 — `active?` currently checks only `status: :active`, not time
Options:
A. Fix the code to match the spec (time-based `active?`)
B. Fix the spec to match the code (status-only `active?`)
C. Neither — the spec is testing a dropped requirement; delete the example
Recommendation: B — a git blame on subscription.rb shows the time check was removed in a refactor 4 months ago; the spec was left stale.
Needed from you: A, B, or C?### Confusion Block
Ambiguity: The new feature could live in the host app or in the `Billing::Engine`.
Evidence:
- engines/billing/lib/billing/engine.rb:1 — isolate_namespace Billing; owns Subscription, Invoice, Plan
- app/controllers/accounts_controller.rb:40 — host owns Account → Subscription wiring via a cross-boundary call
Options:
A. Host app — consistent with current Account wiring, ships faster
B. Billing engine — keeps billing logic inside the engine boundary, matches isolate_namespace intent
Recommendation: B — the feature is a billing concept; adding it to the host perpetuates the boundary leak.
Needed from you: A or B?| Don't | Do |
|---|---|
| "I'll go with option A unless you say otherwise." | End with a closed question — wait for the answer |
| "There are some differences here." (vague) | Name the conflict in one line, cite both sides |
| Offer five options | Two, maximum three — otherwise you are offloading the decision you should have made |
| Confusion Block without a recommendation | Always recommend — your job is to reduce decision load, not add to it |
| Silently picking and noting "we can revisit" | Never ship a silent choice when the Confusion Block applies |
Once the user picks an option, update the Context Summary with a one-line Resolved: note pointing back to the Confusion Block so the choice is auditable:
### Context Summary
- ...
- Confusion: RESOLVED — chose A (hash-style service return) per user 2026-04-18Then proceed with the next skill.
docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
mcp_server
skills
api
api-rest-collection
rails-graphql-best-practices
code-quality
rails-architecture-review
rails-code-conventions
rails-code-review
rails-review-response
rails-security-review
rails-stack-conventions
assets
snippets
refactor-safely
context
rails-context-engineering
rails-project-onboarding
ddd
ddd-boundaries-review
ddd-rails-modeling
ddd-ubiquitous-language
engines
rails-engine-compatibility
rails-engine-docs
rails-engine-extraction
rails-engine-installers
rails-engine-release
rails-engine-reviewer
rails-engine-testing
infrastructure
rails-api-versioning
rails-background-jobs
rails-database-seeding
rails-frontend-hotwire
rails-migration-safety
rails-performance-optimization
orchestration
rails-skills-orchestrator
patterns
ruby-service-objects
strategy-factory-null-calculator
yard-documentation
planning
create-prd
generate-tasks
ticket-planning
testing
rails-bug-triage
rails-tdd-slices
rspec-best-practices
rspec-service-testing