effect-parallelization

Run Effect computations concurrently with combinators, racing, and coordination primitives.

1|Updated Aug 24, 2026
One-click install
npx skills add https://github.com/lambdasolver2/opencode-effect-harness --skill effect-parallelization-lambdasolver2
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: effect-parallelization
Source: https://github.com/lambdasolver2/opencode-effect-harness/tree/main/packages/module-typescript/assets/skills/effect-parallelization
Command: npx skills add https://github.com/lambdasolver2/opencode-effect-harness --skill effect-parallelization-lambdasolver2

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires effect.

What problem does it solve? Effect v4 collection combinators like Effect.all and Effect.forEach run sequentially by default, and developers often misuse concurrency options, racing semantics, or coordination primitives, leading to silent sequential bottlenecks, leaked permits, or hung fibers. ## Core Features & Use Cases - Declarative concurrency control: Apply the concurrency option (number, 'unbounded', 'inherit') to Effect.all, Effect.forEach, filter, partition, and validate for bounded or unbounded fan-out. - Racing and fallback strategies: Use race, raceAll, raceFirst, raceAllFirst, and firstSuccessOf for first-success or first-completion semantics with automatic loser interruption. - Coordination primitives: Bound shared resources across call sites with Semaphore, enforce per-key fairness with PartitionedSemaphore, and gate fibers on startup signals with Latch. - Use Case: When syncing thousands of user records against a rate-limited external API, use Effect.partition with a concurrency cap plus a Semaphore in the service layer to bound in-flight requests globally while collecting per-item failures without aborting the batch. ## Quick Start Ask the assistant to parallelize an Effect.forEach over a list of API calls with a concurrency limit of 8 and collect failures without aborting the batch.

Frequently Asked Questions about effect-parallelization

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

FAQPage Schema
How do I run Effect.forEach concurrently in Effect v4?

Pass a concurrency option to Effect.forEach, such as { concurrency: 8 } for a bounded limit or { concurrency: 'unbounded' } to run everything at once. Without the option, execution is sequential, which is the default.

What is the difference between Effect.race and Effect.raceFirst?

Effect.race waits for the first success and ignores failures until one effect succeeds or all fail. Effect.raceFirst settles on the first completion, so a fast failure wins and fails the whole race.

Does Effect.all run in parallel by default?

No, Effect.all runs sequentially by default in Effect v4. You must explicitly pass a concurrency option such as { concurrency: 'unbounded' } or a number to enable parallel execution.

When should I use Semaphore instead of a concurrency option?

Use Semaphore when you need to bound access to a shared resource across multiple call sites or fibers, such as a database pool or external API. A concurrency option only limits one combinator call site.

Why does my PartitionedSemaphore hang when requesting permits?

Requesting more permits than the semaphore's capacity resolves to Effect.never, silently hanging the fiber. Validate that requested permit weights never exceed the configured capacity.

What happened to Effect.makeSemaphore and mode 'either' from Effect v3?

In v4, Effect.makeSemaphore moved to Semaphore.make and Effect.makeLatch to Latch.make. The 'either' and 'validate' modes on Effect.all were replaced by mode: 'result' and the standalone Effect.validate combinator.