# Contributor handoff — istanbuljs/nyc

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

# Contributor handoff — istanbuljs/nyc

Scanned commit 908620475199fa7b9ea0ea8b21d6d8ad6921e3ae (2026-05-17). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin with the CLI/core boundary and the generated self-coverage test setup before making changes. Keep configuration, argument routing, source selection, subprocess ancestry, and report remapping consistent. Tests and CI were inspected, not executed, and this brief is a bounded source investigation rather than exhaustive verification. Future checks should use existing npm/TAP machinery only when execution is authorized, with particular care around cleanup and source-mutating fixtures.
- Read package.json, bin/nyc.js, index.js, and lib/config-util.js first: they define publication, orchestration, state ownership, and configuration dispatch. This handoff is based on inspected source and CI, with no tests executed. — [package.json#L5-L25](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/package.json#L5-L25) [bin/nyc.js#L17-L42](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/bin/nyc.js#L17-L42) [index.js#L41-L94](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/index.js#L41-L94) [lib/config-util.js#L40-L62](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/lib/config-util.js#L40-L62)
- Follow Standard JavaScript style and two-space, LF, UTF-8 EditorConfig settings; the lint script excludes snapshots, fixtures, and generated test build paths. — [package.json#L7-L7](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/package.json#L7-L7) [package.json#L26-L31](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/package.json#L26-L31) [.editorconfig#L10-L17](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/.editorconfig#L10-L17)
- Before running a targeted TAP file after authorized edits, refresh self-coverage through the existing instrument script: tests resolve generated runtime copies, and build-self-coverage copies package.json for generated hash-version lookup. — [package.json#L14-L14](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/package.json#L14-L14) [test/helpers/paths.js#L5-L7](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/helpers/paths.js#L5-L7) [test/wrap.js#L8-L8](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/wrap.js#L8-L8) [build-self-coverage.js#L36-L42](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/build-self-coverage.js#L36-L42)
- Select tests by boundary: argument routing uses test/process-args.js, offline filesystem behavior uses test/instrument.js, and subprocess CLI behavior uses test/nyc-integration.js; npm test invokes the broader configured lifecycle. — [test/process-args.js#L10-L38](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/process-args.js#L10-L38) [test/instrument.js#L231-L299](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/instrument.js#L231-L299) [test/nyc-integration.js#L180-L205](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/nyc-integration.js#L180-L205) [package.json#L8-L12](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/package.json#L8-L12)
- Treat cleanup and tests as mutating operations: npm-run-clean.js recursively removes artifact/cache paths, instrument tests temporarily chmod fixtures, and add-all-files tests create and remove source fixtures. — [npm-run-clean.js#L6-L18](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/npm-run-clean.js#L6-L18) [test/instrument.js#L47-L69](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/instrument.js#L47-L69) [test/add-all-files.js#L56-L78](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/add-all-files.js#L56-L78)
- Keep command names synchronized across parsing and dispatch, and preserve the distinction between nyc arguments and child arguments, including Node execArgv passed after --. — [lib/process-args.js#L4-L37](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/lib/process-args.js#L4-L37) [lib/config-util.js#L40-L44](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/lib/config-util.js#L40-L44) [bin/nyc.js#L20-L23](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/bin/nyc.js#L20-L23) [test/process-args.js#L26-L38](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/process-args.js#L26-L38)
- For cache/source-map edits, inspect Hash.salt(), filename hash tracking, contentHash persistence, and cached map reloading together; report filtering occurs after remapping only when excludeAfterRemap is enabled. — [lib/hash.js#L3-L28](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/lib/hash.js#L3-L28) [index.js#L96-L103](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/index.js#L96-L103) [index.js#L398-L403](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/index.js#L398-L403) [lib/source-maps.js#L56-L79](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/lib/source-maps.js#L56-L79)
- Account for platform limits when reporting verification: inspected CI covers Ubuntu Node 20/24 and Windows lts/*, signal tests bypass Windows, and configured 100% coverage checks are disabled there; none of these definitions proves a passing run. — [.github/workflows/ci.yaml#L10-L35](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/.github/workflows/ci.yaml#L10-L35) [test/report.js#L18-L23](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/test/report.js#L18-L23) [nyc.config.js#L16-L21](https://github.com/istanbuljs/nyc/blob/908620475199fa7b9ea0ea8b21d6d8ad6921e3ae/nyc.config.js#L16-L21)

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)
