Agent skill
create-service
Guide for creating services in the backend. Use when asked to create a service layer component. Directs to the appropriate service skill based on the type of service needed.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/create-service
SKILL.md
Create Service
Services contain business logic and orchestrate operations between repositories, external APIs, and other services.
Service Types
There are two types of services in this architecture:
| Type | Purpose | Skill |
|---|---|---|
| Resource Service | CRUD operations on entities (notes, users, etc.) | create-resource-service |
| Utility Service | Cross-cutting concerns (auth, notifications, email) | create-utility-service |
Which Skill to Use?
Use create-resource-service when:
- Creating a service for a domain entity (Note, User, Course, etc.)
- The service will perform CRUD operations via a repository
- The service needs authorization checks per operation
- The service should emit events for real-time updates
- You've already created the schema and repository for this entity
Example: NoteService, UserService, CourseService
Use create-utility-service when:
- Creating a service for cross-cutting concerns
- The service calls external APIs (auth service, payment gateway, etc.)
- The service provides shared functionality used by other services
- The service doesn't directly map to a domain entity
Example: AuthenticationService, AuthorizationService, EmailService, NotificationService
Service Layer Principles
Regardless of type, all services follow these principles:
- Business logic lives here - Not in controllers or repositories
- Dependency injection - Inject dependencies via constructor
- Throw domain errors - Use errors from
@/errors(not HTTP errors) - User context - Accept
AuthenticatedUserContextTypewhere needed - Return domain types - Return schema types, not HTTP responses
File Naming
Location: src/services/{service-name}.service.ts
| Type | Example |
|---|---|
| Resource | note.service.ts, user.service.ts |
| Utility | authentication.service.ts, authorization.service.ts |
See Also
create-resource-service- CRUD services for entitiescreate-utility-service- Cross-cutting/specialized servicesadd-resource-events- Add real-time events to a resource service
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?