# Contributor handoff — chromaui/chromatic-cli

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

# Contributor handoff — chromaui/chromatic-cli

Scanned commit 9e2606a2dbc11bcd07e7e451431432e32de0224b (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 the shared pipeline and its adapters before editing individual tasks. Preserve task-result semantics, input precedence, Action synchronization, and the distinction between v1 selection and v2 hash collection. Tests and CI were inspected, not executed, and this bounded brief cannot establish passing checks or comprehensive coverage. Any later executable validation needs separate authorization because setup, publishing, initialization, and patch builds have material side effects.
- Read package.json, bin-src/register.js, node-src/index.ts, context.ts, and types.ts first: they define exported surfaces, dispatch, pipeline order, client setup, and state contracts. — [package.json#L26-L69](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/package.json#L26-L69) [bin-src/register.js#L5-L19](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/bin-src/register.js#L5-L19) [node-src/index.ts#L359-L372](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/index.ts#L359-L372) [node-src/context.ts#L18-L32](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/context.ts#L18-L32)
- Use the repository's Yarn 4 toolchain in an authorized development session; packageManager pins yarn@4.18.0, and existing scripts provide yarn test, yarn typescript:check, yarn lint, and yarn build. This investigation executed none of them. — [docs/DEVELOPMENT.md#L3-L10](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/docs/DEVELOPMENT.md#L3-L10) [package.json#L71-L90](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/package.json#L71-L90) [package.json#L274-L275](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/package.json#L274-L275)
- Prefer edits at extractInput/run/applyOutput task seams; keep Options readonly to task dependencies and mutate Runtime for effective forceRebuild changes. Account for the explicitly documented live-Context exceptions in upload and preparation. — [node-src/renderer/engine/index.ts#L30-L51](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/renderer/engine/index.ts#L30-L51) [node-src/types.ts#L338-L367](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/types.ts#L338-L367) [node-src/tasks/upload.ts#L12-L16](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/tasks/upload.ts#L12-L16) [node-src/tasks/prepare/index.ts#L12-L15](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/tasks/prepare/index.ts#L12-L15)
- Preserve partial/skip versus skip-self behavior: partial and skip halt downstream tasks, while skip-self permits continuation. Patch restoration must remain outside the skippable render pipeline. — [node-src/renderer/engine/index.ts#L142-L179](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/renderer/engine/index.ts#L142-L179) [node-src/tasks/restoreWorkspace.ts#L8-L20](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/tasks/restoreWorkspace.ts#L8-L20) [node-src/index.ts#L393-L407](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/index.ts#L393-L407)
- For option changes, inspect precedence and validation before extending CLI, config, Node, or Action interfaces; retain dependent-option checks, strict schema behavior, and the Action's merge-queue-specific exitZeroOnChanges default. — [node-src/lib/getOptions.ts#L177-L202](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/getOptions.ts#L177-L202) [node-src/lib/getOptions.ts#L263-L303](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/getOptions.ts#L263-L303) [node-src/lib/getConfiguration.ts#L58-L59](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/getConfiguration.ts#L58-L59) [action-src/main.ts#L158-L180](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/action-src/main.ts#L158-L180)
- For TurboSnap changes, read the dispatcher and golden hashes first: v2 returns fallback after writing/uploading hashes, v1 still supplies story selection, and exact hash constants protect comparisons with older baselines. — [node-src/lib/turbosnap/index.ts#L40-L53](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/turbosnap/index.ts#L40-L53) [node-src/lib/turbosnap/v2/index.ts#L79-L103](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/turbosnap/v2/index.ts#L79-L103) [node-src/lib/turbosnap/v2/manifest.golden.test.ts#L12-L36](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/turbosnap/v2/manifest.golden.test.ts#L12-L36)
- Treat token handling, metadata uploads, and workspace operations as side-effect boundaries: diagnostics redact named tokens, metadata includes configuration/log files, init installs dependencies, and patch restoration invokes hard resets. — [node-src/lib/writeChromaticDiagnostics.ts#L57-L60](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/writeChromaticDiagnostics.ts#L57-L60) [node-src/lib/uploadMetadataFiles.ts#L36-L48](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/lib/uploadMetadataFiles.ts#L36-L48) [bin-src/init.ts#L79-L92](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/bin-src/init.ts#L79-L92) [node-src/git/git.ts#L522-L524](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/git/git.ts#L522-L524)
- For later authorized verification, start with adjacent Vitest cases and then the configured CI checks; preserve the distinction between mocked orchestration tests and live packed-package smoke tests. Reconcile Node >=22, bundle node20 targets, and Action node24 when changing runtime compatibility. — [node-src/index.test.ts#L43-L88](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/node-src/index.test.ts#L43-L88) [.github/workflows/lint-and-test.yml#L24-L37](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/.github/workflows/lint-and-test.yml#L24-L37) [.github/workflows/smoke-test.yml#L144-L178](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/.github/workflows/smoke-test.yml#L144-L178) [tsdown.config.ts#L15-L16](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/tsdown.config.ts#L15-L16) [package.json#L239-L240](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/package.json#L239-L240) [action.yml#L158-L160](https://github.com/chromaui/chromatic-cli/blob/9e2606a2dbc11bcd07e7e451431432e32de0224b/action.yml#L158-L160)

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)
