# Contributor handoff — jestjs/jest

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

# Contributor handoff — jestjs/jest

Scanned commit 61050e9323e742539dc2360236671110e37329e6 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed, and this brief does not certify a passing checkout. Start from the relevant package source and preserve contracts at configuration, Runtime, runner, and persistence boundaries. Small focused changes must account for cross-package imports loading built artifacts and for separately checked declarations. Future execution requires authorization appropriate to that task; this investigation performed only source reads and searches.
- Read root/package manifests, jest.config.mjs, and the implementing package first; build exports point to build artifacts, while root scripts distinguish JavaScript bundling, declaration build, and declaration bundling. — [packages/jest-cli/package.json#L5-L16](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-cli/package.json#L5-L16) [package.json#L96-L101](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/package.json#L96-L101) [jest.config.mjs#L79-L81](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/jest.config.mjs#L79-L81)
- For an authorized change, use the existing yarn jest <path> workflow first; rebuild JavaScript when e2e or other workspaces consume the edit, and use the full build when declarations or cross-package type checks change. — [.github/copilot-instructions.md#L7-L15](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/.github/copilot-instructions.md#L7-L15) [.github/copilot-instructions.md#L19-L28](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/.github/copilot-instructions.md#L19-L28) [package.json#L128-L130](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/package.json#L128-L130)
- Runtime edits must retain public dispatch seams and capability conditions; nodeCapabilities detects SyntheticModule and SourceTextModule.prototype.hasAsyncGraph, while ESM loading also checks resolver capabilities. — [packages/jest-runtime/src/internals/nodeCapabilities.ts#L8-L14](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runtime/src/internals/nodeCapabilities.ts#L8-L14) [packages/jest-runtime/src/internals/EsmLoader.ts#L1845-L1864](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runtime/src/internals/EsmLoader.ts#L1845-L1864) [.github/copilot-instructions.md#L193-L195](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/.github/copilot-instructions.md#L193-L195)
- Preserve runTestInternal as a separate closure for leak detection and keep runtime teardown before environment teardown; its setupFiles execution occurs before the later guarded framework-execution block. — [packages/jest-runner/src/runTest.ts#L73-L82](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runner/src/runTest.ts#L73-L82) [packages/jest-runner/src/runTest.ts#L213-L239](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runner/src/runTest.ts#L213-L239) [packages/jest-runner/src/runTest.ts#L280-L296](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runner/src/runTest.ts#L280-L296) [packages/jest-runner/src/runTest.ts#L379-L393](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-runner/src/runTest.ts#L379-L393)
- Snapshot edits should read State, matcher dispatch, adapter persistence, and snapshot utilities together; preserve identity-based retry rollback and the CI normalization that selects none unless updateSnapshot is explicitly requested. — [packages/jest-snapshot/src/State.ts#L251-L289](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-snapshot/src/State.ts#L251-L289) [packages/jest-snapshot/src/index.ts#L376-L384](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-snapshot/src/index.ts#L376-L384) [packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapter.ts#L130-L162](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-circus/src/legacy-code-todo-rewrite/jestAdapter.ts#L130-L162) [packages/jest-config/src/normalize.ts#L1175-L1184](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/packages/jest-config/src/normalize.ts#L1175-L1184)
- Add e2e behavior through fixture files rather than jest.fn/mock/spyOn in driver tests; the subprocess helper strips agent-detection variables and disables colors, so output assertions depend on that controlled environment. — [eslint.config.mjs#L464-L479](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/eslint.config.mjs#L464-L479) [e2e/runJest.ts#L99-L115](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/e2e/runJest.ts#L99-L115)
- Follow strict TypeScript and repository formatting constraints, use graceful-fs/globalThis in the governed source, and preserve bare built-in imports in browser-compatible packages where node: imports are explicitly prohibited. — [tsconfig.json#L12-L25](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/tsconfig.json#L12-L25) [package.json#L141-L146](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/package.json#L141-L146) [eslint.config.mjs#L206-L213](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/eslint.config.mjs#L206-L213) [eslint.config.mjs#L635-L649](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/eslint.config.mjs#L635-L649)
- Tests and CI were inspected, not executed: future validation should select the relevant existing package/e2e/type scripts and report actual results. Keep release/deployment separate because pkg-pr-new publishes packages and website production preparation performs supporter fetches and Crowdin upload/download. — [package.json#L108-L130](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/package.json#L108-L130) [.github/workflows/test.yml#L31-L46](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/.github/workflows/test.yml#L31-L46) [.github/workflows/pkg-pr-new.yml#L25-L32](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/.github/workflows/pkg-pr-new.yml#L25-L32) [website/package.json#L13-L17](https://github.com/jestjs/jest/blob/61050e9323e742539dc2360236671110e37329e6/website/package.json#L13-L17)

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)
