CI run 455/456 surfaced:
src/features/player/components/AudioVisualizer.tsx(22,8): error TS2307:
Cannot find module '@veza/design-system/tokens-generated' or its
corresponding type declarations.
Root cause: the sprint 2 design-system migration (commits a25ad2e0 →
ab923def) replaced manual src/ exports with Style Dictionary output in
packages/design-system/dist/. That `dist/` is gitignored — by design,
since it's generated artifact — but no step in the CI workflows runs
the generator before tsc/vite/vitest fire.
apps/web imports `@veza/design-system/tokens-generated`, which the
package's `exports` field maps to `./dist/tokens.ts`. With dist/ empty
on a fresh checkout, the import resolves to undefined → TS2307.
Two-pronged fix:
(1) packages/design-system/package.json — add a `prepare` script that
runs Style Dictionary. npm fires `prepare` after `npm install`
AND `npm ci`, so any workspace install populates dist/ without an
extra workflow change. Also covers fresh dev clones.
(2) .github/workflows/{ci.yml,e2e.yml} — explicit
`npm run build:tokens --workspace=@veza/design-system` step
immediately after `npm ci`. Belt-and-suspenders against any npm
version where `prepare` is silent or filtered (lifecycle script
skipping has burned us before — `--ignore-scripts` flags, etc.).
Verified locally:
$ rm -rf packages/design-system/dist/
$ npm run build:tokens --workspace=@veza/design-system
✓ Style Dictionary build complete.
$ cd apps/web && npx tsc --noEmit
(clean)
SKIP_TESTS=1 — config-only changes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>