Description:
Without a tsc --noEmit step in CI, TypeScript type errors in the SDK, Express API, or Next.js web app only surface at runtime or during manual developer builds. A dedicated type-check workflow ensures that any PR introducing type unsafety is blocked before merge, enforcing the type contract shared across all three TypeScript packages through tsconfig.base.json.
Acceptance Criteria:
Relevant Files:
.github/workflows/typecheck.yml — new workflow file to create
tsconfig.base.json — shared TypeScript base config extended by all packages
packages/sdk/tsconfig.json — SDK TypeScript config
apps/api/tsconfig.json — API TypeScript config
apps/web/tsconfig.json — web TypeScript config
package.json — npm workspace root
Description:
Without a
tsc --noEmitstep in CI, TypeScript type errors in the SDK, Express API, or Next.js web app only surface at runtime or during manual developer builds. A dedicated type-check workflow ensures that any PR introducing type unsafety is blocked before merge, enforcing the type contract shared across all three TypeScript packages throughtsconfig.base.json.Acceptance Criteria:
.github/workflows/typecheck.ymlthat triggers onpull_requesttargetingmainand on direct pushes tomainactions/setup-nodeand runsnpm cifrom the workspace root to install all package dependencies in one steptypecheckjob runsnpx tsc --noEmit -p packages/sdk/tsconfig.json,npx tsc --noEmit -p apps/api/tsconfig.json, andnpx tsc --noEmit -p apps/web/tsconfig.jsonas separate named steps so failure is attributable to a specific packagetscinvocation exits with a non-zero code and surfaces the compiler errors in the job logactions/cachekeyed onpackage-lock.jsonhash to keep cold-start times under 90 secondstsconfig.base.jsonis validated to have"strict": trueso the type-check gate is meaningful; the workflow step asserts this with ajqcheckREADME.mdlinking to the type-check workflow statusRelevant Files:
.github/workflows/typecheck.yml— new workflow file to createtsconfig.base.json— shared TypeScript base config extended by all packagespackages/sdk/tsconfig.json— SDK TypeScript configapps/api/tsconfig.json— API TypeScript configapps/web/tsconfig.json— web TypeScript configpackage.json— npm workspace root