vite-plugin-dts peer-depends on typescript: "*" but nothing installed it, so it crashed at module-load time before tsconfig.json was ever consulted. The earlier tsconfig.json fix alone was insufficient.
CLAUDE.md is now committed project guidance for future Claude Code sessions; CLAUDE.local.md stays gitignored for machine-local notes.