effect-ts
Design principles and reference patterns for Effect (Effect-TS): service definitions, disciplined Layer composition, escaping the Effect runtime as late as possible, converting imperative code to the error channel, deriving types from Schema, and testing with @effect/vitest. Each rule leads with the mechanism that makes it necessary, then the fix.
This skill covers only the Effect-specific surface built on top of TypeScript — base compiler configuration, generics, and utility types belong to typescript-ecosystem.
Version
Verified against Effect 3.19.x, @effect/vitest 0.25.x, vitest 3.2.x. Effect.Service, Layer.provide /
provideMerge / merge / mergeAll, Effect.scoped, TestClock, and Schema.Struct are stable across the 3.x line.
Import everything from the single "effect" package (import { Effect, Layer, Schema, Ref } from "effect");
test bindings come from "@effect/vitest". Effect 2.x and pre-3.x tutorials predate Effect.Service and the
current Schema location (Schema moved into the core effect package) — do not mix guidance across major
versions. Verify version-specific claims against current docs via context7-usage
before asserting them.