Effect workflow

SkillDev tools

Use when implementing, debugging, or reviewing NiceEval code whose correctness depends on Effect APIs or semantics, including typed failures, Schema, Scope, concurrency, services, layers, or Effect-backed tests. Do not use for domain questions that can be answered without Effect-specific reasoning.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Effect workflow skill

What this skill tells your AI

The instructions your AI receives, as published by niceeval/niceeval in .agents/skills/effect-ts/SKILL.md and read by ahel’s review.

Follow the official Effect skill: learn Effect from the guidance shipped with the exact installed package, not from a copied API summary in this skill.

Load the official guidance first

Before writing or changing Effect code:

  1. Identify the owning workspace package and inspect its package.json together with the root lockfile.
  2. Resolve that workspace's installed effect/package.json, for example with pnpm --filter <workspace> exec node -p "require.resolve('effect/package.json')".
  3. Require Effect major version 4 and keep every retained effect / @effect/* package on the exact repository-pinned RC revision.
  4. Read the resolved package's sibling AGENTS.md completely. Follow its relative links into ai-docs/ and src/ when the current topic requires them; read large linked guides such as SCHEMA.md in relevant chunks.
  5. Use the installed package source as the authority for exact signatures and behavior. Escalate to the canonical Effect-TS/effect repository only when needed, preferring the exact installed-version tag over main.

If dependencies are absent, install the locked workspace dependencies first. Do not float beta / RC tags, mix RC revisions, or infer current behavior from v3, an older beta, or effect-smol.

NiceEval boundaries

Read docs/architecture.md before changing a runtime boundary. Keep pure planning and result folding outside Effect when they do not read the outside world; keep I/O, concurrency, cancellation, and resource lifetime inside Effect. Run Effect only at the owning public Promise or process boundary, preserve typed failures until their domain result boundary, and scope acquired resources so failure and interruption release them.

effect remains an exact peer of the published NiceEval package because public Host and Record APIs exchange Effect and Schema values with consumers. Modules under effect/unstable/* may support private tooling, but must not leak through published declarations.

For an actual v3-to-v4 migration, also read ../effect-v3-to-v4/SKILL.md; do not keep migration-only symbol mappings in this ongoing Effect skill.

Validation

Run pnpm typecheck after Effect dependency or source changes, then run the smallest real runtime path covering any changed interruption, finalizer, concurrency, or Promise-adaptation behavior. Follow the repository testing skill before changing test owners.

Signals

GitHub stars
152
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
effect-ts-niceeval
Source
github.com/niceeval/niceeval