Curated library of 28 atomic skills and 9 personas for Ruby on Rails development. Organized by category: testing, code-quality, engines, infrastructure, api, context, and personas. 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.
93
95%
Does it follow best practices?
Impact
93%
1.16xAverage score across 28 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Checks whether the final artifact follows the test-service instructions from the published Rails Agent Skills plugin.",
"type": "weighted_checklist",
"checklist": [
{
"name": "instruction-1",
"description": "The submitted artifact follows this skill instruction: WRITE: Write the spec (happy path + error cases + edge cases)",
"max_score": 10
},
{
"name": "instruction-2",
"description": "The submitted artifact follows this skill instruction: **Core principle:** Test the public contract (`.call`, `.find`, `.search`), not internal implementation. Use `instance_double` for isolation, `create` for integration.",
"max_score": 10
},
{
"name": "instruction-3",
"description": "The submitted artifact follows this skill instruction: Use `instance_double` for unit isolation:",
"max_score": 10
},
{
"name": "instruction-4",
"description": "The submitted artifact follows this skill instruction: **CRITICAL**: Collaborators (such as API clients, external services, or other domain objects) MUST be stubbed using `instance_double` to ensure true unit isolation.",
"max_score": 10
},
{
"name": "instruction-5",
"description": "The submitted artifact follows this skill instruction: DO NOT use class-level stubs (e.g., `allow(CarrierApi::Client).to receive(:notify)`) as a fallback or workaround. If a collaborator is called via class methods, you must wrap/instantiate it, inject it, or stub `.new` to return the doubled instance.",
"max_score": 10
},
{
"name": "instruction-6",
"description": "The submitted artifact follows this skill instruction: Use `create` for integration tests:",
"max_score": 10
},
{
"name": "instruction-7",
"description": "The submitted artifact follows this skill instruction: Load these files only when their specific content is needed:",
"max_score": 10
},
{
"name": "instruction-8",
"description": "The submitted artifact follows this skill instruction: **[PATTERNS.md](./PATTERNS.md)** — Use when you need the full pattern catalog and factory placement guidance",
"max_score": 10
},
{
"name": "instruction-9",
"description": "The submitted artifact follows this skill instruction: **[assets/spec_examples.md](assets/spec_examples.md)** — Use when you need additional worked examples beyond the spec template above",
"max_score": 10
},
{
"name": "instruction-10",
"description": "The submitted artifact follows this skill instruction: **[assets/testing_checklist.md](assets/testing_checklist.md)** — Use when reviewing a completed service spec for completeness",
"max_score": 10
}
]
}.tessl-plugin
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
personas
testing
plan-tests
test-service