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
Purpose: compact, copy-paste ready spec templates and common matchers for this repo.
Before using any template for new behavior, pair it with tdd_proof_checklist.md so the final artifact shows the focused command, expected RED failure, GREEN rerun, and broader verification.
Proof example:
- First command: `bundle exec rspec spec/models/user_spec.rb`
- Expected RED: `NoMethodError: undefined method 'admin?'` because `User#admin?` does not exist yet
- GREEN rerun: `bundle exec rspec spec/models/user_spec.rb`RSpec.describe "API::V1::Users", type: :request do describe 'GET /api/v1/users' do it 'returns list of users' do create_list(:user, 2) get '/api/v1/users' json = JSON.parse(response.body)
aggregate_failures do
expect(response).to have_http_status(:ok)
expect(json['data'].length).to eq(2)
end
endend end
RSpec.describe User, type: :model do it 'validates presence of email' do user = build(:user, email: nil)
aggregate_failures do
expect(user).not_to be_valid
expect(user.errors[:email]).to include("can't be blank")
endend end
RSpec.describe MyService, type: :unit do describe '.call' do subject(:result) { described_class.call(params) }
context 'with valid input' do
let(:params) { { key: 'value' } }
it 'returns success' do
aggregate_failures do
expect(result[:success]).to be true
expect(result[:response]).to be_present
end
end
end
context 'with invalid input' do
let(:params) { {} }
it 'returns failure with error message' do
aggregate_failures do
expect(result[:success]).to be false
expect(result[:response][:error][:message]).to be_present
end
end
endend end
perform_enqueued_jobs for background jobstravel_to for time-dependent testsexpect { }.to change { Model.count }.by(1) for side effectsdocs
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