turborepolisted
Install: claude install-skill shipshitdev/skills
# Turborepo Skill
Build system guidance for JavaScript and TypeScript monorepos using Turborepo.
## Core Rules
1. Create package tasks, not root tasks.
2. Register task behavior in `turbo.json`.
3. Let root `package.json` delegate with `turbo run <task>`.
4. Use `turbo <task>` only for interactive one-off terminal commands, not in committed code.
5. Declare workspace dependencies in `package.json` so `dependsOn: ["^build"]` can resolve actual package relationships.
## Baseline Pattern
```json
// apps/web/package.json
{
"scripts": {
"build": "next build",
"lint": "eslint .",
"test": "vitest"
}
}
```
```json
// turbo.json
{
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**", "!.next/cache/**"]
},
"lint": {},
"test": {
"dependsOn": ["build"]
}
}
}
```
```json
// root package.json
{
"scripts": {
"build": "turbo run build",
"lint": "turbo run lint",
"test": "turbo run test"
}
}
```
## Quick Routing
Read only the reference files needed for the task:
| Need | Read |
| --- | --- |
| Task definitions, `dependsOn`, `outputs`, `persistent`, package overrides | `references/configuration/RULE.md`, `references/configuration/tasks.md` |
| Global options, daemon, cacheDir, env mode | `references/configuration/global-options.md` |
| Cache misses or remote cache | `references/caching/RULE.md`, `references/caching/gotchas.md`, `references/caching/remote-cache.md` |
| Env vars, `.env