Follow-up to #47 (pnpm ecosystem support), scoped out on purpose rather than half-verified.
What's different about yarn
Checked for real against the yarn corepack shim (resolves to Yarn Classic 1.22.22 on a real machine): yarn global outdated does not exist as a subcommand at all.
$ yarn global outdated --json
{"type":"error","data":"Invalid subcommand. Try \"add, bin, dir, ls, list, remove, upgrade, upgrade-interactive\""}
So the npm/pnpm pattern (<tool> outdated --global --json → one JSON object with current/wanted/latest) does not carry over. A working YarnEcosystem needs:
yarn global list --json (or similar) to get installed packages + versions — need to verify the real output shape (yarn's --json mode emits newline-delimited {"type":...,"data":...} objects, not a single clean object, based on the error output shape above).
- A separate registry lookup per installed package to find its latest version (there's no combined "outdated" command to lean on).
- Handling that yarn "global" resolves through Corepack, which may silently swap between Yarn Classic (1.x, what's default here) and Yarn Berry (2+, very different CLI and config model —
yarn global doesn't even exist the same way in Berry). Detecting which one is active before choosing a strategy is its own small problem.
Scope
Design + implement YarnEcosystem (or decide it isn't worth the complexity for global CLI tools, which are less commonly yarn-managed than pnpm/npm-managed) — after verifying the real command shapes directly, the same way #47's PnpmEcosystem was.
🤖 Filed by Claude Code during real verification work for #47.
Follow-up to #47 (pnpm ecosystem support), scoped out on purpose rather than half-verified.
What's different about yarn
Checked for real against the
yarncorepack shim (resolves to Yarn Classic 1.22.22 on a real machine):yarn global outdateddoes not exist as a subcommand at all.So the npm/pnpm pattern (
<tool> outdated --global --json→ one JSON object withcurrent/wanted/latest) does not carry over. A workingYarnEcosystemneeds:yarn global list --json(or similar) to get installed packages + versions — need to verify the real output shape (yarn's--jsonmode emits newline-delimited{"type":...,"data":...}objects, not a single clean object, based on the error output shape above).yarn globaldoesn't even exist the same way in Berry). Detecting which one is active before choosing a strategy is its own small problem.Scope
Design + implement
YarnEcosystem(or decide it isn't worth the complexity for global CLI tools, which are less commonly yarn-managed than pnpm/npm-managed) — after verifying the real command shapes directly, the same way #47'sPnpmEcosystemwas.🤖 Filed by Claude Code during real verification work for #47.