CodeVetter · Repo Unpack · Contributor handoff
effect-ts/effect
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.