claude/.claude/tasks
Bastien Chanot 1f2c1cc6e7 fix(install-plugins): guarantee npm present, not just node>=22
BLK-013 fix-forward. Step 1 checked `node >=22` but never verified npm.
On a host where node was already recent, NODE_OK short-circuited the
installer and npm was never touched — yet GSD (gsd-pi) and ctx7 install
via `npm install -g`, so a missing npm made `make plugin` die Error 127
mid-run (distro `apt install nodejs` can ship npm as a separate package).

Add an unconditional npm guard right after the Node block:
corepack enable npm → distro package-manager install fallback → fatal
exit 1 with an actionable message if still absent. Happy path (npm
present) skips the whole block: zero behavior change on healthy machines.

shellcheck clean (only pre-existing SC1091 infos), bash -n OK. Fresh
npm-less apt host validation still pending. Closes TODO (a) 2026-06-30.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VeBXkDr74N9whdiJyjzyVN
2026-07-01 21:07:38 +02:00
..
2026-06-26-coupled-capitalize-invariant.md chore(tasks): coupled-capitalize invariant implementation plan (frozen) 2026-06-26 13:21:05 +02:00
2026-06-27-doc-sync-coupled.md chore(memory): BDR-036 + LRN-058..060 + EVAL-008 — doc-sync coupled close 2026-06-27 03:22:12 +02:00
rtk-upstream-issue.md feat(memory): introduce .claude/{tasks,memory,audits}/ governance layout 2026-04-23 16:06:00 +02:00
TODO.md fix(install-plugins): guarantee npm present, not just node>=22 2026-07-01 21:07:38 +02:00