# Contributor handoff — effect-ts/effect

> Canonical page: https://codevetter.com/unpack/effect/agent-handoff

# Contributor handoff — effect-ts/effect

Scanned commit 6389d9ac64c0f62ccc8b575fb9afc65fc104e814 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin with tracked repository instructions, package exports, nearby implementations, and representative tests before proposing changes. The investigation used public read-only source, confirmed the supplied HEAD, and inspected tests and CI without executing them. Source observations and hypotheses should remain distinct from runtime results; this brief is bounded, not exhaustive. Small changes must respect generated files, type contracts, platform differences, and resource-finalization order. Tests, CI, and upstream code were not executed.
- Read .agents/AGENTS.md first: it documents package layout and narrow validation. scripts/setup-agents.mjs creates a root AGENTS.md symlink to that tracked file only when the root target does not already exist. — [.agents/AGENTS.md#L1-L17](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.agents/AGENTS.md#L1-L17) [scripts/setup-agents.mjs#L1-L13](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/scripts/setup-agents.mjs#L1-L13)
- Use the root pnpm scripts and pinned pnpm@11.20.0. Shared TypeScript configuration uses ES2022, NodeNext, explicit relative-extension rewriting, strict checking, exact optional properties, and project references; CI setup selects Node 26.4.0. — [package.json#L1-L19](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/package.json#L1-L19) [tsconfig.base.json#L7-L29](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/tsconfig.base.json#L7-L29) [.github/actions/setup/action.yaml#L14-L23](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.github/actions/setup/action.yaml#L14-L23)
- Formatting uses two spaces, double quotes, no semicolons, and no trailing commas. Production lint rules reject barrel and .js-extension imports; root overrides relax barrel imports for tests, examples, documentation, and scripts. — [dprint.json#L4-L13](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/dprint.json#L4-L13) [packages/tools/oxc/oxlintrc.json#L11-L23](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/tools/oxc/oxlintrc.json#L11-L23) [.oxlintrc.json#L27-L34](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.oxlintrc.json#L27-L34)
- Generated barrel sections must be updated through codegen; LLMS.md is generated from ai-docs/src and migration/v3-to-v4.md from migration annotations. AI provider generation is automated by the nightly workflow, so generated/provider changes require source-generator awareness. — [.agents/AGENTS.md#L40-L51](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.agents/AGENTS.md#L40-L51) [ai-docs/README.md#L3-L16](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/ai-docs/README.md#L3-L16) [.github/workflows/ai-codegen.yml#L29-L55](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.github/workflows/ai-codegen.yml#L29-L55)
- For runtime lifecycle edits, read ManagedRuntime.make/dispose and its cleanup-order regressions together. For persistence edits, preserve schema encoding, missing-value semantics, binary/string discrimination, and transaction-bound connection ownership. — [packages/effect/src/ManagedRuntime.ts#L285-L324](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/ManagedRuntime.ts#L285-L324) [packages/effect/test/ManagedRuntime.test.ts#L74-L164](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/test/ManagedRuntime.test.ts#L74-L164) [packages/effect/src/persistence/KeyValueStore.ts#L784-L813](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L784-L813) [packages/effect/src/sql/SqlClient.ts#L178-L185](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/sql/SqlClient.ts#L178-L185)
- Tests and CI were inspected, not executed here. For later authorized changes, repository guidance calls for targeted pnpm test --run <test_file.ts>, targeted pnpm test-types for compiler behavior, and relevant checks; bare pnpm test or doctest starts watch mode. — [.agents/AGENTS.md#L17-L34](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.agents/AGENTS.md#L17-L34) [package.json#L15-L19](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/package.json#L15-L19) [package.json#L32-L32](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/package.json#L32-L32) [.github/workflows/check.yml#L156-L170](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.github/workflows/check.yml#L156-L170)
- Test imports can bypass public export restrictions through tsconfig.tests aliases, so successful source tests alone do not establish published import compatibility. Inspect manifest export maps and the CI build/check-dist-types path when changing public surfaces. — [tsconfig.tests.json#L24-L36](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/tsconfig.tests.json#L24-L36) [packages/effect/package.json#L32-L60](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/package.json#L32-L60) [packages/effect/package.json#L75-L103](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/package.json#L75-L103) [.github/workflows/check.yml#L59-L74](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.github/workflows/check.yml#L59-L74)
- Check stability annotations and synchronized-release impact before changing APIs: unstable APIs can break in minor releases and experimental APIs in patches; packages share a fixed Changesets group. Documentation-only AI changes do not require a changeset. — [MIGRATION.md#L40-L55](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/MIGRATION.md#L40-L55) [.changeset/config.json#L15-L48](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/.changeset/config.json#L15-L48) [ai-docs/README.md#L37-L37](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/ai-docs/README.md#L37-L37)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
