| name | effect-module-executionplan |
| description | Guidance for `effect/ExecutionPlan` focused on APIs like make, isExecutionPlan, and Step. Load after `effect-skill-router` when this module is the primary owner. |
Effect Module ExecutionPlan
Owned scope
- Owns only
effect/ExecutionPlan.
- Source of truth:
packages/effect/src/ExecutionPlan.ts.
What it is for
- Module-specific APIs and usage patterns for Effect programs.
API quick reference
make
isExecutionPlan
Step
merge
TypeId
Metadata
PlanInput
StepInput
ConfigBase
PlanProvides
StepProvides
ExecutionPlan
CurrentMetadata
- Full API list:
references/api-reference.md
How to use it
- Start with constructor-style APIs to build values/services before composing operations.
- Prefer pipe-based composition to keep transformations explicit and testable.
- Use the reference docs to select the smallest API surface that solves your task.
- Validate behavior against existing tests before introducing new usage patterns.
Starter example
import type { Layer } from "effect"
import { Effect, ExecutionPlan, Schedule } from "effect"
import type { LanguageModel } from "effect/unstable/ai"
declare const layerBad: Layer.Layer<LanguageModel.LanguageModel>
declare const layerGood: Layer.Layer<LanguageModel.LanguageModel>
const ThePlan = ExecutionPlan.make(
{
provide: layerBad,
attempts: 2,
schedule: Schedule.spaced(3000)
},
{
provide: layerBad,
attempts: 3,
schedule: Schedule.spaced(1000)
},
{
Common pitfalls
- Prefer explicit, typed combinators over ad-hoc casting or unchecked assumptions.
Not covered here
- Adjacent modules in
effect/* and effect/unstable/* are out of scope for this owner.
Escalate to
effect-skill-router for routing and ownership checks.
Reference anchors
- Module source:
packages/effect/src/ExecutionPlan.ts
- Representative tests:
packages/effect/test/ExecutionPlan.test.ts
- API details:
references/api-reference.md
- Usage notes:
references/usage-reference.md
- Ownership mapping:
references/owner.md