Creates service objects following single-responsibility principle with comprehensive specs. Use when extracting business logic from controllers, creating complex operations, implementing interactors, or when user mentions service objects or POROs.
88
83%
Does it follow best practices?
Impact
100%
1.19xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
TDD workflow and file structure
Contract document
100%
100%
Spec file location
100%
100%
Service file location
100%
100%
Result class location
100%
100%
Frozen string literal in service
0%
100%
Frozen string literal in spec
0%
100%
rails_helper require
100%
100%
described_class usage
100%
100%
TDD order in dev-log
100%
100%
Red phase logged
100%
100%
Green phase logged
100%
100%
Error case specs
100%
100%
Service module namespace
100%
100%
Result object and dependency injection
Constructor injection
100%
100%
Default dependency values
37%
100%
Result class exists
50%
100%
deconstruct_keys implemented
0%
100%
Always returns Result
100%
100%
No raised exceptions
100%
100%
Error string on failure
75%
100%
Error code symbol on failure
87%
100%
instance_double in spec
100%
100%
Fraud failure test
100%
100%
Exception wrapping test
100%
100%
Frozen string literal
0%
100%
Naming conventions and directory structure
VerbNoun class naming
100%
100%
Module namespacing
100%
100%
app/services directory layout
100%
100%
Spec directory layout
100%
100%
Result class at correct path
100%
100%
Single public #call method
100%
100%
Result returned from #call
100%
100%
No god service
100%
100%
described_class in all specs
100%
100%
Frozen string literal
0%
100%
ARCHITECTURE.md mentions services path
100%
100%
ARCHITECTURE.md mentions naming
100%
100%
15fdeaf
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.