# Contributor handoff — changesets/changesets

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

# Contributor handoff — changesets/changesets

Scanned commit c73949ba7b3160a4aa5729223335c190de1528f8 (2026-09-22). 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 the findings are a bounded onboarding map rather than exhaustive coverage or a verification certificate. Start with the relevant command, shared contracts, and side-effect-owning package before changing behavior. Preserve distinctions between release planning, filesystem application, and registry publication. Future checks must respect task authorization because several apparently convenient APIs or scripts perform writes, subprocess execution, or remote operations.
- Treat this checkout as v3 development, verify behavior against local source, and use the pinned pnpm/Node requirements; README explicitly points v2 users to a different maintenance branch. — [README.md#L1-2](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/README.md#L1-L2) [package.json#L73-83](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/package.json#L73-L83) [packages/cli/package.json#L64-68](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/cli/package.json#L64-L68)
- Read cli.ts plus the affected handler and shared types first; ReleasePlan and PublishPlan are different contracts, with the latter carrying ordered publish/tag-only chunks rather than proposed bumps. — [packages/cli/src/cli.ts#L103-159](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/cli/src/cli.ts#L103-L159) [packages/types/src/index.ts#L58-71](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/types/src/index.ts#L58-L71) [packages/cli/src/commands/publish-plan/getPublishPlan.ts#L45-58](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/cli/src/commands/publish-plan/getPublishPlan.ts#L45-L58)
- Keep semver-policy changes in assembly helpers and manifest edits in apply-release-plan; retain dev-dependent none releases and file/link/workspace range exceptions instead of treating every dependency edge as a version bump. — [packages/assemble-release-plan/src/index.ts#L152-183](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/assemble-release-plan/src/index.ts#L152-L183) [packages/assemble-release-plan/src/determine-dependents.ts#L100-116](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/assemble-release-plan/src/determine-dependents.ts#L100-L116) [packages/apply-release-plan/src/version-package.ts#L45-92](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/apply-release-plan/src/version-package.ts#L45-L92)
- Configuration changes should update WrittenConfig/Config, WrittenConfigSchema, normalization/rules, and generated schema together; schema snapshot tests are the narrow alignment check. — [packages/types/src/index.ts#L100-155](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/types/src/index.ts#L100-L155) [packages/config/src/config.ts#L45-73](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/config/src/config.ts#L45-L73) [packages/config/src/parse.ts#L25-51](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/config/src/parse.ts#L25-L51) [packages/config/scripts/json-schema.test.ts#L8-11](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/config/scripts/json-schema.test.ts#L8-L11)
- Build before authorized tests that resolve dist generators: the apply-release-plan suite references built CLI changelog/commit files, and CI supplies build artifacts before test jobs. Then target the affected Vitest file before broader root checks. — [packages/apply-release-plan/src/index.test.ts#L24-31](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/apply-release-plan/src/index.test.ts#L24-L31) [.github/workflows/ci.yml#L62-82](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/.github/workflows/ci.yml#L62-L82) [package.json#L23-33](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/package.json#L23-L33)
- E2E is separately bootstrapped, excluded from root test/typechecking, and requires Node 24 or newer; use the relevant pack/publish suite for authorized adapter work instead of assuming check-all includes it. — [package.json#L21-33](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/package.json#L21-L33) [vitest.config.ts#L5-6](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/vitest.config.ts#L5-L6) [tsconfig.json#L18-20](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/tsconfig.json#L18-L20) [scripts/e2e/package.json#L31-32](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/scripts/e2e/package.json#L31-L32)
- Follow explicit .ts ESM imports, inline type-import conventions, and == null checks; named exports are preferred, but index/config exceptions retain default exports for compatibility. — [packages/get-release-plan/src/index.ts#L1-6](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/get-release-plan/src/index.ts#L1-L6) [eslint.config.js#L49-72](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/eslint.config.js#L49-L72) [eslint.config.js#L98-110](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/eslint.config.js#L98-L110) [packages/get-release-plan/src/index.ts#L32-34](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/get-release-plan/src/index.ts#L32-L34)
- For read-only investigations inspect tests/CI without executing them: readPreState may rewrite legacy files, runVersion resets/commits/force-pushes, and runPublish invokes an arbitrary command then pulls/pushes; these APIs are not safe inspection helpers. — [packages/pre/src/index.ts#L95-112](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/pre/src/index.ts#L95-L112) [packages/release-utils/src/run.ts#L29-41](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/release-utils/src/run.ts#L29-L41) [packages/release-utils/src/run.ts#L111-146](https://github.com/changesets/changesets/blob/c73949ba7b3160a4aa5729223335c190de1528f8/packages/release-utils/src/run.ts#L111-L146)

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)
