Curated library of 28 public AI agent skills for Ruby on Rails development. Organized by category: testing, code-quality, engines, infrastructure, api, and context. Covers code review, architecture, security, testing (RSpec), engines, Hotwire, and TDD automation. Shared Ruby skills (YARD docs, DDD, service objects) have moved to ruby-core-skills. Repository agents remain documented in GitHub but are intentionally excluded from the Tessl tile.
93
95%
Does it follow best practices?
Impact
93%
1.78xAverage score across 28 eval scenarios
Passed
No known issues
Manage development and test data effectively.
| Use | Solution |
|---|---|
| Static reference data | db/seeds.rb with find_or_create_by! |
| Test scenarios | FactoryBot in spec/factories/ |
| Complex relationships | Both combined |
NEVER commit production data to seeds
ALWAYS use factories for test-specific scenarios
ALWAYS make seeds idempotent (can run multiple times safely)
NEVER hardcode credentials (passwords, API keys, secrets) in seeds, factories, or examples
- Use ENV variables (e.g., ENV.fetch('DEFAULT_SEED_PASSWORD')) or SecureRandom.hex(16) for non-production data
- Use `rails credentials:edit` to manage production secrets, never commit them in codefind_or_create_by! so re-runs are safe.Rails.env checks.rails db:seed (or rails db:setup for a fresh database).rails db:seed a second time and confirm no duplicates or errors.rails console and spot-check expected records exist with correct attributes.Split seed logic across environment files to keep db/seeds.rb clean:
# db/seeds.rb
if Rails.env.development?
require Rails.root.join('db/seeds/development')
elsif Rails.env.test?
require Rails.root.join('db/seeds/test')
end# db/seeds/development.rb
10.times do |i|
email = "dev_user_#{i + 1}@example.com"
User.find_or_create_by!(email: email) do |u|
u.password = ENV.fetch('DEFAULT_SEED_PASSWORD', SecureRandom.hex(16))
end
endPlace factories under spec/factories/ and use traits for role variants:
# spec/factories/users.rb
FactoryBot.define do
factory :user do
email { Faker::Internet.unique.email }
password { ENV.fetch('DEFAULT_SEED_PASSWORD', SecureRandom.hex(16)) }
trait :admin do
admin { true }
end
end
endrails db:seed, a second idempotency run, and a rails console spot-check.| Skill | When to chain |
|---|---|
| write-tests | When setting up test scenarios |
| review-migration | When ensuring DB schema is aligned |
agents
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
skills
api
generate-api-collection
implement-graphql
code-quality
apply-code-conventions
apply-stack-conventions
assets
snippets
code-review
refactor-code
review-architecture
security-check
context
load-context
setup-environment
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
testing
plan-tests
test-service
write-tests