Effect Expert
Use this skill when working with Effect services, layers, schema errors, config, and runtime integration.
Load Triggers
Load this skill when:
- User mentions
Effect, Layer, Context.Tag, Schema.TaggedError, Effect.gen, or Effect.fn
- You are implementing or reviewing files that define Effect services, layers, or runtime boundaries
- You are debugging Effect runtime behavior, missing spans, layer wiring, or boundary error mapping
- You need test strategy for Effect code (
@effect/vitest, test layers)
- You need Effect runtime integration (TRPC/server boundaries)
First Step (Always)
Before substantial implementation, refactor, or formal review, fetch current recommendations:
effect-solutions list
effect-solutions show tsconfig
effect-solutions show basics
effect-solutions show services-and-layers
effect-solutions show data-modeling
effect-solutions show error-handling
effect-solutions show config
effect-solutions show testing
effect-solutions show cli
If effect-solutions CLI is unavailable, or if the task is trivial (for example a small wording tweak with no Effect design impact), skip the CLI calls and rely on the relevant reference file(s) in this skill.
Treat recommendations as time-sensitive guidance. Do not rely on stale memory.
Decision Tree
- Service design or refactor ->
references/services-and-layers.md
- Typed errors, Option/Either, recovery ->
references/error-handling.md
- TRPC/server runtime boundary ->
references/framework-integration.md
- CLI tooling in
agent-tools/* -> references/agent-tools-patterns.md
- Testing and mocks ->
references/testing-layers.md
Project Rules (Do Not Break)
- Prefer service co-location (
Context.Tag + static layer in one file)
- Use
Schema.TaggedError for domain errors
- Do not access
Option/Either internals via _tag; use helpers (match, isNone, isLeft)
- For Effect dependencies, mock with Layers, not
vi.mock()
- Keep one clear provide boundary at entry points
Output Expectations
For substantial implementation/review/debug tasks, return:
- Which
effect-solutions show ... topics were checked
- Which reference file(s) were used and why
- Concrete change proposal following existing project patterns
- Verification plan (typecheck/tests)
Reference Index
references/services-and-layers.md
references/error-handling.md
references/framework-integration.md
references/agent-tools-patterns.md
references/testing-layers.md
1---2name: effect-ts3description: This skill should be used when implementing, reviewing, or debugging Effect TypeScript code, especially service/layer design, typed error handling, testing strategy, and runtime-boundary integration with frameworks (for example TRPC/HTTP/worker entrypoints).4---56# Effect Expert78Use this skill when working with Effect services, layers, schema errors, config, and runtime integration.910## Load Triggers1112Load this skill when:1314- User mentions `Effect`, `Layer`, `Context.Tag`, `Schema.TaggedError`, `Effect.gen`, or `Effect.fn`15- You are implementing or reviewing files that define Effect services, layers, or runtime boundaries16- You are debugging Effect runtime behavior, missing spans, layer wiring, or boundary error mapping17- You need test strategy for Effect code (`@effect/vitest`, test layers)18- You need Effect runtime integration (TRPC/server boundaries)1920## First Step (Always)2122Before substantial implementation, refactor, or formal review, fetch current recommendations:2324```bash25effect-solutions list26effect-solutions show tsconfig27effect-solutions show basics28effect-solutions show services-and-layers29effect-solutions show data-modeling30effect-solutions show error-handling31effect-solutions show config32effect-solutions show testing33effect-solutions show cli34```3536If `effect-solutions` CLI is unavailable, or if the task is trivial (for example a small wording tweak with no Effect design impact), skip the CLI calls and rely on the relevant reference file(s) in this skill.3738Treat recommendations as time-sensitive guidance. Do not rely on stale memory.3940## Decision Tree4142- **Service design or refactor** -> `references/services-and-layers.md`43- **Typed errors, Option/Either, recovery** -> `references/error-handling.md`44- **TRPC/server runtime boundary** -> `references/framework-integration.md`45- **CLI tooling in `agent-tools/*`** -> `references/agent-tools-patterns.md`46- **Testing and mocks** -> `references/testing-layers.md`4748## Project Rules (Do Not Break)4950- Prefer service co-location (`Context.Tag` + static `layer` in one file)51- Use `Schema.TaggedError` for domain errors52- Do not access `Option`/`Either` internals via `_tag`; use helpers (`match`, `isNone`, `isLeft`)53- For Effect dependencies, mock with Layers, not `vi.mock()`54- Keep one clear provide boundary at entry points5556## Output Expectations5758For substantial implementation/review/debug tasks, return:59601. Which `effect-solutions show ...` topics were checked612. Which reference file(s) were used and why623. Concrete change proposal following existing project patterns634. Verification plan (typecheck/tests)6465## Reference Index6667- `references/services-and-layers.md`68- `references/error-handling.md`69- `references/framework-integration.md`70- `references/agent-tools-patterns.md`71- `references/testing-layers.md`