CodeVetter · Repo Unpack · Contributor handoff
lerna/lerna
Tests and CI were inspected, not executed, and this brief provides bounded onboarding evidence rather than exhaustive coverage. Begin with contributor guidance, but resolve drift against manifests and executable source. Keep implementation, argument builders, public wrappers, and build entrypoints consistent. Release and e2e commands have material filesystem, process, Git, and registry side effects.
- Read AGENTS.md, CLAUDE.md, and CONTRIBUTING.md first, then verify against root package.json: this commit pins Node 26.10.0 and npm 12.1.0, despite older versions appearing in CLAUDE.md.
- Start a command change in its libs implementation and command.ts builder, inspect the published wrapper, and preserve exports/additional entrypoints when changing the public module surface.
- Read shared Command, Project, and graph enrichment before changing discovery: explicit lerna package globs select packages from the Nx graph and do not redefine the underlying workspace graph.
- Preserve ESM/CommonJS compatibility contracts: main exports a module.exports alias, selected command factories attach their classes, and package tests explicitly check synchronous require and ESM import behavior.
- For an authorized change, begin with the affected Nx test project; contributor guidance requires format, lint, unit, and integration checks and gates e2e behind other tests and build. None of these checks was executed in this investigation.
- Use the correct e2e target names from CONTRIBUTING.md and project configuration; modern task-runner e2e first prepares the local package, then runs a bash capture harness, while shared e2e defaults include retries.
- The build script must run at the workspace root and performs removal, Nx builds, npm install, and package copying; local registry configuration can affect later lockfile resolutions, so these are not source-inspection commands.
- Follow Oxlint module-boundary configuration and Oxfmt's 110-column style, use Conventional Commit scopes, and keep real releases in the gated GitHub workflow rather than invoking production publish locally.