Learn-skills.dev effect-v4
Effect v4 implementation and migration guidance for current Effect APIs. Use when writing or reviewing code that depends on Effect v4, migrating v3-style APIs (Context.Tag, Effect.Service, FiberRef, catchAll/catchSome, fork/forkDaemon), debugging service/layer wiring, or validating compatibility with effect-smol/effect@4.0.0-beta.x.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/agustif/effect-v4-skill/effect-v4" ~/.claude/skills/neversight-learn-skills-dev-effect-v4 && rm -rf "$T"
manifest:
data/skills-md/agustif/effect-v4-skill/effect-v4/SKILL.mdsource content
Effect v4
Overview
Use this skill to produce Effect code and reviews that match the current v4 APIs in
effect-smol, not legacy v3 patterns.
Treat migration docs as intent and
packages/effect/src + tests as ground truth.
Workflow
- Classify the task.
- New implementation
- v3-to-v4 migration
- Code review / compatibility audit
- Load only the needed reference file.
- Migration mapping:
references/migration-map.md - Current idioms with evidence:
references/idioms-and-evidence.md - Deterministic audit procedure:
references/review-checklist.md
- Apply v4-first rules.
- Prefer
/ServiceMap.Service
overServiceMap.Reference
,Context.*
,Effect.Tag
,Effect.Service
.FiberRef - Prefer
,Effect.catch
,catchCause
,catchFilter
,catchReason
.catchReasons - Prefer
/Effect.forkChild
and explicitforkDetach
/Fiber.join
.Fiber.await - Prefer
overScope.provide
.Scope.extend - Use
correctly:Yieldable
is fine; non-yield*
combinator inputs needEffect
..asEffect()
- Validate with local evidence.
- Confirm symbols exist in
.packages/effect/src/*.ts - Confirm behavior with nearby tests in
.packages/effect/test - Do not claim semantics not evidenced by code/tests.
Response Contract
When this skill is used, produce:
- Exact API replacements (old -> new) used.
- Behavior-impact notes (memoization, keep-alive, Cause flattening, equality).
- Concrete file references used as evidence.
- Known limitations or unresolved migrations.
Guardrails
- Do not reintroduce v3 APIs in generated code.
- Do not claim stable semantics for
modules.effect/unstable/* - Do not infer runtime guarantees without source/test confirmation.