Status: Proposed Priority: Low Created: 2026-08-18 Blocked on: Naming decision — memory Q4
turbo.json declares:
"check-types": { "dependsOn": ["^check-types"] }But every package defines the script as typecheck:
"typecheck": "tsc --noEmit" // packages/draftly, apps/webNothing connects the two. turbo run check-types matches no tasks and exits successfully
having done nothing — the failure mode is a silent pass, which is worse than an error.
Consequently there is no single root command that type-checks the workspace, and no root
typecheck script in the root package.json either. Type checking currently only happens
via editor feedback and next build.
Pick one name and use it consistently.
- Choose the name.
typecheckmatches the existing package scripts and is the more common convention;check-typesmatches the currentturbo.jsonand Turborepo's own starter templates. Recommendation:typecheck— it changes one line of config rather than two package files, and matches what is already written in the packages. - Align
turbo.json— rename the task, keepdependsOn: ["^typecheck"], and addoutputs: []so it caches correctly (a type check produces no artifacts but its success is cacheable). - Add a root script:
"typecheck": "turbo run typecheck". - Verify it actually runs — introduce a deliberate type error, confirm a non-zero exit, then revert. Given the failure mode here was a silent pass, this step is the important one.
- Document the command in
CONTRIBUTING.mdandbuild-and-tooling.md.
Consider adding it to CI alongside lint and build, if CI configuration exists or is added later.
turbo.jsonpackage.json(root)packages/draftly/package.json,apps/web/package.json— only ifcheck-typeswinsCONTRIBUTING.md,artifacts/architecture/build-and-tooling.md
-
bun run typecheckfrom the root type-checks every package - A deliberately introduced type error causes a non-zero exit
- Task name is identical in
turbo.jsonand everypackage.json - Docs updated; memory Q4 closed
- Small and self-contained — a good first task for a session with spare capacity.