effectts

Write idiomatic Effect-TS services, layers, schemas, and tests using canonical patterns.

Updated Apr 4, 2026
One-click install
npx skills add https://github.com/AkaraChen/proxy-up --skill effectts-akarachen
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: effectts
Source: https://github.com/AkaraChen/proxy-up/tree/main/.agents/skills/effectts
Command: npx skills add https://github.com/AkaraChen/proxy-up --skill effectts-akarachen

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Effect-TS code often fails with confusing layer composition type errors, inconsistent service patterns, and legacy error handling approaches. This Skill provides canonical patterns sourced directly from the Effect core repository so generated code matches official conventions. ## Core Features & Use Cases - Service & Layer Patterns: Choose correctly between Context.Tag for library interfaces and Effect.Service for concrete implementations, with proper Layer.provideMerge composition. - Domain Modeling: Apply Schema.TaggedError for errors, Schema.Class vs Schema.Struct decision rules, and branded types with real constraints. - Testing & Debugging: Diagnose 'Missing service in Effect context' errors, set up @effect/vitest with proper layer provision, and manage scoped processes. - Use Case: When a test fails with 'Effect<A, E, FileSystem> is not assignable to Effect<A, E, never>', this Skill identifies the provide vs provideMerge mistake and supplies the corrected layer composition. ## Quick Start Ask the assistant to write an Effect service with a Live layer and a passing @effect/vitest test using idiomatic Effect-TS patterns.

Frequently Asked Questions about effectts

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

FAQPage Schema
How do I fix 'Missing service in the expected Effect context' errors?▼

This error means a required dependency is still unsatisfied in the layer composition. Replace Layer.provide with Layer.provideMerge so the dependency layer is both satisfied and exposed to the program, or provide the missing layer at the test boundary with Effect.provide.

When should I use Context.Tag vs Effect.Service in Effect-TS?▼

Use Context.Tag for library interfaces that need multiple implementations, exposing a static Live layer. Use Effect.Service for concrete implementations, tests, and app services where the auto-generated Default layer and dependencies option are convenient.

Should I use Schema.TaggedError or Data.TaggedError for domain errors?▼

Use Schema.TaggedError for domain errors; it provides built-in JSON serialization, schema validation, and supports TypeId branding with static is() and refail() helpers. Data.TaggedError is considered a legacy pattern in current Effect packages.

How do I test Effect services with @effect/vitest?▼

Use it.effect with an Effect.gen body, yield the service from its context, and pipe the whole effect through Effect.provide with a test layer built via Layer.provideMerge. Use Effect.flip to assert on expected error values.

When should I use Schema.Class instead of Schema.Struct?▼

Use Schema.Class only when the type needs Equal or Hash symbols for HashMap keys, computed properties, methods, or PrimaryKey support. Default to Schema.Struct for plain DTOs and config objects without behavior.

Does this skill apply to plain TypeScript projects without Effect?▼

No, the patterns are specific to the Effect-TS ecosystem, including Effect.gen, Layer composition, Schema validation, and @effect/platform services. General TypeScript code without Effect dependencies is outside its scope.