Skip to content

feat: add pnpm support - #26

Merged
pleb merged 3 commits into
mainfrom
feat/pnpm-support
Oct 22, 2026
Merged

pleb merged 3 commits into
mainfrom
feat/pnpm-support

Conversation

@pleb

@pleb pleb commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

What

verifyx detects whether a project uses npm or pnpm and uses that manager: scripts run with pnpm run, verifyx init installs with pnpm add, and the generated agent docs say pnpm verify. npm projects behave as before.

Why

verifyx hardcoded npm, which fails in pnpm repos: npm refuses to run scripts when devEngines names pnpm, and cannot install into catalog: or workspace: dependencies.

How

The manager comes from devEngines.packageManager, then packageManager, then lockfiles, nearest directory first. On pnpm, init requires 11.26+ or 12.4+ and declines skott's unneeded @parcel/watcher build, which pnpm 11+ otherwise fails on in every later install.

Notes

A fresh init with every check fails unused-code because knip flags skott and jscpd in ignoreDependencies; this predates the branch and is left for a follow-up.

Testing

Installed the packed tarball in clones of four existing projects and compared against published 1.3.0.

Project Manager Covered Result
Single-package library, no verify npm init (default, --defaults-only, all checks), upgrade-docs, verify locally, in CI and failing Same as 1.3.0
Multi-project app, existing verify npm verify locally, in CI and failing, upgrade-docs Same as 1.3.0
pnpm workspace, no verify pnpm 11.21 / 11.28 Version gate, init with the @parcel/watcher decline, frozen install, re-run, verify from root and sub-package Pass
pnpm workspace, existing verify pnpm 11.28 Upgraded from 1.3.0: verify locally, in CI and failing, upgrade-docs Pass

verifyx detects whether a project uses npm or pnpm and uses that
manager: verify:* and test scripts run with it, `verifyx init` installs
devDependencies with it, and the generated agent docs name its
commands. npm projects behave as before.

The manager comes from devEngines.packageManager, then packageManager,
then lockfiles, nearest directory first. On pnpm, init requires 11.26+
or 12.4+ and declines skott's unneeded @parcel/watcher build.
@pleb
pleb force-pushed the feat/pnpm-support branch from b530c11 to 1f0ba5e Compare October 21, 2026 06:10
@pleb
pleb marked this pull request as ready for review October 21, 2026 08:17
Comment thread src/checks/types.ts Outdated
The field only affects pnpm, and pnpm's own term for blocking a build
script is "deny". Rewrite its comment around the skott example so it
says why init denies @parcel/watcher's build on pnpm 11+.
@pleb
pleb merged commit d91e686 into main Oct 22, 2026
1 check passed
@pleb
pleb deleted the feat/pnpm-support branch October 22, 2026 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants