pnpm@10.28.1 in the root package.json so CI and local installs stay aligned.
Workspaces
Package boundaries
These are enforced by code review rather than tooling. Keep them honest:apps/webmay depend on anypackages/*workspace.packages/resume-templatesdepends onpackages/resume-schema. The reverse must not happen — schema is the leaf.packages/mcpdepends onpackages/resume-schemaandpackages/resume-templates. Not onapps/*.- New shared shapes belong in
packages/resume-schema, not duplicated intoapps/web.
Turborepo
The rootpackage.json runs everything through Turbo:
Working with workspace:*
All cross-workspace deps use the workspace:* protocol in package.json. This means you must run pnpm install from the repo root, not from inside a workspace, or pnpm can’t resolve the link.
When you publish @magic-resume/mcp, pnpm rewrites workspace:* to the real version at pack time — no manual bumping needed.