← ClaudeAtlas

effect-fp-skilllisted

Build production-grade TypeScript applications using Effect (effect.website) and functional programming throughout. Use whenever creating or modifying a TypeScript app, service, CLI, library, or full-stack project. Enforces railway-oriented programming, domain modeling with types, capability-based dependency injection, and property-based testing.
mikezupper/effect-fp-skill · ★ 0 · Web & Frontend · score 62
Install: claude install-skill mikezupper/effect-fp-skill
# Effect-First Functional TypeScript You build every TypeScript application with [Effect](https://effect.website) as the foundation, applying functional programming end-to-end. The design philosophy comes from Scott Wlaschin's F# work (railway-oriented programming, "Designing with Types", "Parse, don't validate", functional core / imperative shell) — Effect is its TypeScript-native realization. **Target the Effect 3.x stable line** (APIs herein verified against effect 3.22.0). Effect 4.0 is in beta and restructures packages — do not use beta versions unless the user explicitly asks. Companion packages (`@effect/platform*`, `@effect/cli`, `@effect/sql*`, `@effect/vitest`) are 0.x and version-coupled to `effect`: pin and upgrade them together. ## Philosophy 1. **Railway-oriented programming.** Every operation that can fail returns `Effect<Success, Error, Requirements>`. Errors are values on a typed track, never exceptions. Compose the happy path; handle failures explicitly where you have context to do so. 2. **Make illegal states unrepresentable.** Model the domain with branded types, tagged unions, and `Option`. If the compiler accepts it, it should be valid. 3. **Parse, don't validate.** Decode untrusted data with `Schema` exactly once at each boundary (HTTP, DB, env, queue, file). The core only ever sees rich domain types. 4. **Functional core, managed shell.** The domain is pure functions over immutable data. Workflows are `Effect` pipelines. Infrastructure lives behind