Curated library of 41 public AI agent skills for Ruby on Rails development. Organized by category: planning, testing, code-quality, ddd, engines, infrastructure, api, patterns, context, and orchestration. Covers code review, architecture, security, testing (RSpec), engines, service objects, DDD patterns, and TDD automation. Repository workflows remain documented in GitHub but are intentionally excluded from the Tessl tile.
95
93%
Does it follow best practices?
Impact
96%
1.77xAverage score across 41 eval scenarios
Passed
No known issues
Orchestrates systematic GraphQL API development with Domain-Driven Design principles, ensuring proper domain boundaries, type-safe schemas, TDD implementation, and security best practices.
Objective: Establish clear domain language and boundaries before designing GraphQL schema.
Steps:
HARD GATE — Domain Language:
If gate fails: Return to domain discovery. GraphQL schema without clear domain model will be inconsistent.
Example Domain Language:
# GraphQL API Domain Language
## Core Terms
- **Order:** Represents a customer's purchase request
- **LineItem:** Individual product within an order
- **Customer:** User who places orders
- **Product:** Catalog item available for purchase
## Relationships
- Order has_many LineItems
- Order belongs_to Customer
- LineItem belongs_to Product
- Customer has_many Orders
## Bounded Contexts
- Order Context (orders, line items)
- Catalog Context (products)
- Customer Context (customers, authentication)Objective: Design GraphQL schema that reflects domain model and follows best practices.
Steps:
Schema Design Guidelines:
HARD GATE — Schema Validation:
bundle exec rails graphql:validateIf gate fails: Fix schema validation errors before proceeding to implementation.
Example Schema Structure:
# app/graphql/types/order_type.rb
module Types
class OrderType < Types::BaseObject
field :id, ID, null: false
field :customer, Types::CustomerType, null: false
field :line_items, [Types::LineItemType], null: false
field :total, Float, null: false
field :status, String, null: false
# Authorization
def self.authorized?(object, context)
context[:current_user].can_read?(object)
end
end
endObjective: Implement resolvers and mutations using TDD discipline.
Before implementing any resolver/mutation:
HARD GATE — Test Verification:
If test fails for wrong reason: Fix test (not implementation) to accurately test intended behavior.
Example Resolver Test:
# spec/graphql/resolvers/order_resolver_spec.rb
RSpec.describe Resolvers::OrderResolver do
let(:current_user) { create(:user) }
let(:order) { create(:order, customer: current_user) }
it 'returns order for authorized user' do
result = described_class.new(object: nil, context: { current_user: }).resolve(id: order.id)
expect(result).to eq(order)
end
it 'returns nil for unauthorized user' do
unauthorized_user = create(:user)
result = described_class.new(object: nil, context: { current_user: unauthorized_user }).resolve(id: order.id)
expect(result).to be_nil
end
endExample Resolver Implementation:
# app/graphql/resolvers/order_resolver.rb
module Resolvers
class OrderResolver < GraphQL::Schema::Resolver
type Types::OrderType, null: true
argument :id, ID, required: true
def resolve(id:)
Order.find_by(id: id).tap do |order|
raise GraphQL::ExecutionError, "Not authorized" unless order&.customer == context[:current_user]
end
end
end
endObjective: Ensure GraphQL API follows security best practices.
Steps:
HARD GATE — Security Check:
If gate fails: Address security vulnerabilities before deploying GraphQL API.
Example Security Configuration:
# app/graphql/schema.rb
class MySchema < GraphQL::Schema
use GraphQL::Batch
use GraphQL::Guard
query Types::QueryType
mutation Types::MutationType
# Query depth limiting
max_depth 10
# Query complexity
max_complexity 100
# Error handling
rescue_from(StandardError) do |err|
raise GraphQL::ExecutionError, "An error occurred"
end
end| Predecessor | This Workflow | Successor |
|---|---|---|
| create-prd | graphql | tdd |
| define-domain-language | graphql | security-check |
| None (standalone) | graphql | quality |
implement-graphqldefine-domain-languagesecurity-checkskill-routerNEVER deploy GraphQL API before:
If gate fails: GraphQL API is not production-ready. Address security issues.
# GraphQL API Report — [Date]
## Domain Model
- **Core Terms:** Order, LineItem, Customer, Product
- **Bounded Contexts:** Order, Catalog, Customer
- **Relationships:** Mapped and documented
## Schema
- **Types:** 12 types defined
- **Queries:** 8 queries implemented
- **Mutations:** 5 mutations implemented
- **Validation:** ✓ PASS
## Implementation
- **Resolver Tests:** 8/8 passing
- **Mutation Tests:** 5/5 passing
- **Integration Tests:** 3/3 passing
- **Total Coverage:** 94%
## Security Review
- **Authorization:** ✓ Implemented on all sensitive fields
- **Query Depth Limit:** ✓ Configured (max 10)
- **Query Complexity:** ✓ Configured (max 100)
- **Rate Limiting:** ✓ Implemented
- **N+1 Queries:** ✓ None detected
- **Error Handling:** ✓ Properly configured
## Status
**PRODUCTION READY** — All security checks passeddocs
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
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
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