effect-incremental-migration

Community

Migrate async modules to Effect safely

Authormpsuesser
Version1.0.0
Installs0

System Documentation

What problem does it solve?

Incrementally migrating Promise-based modules to Effect services without breaking existing callers, while making the dependency graph explicit in service and layer design.

Core Features & Use Cases

  • Service Interface Extraction: Convert module methods to Effect.Effect types while keeping signatures aligned with the original Promise API.
  • Layer-Driven Dependency Wiring: Build Layer.effect implementations that capture real requirements via yield*, then compose a defaultLayer for the normal runtime path.
  • Runtime Bridge for Backward Compatibility: Provide temporary async facades via ManagedRuntime and a shared memoMap, then prune once all Effect callers yield the service directly.
  • Call-Site Migration Rules: Replace Effect.promise(() => facade()) with direct yield* Service usage and update error handling from defect-catching to typed channel errors.
  • Pattern Transformations: Migrate Promise.all fan-out to Effect.forEach with explicit concurrency control.

Quick Start

Run the effect-incremental-migration skill to convert your module’s Promise-based functions into a Context Service plus Layer wiring, keeping temporary async facades only until your internal Effect callers yield the service directly.

Dependency Matrix

Required Modules

None required

Components

Standard package

💻 Claude Code Installation

Recommended: Let Claude install automatically. Simply copy and paste the text below to Claude Code.

Please help me install this Skill:
Name: effect-incremental-migration
Download link: https://github.com/mpsuesser/pi-effect-harness/archive/main.zip#effect-incremental-migration

Please download this .zip file, extract it, and install it in the .claude/skills/ directory.
View Source Repository

Agent Skills Search Helper

Install a tiny helper to your Agent, search and equip skill from 471,000+ vetted skills library on demand.