Back to Skills

create-service

majiayu000
Updated Today
1 views
58
9
58
View on GitHub
Metadesign

About

This skill directs developers to the correct service-creation template based on service type. Use it when asked to create a backend service layer component. It routes requests to either `create-resource-service` for domain entity CRUD or `create-utility-service` for cross-cutting concerns.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/majiayu000/claude-skill-registry
Git CloneAlternative
git clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/create-service

Copy and paste this command in Claude Code to install this skill

Documentation

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:

TypePurposeSkill
Resource ServiceCRUD operations on entities (notes, users, etc.)create-resource-service
Utility ServiceCross-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:

  1. Business logic lives here - Not in controllers or repositories
  2. Dependency injection - Inject dependencies via constructor
  3. Throw domain errors - Use errors from @/errors (not HTTP errors)
  4. User context - Accept AuthenticatedUserContextType where needed
  5. Return domain types - Return schema types, not HTTP responses

File Naming

Location: src/services/{service-name}.service.ts

TypeExample
Resourcenote.service.ts, user.service.ts
Utilityauthentication.service.ts, authorization.service.ts

See Also

  • create-resource-service - CRUD services for entities
  • create-utility-service - Cross-cutting/specialized services
  • add-resource-events - Add real-time events to a resource service

GitHub Repository

majiayu000/claude-skill-registry
Path: skills/create-service

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

creating-opencode-plugins

Meta

This skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.

View skill

langchain

Meta

LangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.

View skill

Algorithmic Art Generation

Meta

This skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.

View skill