CodeVetter · Repo Unpack · Contributor handoff
pnpm/pnpm
Future work should first identify the owning product and the precise observable behavior being changed. Read repository policy alongside the implementation, because broad documentation and historical descriptions can lag current manifests or source. Tests and CI were inspected, not executed, and this bounded investigation provides no baseline pass result. For authorized implementation work, select meaningful scoped checks while preserving cross-version contracts, state ordering, and release-note targets.
- Read AGENTS.md and PHILOSOPHY.md plus the owning product's guide. New CLI features belong only in Rust v12; shared bugs require fixes in both supported implementations, while pnpr has no CLI counterpart to mirror.
- Prefer existing capabilities and shared abstractions before adding code. pnpr specifically directs reuse of pnpm crates and reserves pnpr-prefixed crates for registry-only logic.
- Run Rust tooling from the repository root and account for pnpm-managed Cargo source replacement. A fresh clone or changed Cargo.lock requires dependency installation before Cargo can resolve the replaced sources; cargo add is not the documented dependency-addition path.
- For authorized Rust validation, use pnpm test:rust-affected and add relevant pnpm-cli suite modules for user-visible engine changes: affected-crate selection alone does not necessarily include CLI e2e tests. Invoke root pnpm scripts to participate in task concurrency limits.
- Tests and CI in this brief were inspected, not executed. A future agent must establish actual selected-test results; smoke is explicitly insufficient to prove correctness, and TypeScript CLI e2e tests require rebuilding the bundled dist/pnpm.mjs after package changes.
- For pnpr embedding, choose APIs deliberately: router uses in-memory auth, router_with_auth can panic on invalid setup, and try_router variants return errors. Production serve loads persistent auth and recovers registry publication state before binding.
- User-visible changes require affected-version documentation and normally a changeset, with an exemption for bugs in unreleased features. Target pacquet for Rust CLI changes, pnpm plus affected packages for TypeScript fixes, and @pnpm/pnpr for server changes.
- Preserve reporter event payload/order for shared fixes and use real temporary-directory or mocked-registry fixtures before introducing test injection. Root README still calls the Rust port experimental, while product docs identify v12 as the development target; verify maturity from current policy and feature evidence.