Curated library of 42 public AI agent skills for Ruby on Rails development, plus 5 callable workflow skills. Organized by category: planning, testing, code-quality, ddd, engines, infrastructure, api, patterns, context, orchestration, and workflows. Covers code review, architecture, security, testing (RSpec), engines, service objects, DDD patterns, and TDD automation.
96
96%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Risky
Do not use without reviewing
# app/models/money.rb
class Money
attr_reader :amount_cents, :currency
def initialize(amount_cents, currency = "USD")
@amount_cents = Integer(amount_cents)
@currency = currency.upcase.freeze
freeze
end
def ==(other)
other.is_a?(Money) && amount_cents == other.amount_cents && currency == other.currency
end
alias eql? ==
def hash
[amount_cents, currency].hash
end
endapp/models/money.rbbelongs_to or a database table — this is a calculation value, not an entity.# app/services/orders/create_order.rb
module Orders
class CreateOrder
Result = Struct.new(:success?, :order, :errors, keyword_init: true)
def self.call(**args) = new(**args).call
def initialize(user:, product_id:, quantity:)
@user, @product_id, @quantity = user, product_id, quantity
end
def call
order = @user.orders.build(product: Product.find(@product_id), quantity: @quantity)
order.save ? Result.new(success?: true, order: order, errors: [])
: Result.new(success?: false, order: nil, errors: order.errors.full_messages)
rescue ActiveRecord::RecordNotFound
Result.new(success?: false, order: nil, errors: ["Product not found"])
end
end
endapp/services/orders/create_order.rbOrder.# app/events/orders/order_created_event.rb
module Orders
class OrderCreatedEvent
attr_reader :order_id, :occurred_at
def initialize(order_id:)
@order_id = order_id
@occurred_at = Time.current.freeze
end
end
endapp/events/orders/order_created_event.rb{
"aggregates": [
{
"name": "Order",
"model": "Order",
"repository": "OrderRepository",
"services": ["OrderCreator", "OrderCanceler"],
"events": ["order.created", "order.canceled"],
"owner": "team-orders"
}
],
"bounded_contexts": [
{"name": "Orders", "path": "app/models/order*", "owner": "team-orders"},
{"name": "Billing", "path": "app/services/billing/*", "owner": "team-billing"}
]
}build
docs
mcp_server
skills
api
generate-api-collection
implement-graphql
code-quality
apply-code-conventions
apply-stack-conventions
assets
snippets
code-review
refactor-code
respond-to-review
review-architecture
security-check
context
load-context
setup-environment
ddd
define-domain-language
model-domain
review-domain-boundaries
engines
create-engine
create-engine-installer
document-engine
extract-engine
release-engine
review-engine
test-engine
upgrade-engine
infrastructure
implement-background-job
implement-hotwire
optimize-performance
review-migration
seed-database
version-api
orchestration
skill-router
patterns
create-service-object
implement-calculator-pattern
write-yard-docs
planning
create-prd
generate-tasks
plan-tickets
testing
plan-tests
test-service
triage-bug
write-tests
workflows