npm / yarn / pnpm supply-chain audit
Read-only audit of the workspace root. Do not modify any files.
0. Detect package manager
If no package.json, stop. Priority: packageManager → lockfile → default npm.
1. Tool version
Use semver comparison. Verify pinned packageManager meets threshold.
2. Lifecycle scripts disabled
pnpm 11+ ignores script settings in .npmrc and package.json#pnpm. pnpm 10 / yarn edge cases: references/managers.md [blocked].
3. Unsafe dependency protocols
Registry:
Scan workspace package.json files (dependencies, devDependencies, optionalDependencies, peerDependencies). Prefer workspace-member discovery (pnpm-workspace.yaml / root workspaces / lerna / rush) per references/protocols.md [blocked], then scan only those manifests. Fallback (may overmatch non-workspace manifests):
Safe values only: semver range, workspace:, patch:, npm: alias to semver. Flag everything else (git URLs, tarballs, user/repo shorthand, file:, link:, exec:, …) as path → name → value (protocol).
Protocol detection order and yarn posture details: references/protocols.md [blocked].
4. Minimum release age ≥ 3 days
3 days = 4320 minutes. npm uses days; yarn and pnpm use minutes.
Flag minimumReleaseAgeStrict: false on pnpm 11.
5. Report
Use PASS / FAIL only — no emojis.
For each FAIL, one paste-ready fix:
More fixes (tool upgrades, yarn git allow-list, pnpm 10): references/fix-snippets.md [blocked].
If all PASS: "All checks passed." and stop.


