CodeVetter · Repo Unpack · Contributor handoff
yarnpkg/berry
Begin with the relevant command, its core operation, and the owning plugin instead of treating this as a React application. Preserve generated-artifact boundaries, typed portable paths, and repository constraint conventions. Tests and CI were inspected, not executed; proposed checks below require separate execution authority, and the inventory remains bounded.
- Read the root and CLI manifests first: CLI version 4.18.1 differs from the root packageManager pin of Yarn 4.2.1, and standard plugin membership is declared in the CLI manifest.
- For installation changes, read InstallCommand and Project.install together; the command’s source explicitly directs reusable install customization into configuration/core because other commands also install projects.
- For protocol changes, keep NpmSemverResolver.getCandidates and getSatisfying consistent: both use selectMatchingVersions, whose prerelease fallback applies only to a literal '*' with no stable matches.
- For linker changes, honor Installer ordering and fetch-result ownership; custom data must tolerate absence and handle its own migration, and asynchronous holds require bounded concurrency.
- Follow strict TypeScript and the portable-path conversions already used by Workspace; ESLint requires semverUtils.validRange and httpUtils instead of direct semver.Range/validRange and global fetch.
- Dependency edits must account for yarn.config.cjs constraints: internal dependencies become workspace:^, most shared ranges are synchronized, lodash/inquirer are forbidden, and package metadata/prepack conventions are enforced.
- Edit source implementations rather than generated bundles, hooks, workers, and grammars; ESLint excludes those outputs, while CI conditionally regenerates PnP hooks and checks their diffs.
- Tests and CI were inspected, not executed. For later authorized validation, start with the affected Jest file or acceptance command suite using test:unit/test:integration, then use existing test:lint and typecheck:all scripts; mocked transport tests and explicitly skipped compatibility cases limit conclusions.