effect-layer-design

Design Effect layers with dependency requirements and service wiring.

22|1|Updated Apr 14, 2026
One-click install
npx skills add https://github.com/mpsuesser/pi-effect-harness --skill effect-layer-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: effect-layer-design
Source: https://github.com/mpsuesser/pi-effect-harness/tree/main/harnesses/effect/skills/effect-layer-design
Command: npx skills add https://github.com/mpsuesser/pi-effect-harness --skill effect-layer-design

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Effect layer design becomes error-prone when dependencies, resource lifecycles, and composition semantics are handled inconsistently, leading to tangled wiring and brittle services.

Core Features & Use Cases

  • Layer dependency modeling: Defines services with explicit input requirements and construction errors using Effect layer types.
  • Resource-safe layer construction: Uses Layer.effect with scoped lifecycle patterns, including acquireRelease-style cleanup.
  • Composition strategies: Applies the right composition approach (merge vs provide vs provideMerge) to build production and test layer stacks cleanly.

Quick Start

Tell the assistant: "Create an Effect v4 layer design for a Logger service that depends on Config, using Layer.effect with correct dependency types and a defaultLayer suitable for production."

Frequently Asked Questions about effect-layer-design

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

FAQPage Schema
How do I design Effect layers with clear dependency requirements?

Designing Effect layers with clear dependency requirements involves defining services with explicit input requirements and construction errors using Effect layer types. This approach ensures predictable service wiring and prevents tangled dependency graphs in production layer stacks.

What is the best way to manage resource lifecycles during Effect service construction?

Managing resource lifecycles during Effect service construction requires using Layer.effect with scoped lifecycle patterns, including acquireRelease-style cleanup. This ensures resources are safely allocated and released during service construction without leaks.

When should I use merge vs provide vs provideMerge for Effect layer composition?

Use merge to combine independent layers, provide to satisfy a layer's dependencies, and provideMerge to both satisfy dependencies and merge the results. Choosing the right composition operator builds production and test layer stacks cleanly.

How do I structure test compositions for Effect context services?

Structuring test compositions for Effect context services involves applying appropriate composition operators like merge and provide to build test layer stacks. This cleanly satisfies dependencies and isolates services under test from production wiring.

Why does my Effect layer wiring become error-prone and brittle?

Effect layer wiring becomes error-prone and brittle when dependencies, resource lifecycles, and composition semantics are handled inconsistently. Using correct Context.Service patterns and consistent composition operators prevents tangled wiring and brittle services.