Implement, debug, refactor, migrate, review, or explain Effect TypeScript code. Use when a task touches `effect` or `@effect/*` APIs, especially services, layers, schemas, runtime wiring, platform or CLI packages, Effect testing, or Promise-to-Effect migration.
98
100%
Does it follow best practices?
Impact
93%
1.16xAverage score across 3 eval scenarios
Passed
No known issues
Use this file when bootstrapping an Effect repo, auditing project setup, or deciding which packages and compiler settings belong in the project.
effect-solutions is the opinionated setup guide and recommends the language service, strict TypeScript defaults, and a local Effect source checkout.effect.website is the canonical reference for runtime, config, and package APIs.effect, @effect/platform, @effect/cli, @effect/vitest, and @effect/platform-nodeeffect in every Effect project.@effect/platform for HTTP clients, filesystem, platform services, and general app integration.@effect/platform-node@effect/platform-bun@effect/platform-browser@effect/cli for CLIs.vitest and @effect/vitest for tests.@effect/schema for new work — Schema lives in effecteffect-solutions recommends installing @effect/language-service and wiring it into tsconfig.json
{
"compilerOptions": {
"plugins": [
{
"name": "@effect/language-service"
}
]
}
}For VS Code or Cursor, prefer workspace TypeScript:
{
"typescript.tsdk": "./node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}If the project wants build-time diagnostics, run effect-language-service patch and persist it via a prepare script.
From effect-solutions, these are the main defaults worth checking before code changes:
strict: trueexactOptionalPropertyTypes: truenoUnusedLocals: truenoImplicitOverride: trueverbatimModuleSyntax: trueincremental: true and composite: true when the repo benefits from project referencesModule settings depend on the project shape:
"module": "preserve" with "moduleResolution": "bundler""module": "NodeNext"effect-solutions recommends cloning the Effect repo locally so agents can grep real implementations when docs are not enough. If the repo already has a local reference path in AGENTS.md or CLAUDE.md, use that before browsing the web.
package.json, lockfiles, and tsconfig*@effect/language-service is present and configured.tsc-backed check, not only the editor.