service-agent

Create Rails service objects with RSpec tests and Result objects.

Updated Nov 1, 2025
One-click install
npx skills add https://github.com/nschneble/rails-superstack --skill service-agent-nschneble
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: service-agent
Source: https://github.com/nschneble/rails-superstack/tree/main/.agents/skills/service-agent
Command: npx skills add https://github.com/nschneble/rails-superstack --skill service-agent-nschneble

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Creates well-structured Rails service objects following SOLID principles with a callable interface and error handling. Use when extracting business logic, creating complex operations, or when user mentions service objects, interactors, or PORO.

Core Features & Use Cases

  • SRP-guided service objects: consistent structure under app/services with Entities and Submissions patterns.
  • Test-first pattern: always provide RSpec tests alongside services and use Result objects for success/failure.
  • Guided patterns library: patterns for CRUD, transaction, calculation, and dependency injection (as documented in references/patterns.md).

Quick Start

Generate a new Rails service object following the documented Entities structure and include RSpec tests.

Frequently Asked Questions about service-agent

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract business logic into Rails service objects?

Rails service objects extract business logic into callable classes under app/services, enforcing the Single Responsibility Principle. They use Result objects for success/failure tracking and include RSpec tests to validate behavior.

What is the best way to structure Rails service objects with SOLID principles?

Structuring Rails service objects with SOLID principles involves using an Entities and Submissions pattern under app/services. This approach applies dependency injection and SRP-guided callable interfaces to keep complex operations isolated and maintainable.

How do I test Rails service objects with RSpec?

Testing Rails service objects with RSpec uses a test-first pattern that provides specs alongside the service. Tests validate the callable interface and assert Result object success or failure states for reliable behavior verification.

Do I need Ruby 3.x and Rails 8.x to use callable service objects?

Yes, implementing callable service objects with this pattern requires Ruby 3.x, Rails 8.x, and RSpec. These versions provide the necessary environment for the app/services structure and Result object enforcement.

What patterns are available for Rails service objects?

Rails service objects support guided patterns for CRUD operations, transactions, calculations, and dependency injection. These patterns ensure consistent structure and error handling when creating complex operations.

When should I use service objects instead of models or controllers in Rails?

Use Rails service objects when extracting complex business logic from models or controllers. They are ideal for creating interactors or POROs that require a callable interface, keeping your MVC architecture clean and maintainable.