Agent skill · dmmulroy
effect-service-design
Design Effect services. Use when designing a new Effect service module or auditing an existing codebase for service, Layer, and composition improvements.
What it needs
About 4k tokens when loaded.
What this skill does
Effect Service Design Treat a service as an authority seam: a cohesive capability whose requirements should propagate through Effect context. An Effect service module owns the service contract, construction, production Layer, and any honest reusable test implementation that belong to the same capability. 1. Establish the local rules Read the nearest AGENTS.md, architecture docs, coding standards, project Effect guidance, pinned Effect version/source, and relevant vendored examples. Prefer current project-compatible patterns over remembered APIs. Complete when: the governing files and pinned source examples have been read and recorded for use in later decisions. 2. Select the branch Design branch: for a new service or a focused redesign, bound the capability, trace one caller-visible operation to every effect, then continue below. Audit branch: for a codebase, package, feature slice, or diff, read and follow references/AUDIT.md, applying the rules below to every candidate it finds. Complete when: one branch is selected, its scope is bounded, and the caller-visible operations in scope are named. 3. Apply the service test A real service owns at least one meaningful capability: authority over persistence, credentials, external I/O, runtime resources, configuration, time, randomness, or lifecycle; cohesive effect sequencing or policy reused across entrypoints; state or behavior with real production and test/runtime variation; enough implementation complexity that deleting the module would spread complexity into callers. Prefer an existing Effect service such as Clock, Crypto, Random, Config, HttpClient, FileSystem, or Path before defining an application service. Keep these as values or pure modules: parsed domain inputs and per-call request data; deterministic calculations, projections, parsers, and constructors; options that select policy for one call; framework values confined to their adapter; wrappers that only rename or forward another service. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills dmmulroy/effect-service-design