pnpmlisted
Install: claude install-skill louisbrulenaudet/monorepo-template
# pnpm Skill
Fast, disk-efficient package manager for this **pnpm + Turborepo** monorepo. pnpm owns the dependency graph, lockfile, and supply-chain policy; Turborepo owns task orchestration (`build`, `lint`, `dev`, `--affected`).
## Division of Labor
| Concern | Tool | Agent action |
|---------|------|--------------|
| Add/remove/update deps | **pnpm** | `pnpm add`, `pnpm remove`, `pnpm up` |
| Shared version pins | **pnpm catalog** | Edit `pnpm-workspace.yaml` `catalog:` |
| Internal packages | **pnpm workspace** | `"@repo/foo": "workspace:*"` |
| Build/lint/dev/deploy | **Turborepo** | `pnpm turbo run <task>` or `make <task>` |
| Affected CI | **Turborepo** | `pnpm turbo run <task> --affected` |
Do **not** put task logic in root `package.json` when it belongs in packages - see the `turborepo` skill.
## This Repo
| Setting | Value |
|---------|-------|
| pnpm version | `11.10.0` (pinned via `packageManager` in root `package.json`) |
| Workspace globs | `apps/*`, `packages/*` in `pnpm-workspace.yaml` |
| Install (local) | `make install` → `pnpm install` |
| Install (CI) | `make install-frozen` → `pnpm install --frozen-lockfile` |
| Update all deps | `make update` → `pnpm update --recursive --latest` (bumps catalog entries in `pnpm-workspace.yaml`) |
| Lockfile | Single `pnpm-lock.yaml` (`shared-workspace-lockfile=true`) |
After adding a new app under `apps/`, run `make install` before turbo commands.
## Workspace Protocol
Always link internal packages with the works