implement-effect-dsls
Installation
SKILL.md
Implement Effect DSLs
Use the project's installed Effect v4 as the authority. Read node_modules/effect/AGENTS.md, then inspect node_modules/effect/src for any API used. Confirm the installed effect version starts with 4.; v4 release candidates count as v4.
Choose the representation
Represent domain intent as Schema-backed tagged data and keep operational behavior in interpreters.
- Use a tagged command union when a program is one request or a static sequence of requests. Read command DSLs.
- Use recursive syntax when nodes contain subprograms. Read recursive F-algebras.
- Consider a continuation-bearing free representation when later commands depend on earlier command results. Keep it in memory unless the continuation also has a data representation.
Default to one closed tagged union. Add an explicit fixed-point wrapper, Effect HKT encoding, or modular coproducts only when the requested extensibility or reuse requires them.