MUST use for ANY query mentioning packages, monorepo, workspace, catalog, turbo, turborepo, or pnpm in a multi-package context. MUST use when sharing config (ESLint, tsconfig, prettier) across packages, fixing build order between packages, adding new packages, scoping CI installs/caching to changed packages, or debugging pnpm catalog version resolution. This skill OWNS all cross-package coordination problems — even when they look like build, CI, config, or dependency issues. If two or more packages interact in the query, this skill applies. Takes priority over other skills when the problem spans package boundaries.
80bcfa4Project-specific patterns for pnpm workspaces + Turborepo.
apps/ for deployables, packages/ for shared libraries.@org/ to avoid npm conflicts.pnpm-lock.yaml at root only. Never commit multiple lockfiles.../ to reach into other packages; import via dependencies.workspace:* protocol — Always for internal package dependencies.pnpm-workspace.yaml for large repos.^ for build dependencies — "dependsOn": ["^build"] for topological order.outputs — Without outputs, nothing gets cached."persistent": true, "cache": false.env or globalEnv.outputs in turbo.json silently disables caching for that task. The task runs every time and you won't get an error — just slow builds. Always verify outputs are configured.pnpm install does NOT respect --filter for installation — it always installs the entire workspace. Filtering only works for pnpm run and pnpm exec.workspace:* resolves to the CURRENT version of the local package, not "latest from npm". If the package has "version": "0.0.0", published packages will have "dependency": "0.0.0" — set meaningful versions before publishing.env field in turbo.json uses GLOB patterns, not exact matches. "env": ["API_*"] captures API_KEY, API_URL, etc. Forgetting this causes over-invalidation.turbo run build --filter=app-a builds app-a AND all its workspace dependencies. If a dependency fails, app-a won't build. Check transitive deps.packages/ requires running pnpm install before the workspace recognizes it. The new package also needs a valid package.json with name matching the workspace pattern.references in tsconfig.json) must match the workspace dependency graph. Mismatches cause type errors that only appear during tsc --build, not in IDE.turbo.json's globalDependencies invalidates ALL tasks when listed files change. Don't put frequently-changed files here — use task-level inputs instead.@source directives pointing to consuming packages' source directories, otherwise classes used in shared packages are purged.pnpm deploy (for production) copies a single package and its dependencies to a target directory. It does NOT run build scripts — build first, then deploy.outputs to be correct. If outputs are wrong, cached artifacts will be incomplete and downstream tasks break silently.persistent: true tasks prevent turbo run from exiting. Don't include persistent tasks in CI pipelines unless they have a timeout.| When you need... | Read | |------------------|------| | workspace.yaml, workspace: protocol, filtering | pnpm-workspace.md | | turbo.json schema, tasks, dependsOn | turborepo.md | | Cache outputs/inputs, remote cache setup | caching.md | | Directory layout, package naming, tsconfig | structure.md | | Tailwind v4 shared theme package | tailwind-v4.md |
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/monorepo · pinned to the source commit
git clone https://github.com/avibebuilder/claude-prime.git
cd claude-prime
git checkout 80bcfa48ccd599df9316954a24f9249be4c703fc
mkdir -p ".claude/skills/monorepo"
cp -r ".claude/starter-skills/monorepo" ".claude/skills/monorepo"Review the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
Scanner static-checks@0.1.0 · commit 80bcfa48ccd5. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint ccae6d912a41bfef
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b