turbo-pipeline-tuninglisted
Install: claude install-skill voidcorp-core/void-harness
# turbo-pipeline-tuning
Use when adding or modifying tasks in `turbo.json`, or when the monorepo's CI/local build feels slow. Turborepo's value is incremental caching; getting `dependsOn`, `outputs`, and cache keys right is the difference between "build in 4s" and "build in 90s".
If you don't have `turbo.json` (single-app), this skill does not apply.
## The 4 fields that matter
```json
{
"tasks": {
"build": {
"dependsOn": ["^build"], // 1. order
"outputs": ["dist/**", ".next/**"],// 2. cache artifacts
"inputs": ["src/**", "tsconfig.json"], // 3. cache key (optional, smart default exists)
"cache": true // 4. on/off
}
}
}
```
90% of pipeline bugs come from getting one of these wrong.
## `dependsOn` cheatsheet
- `^build` — depends on `build` of upstream workspace packages (the package's own deps)
- `build` — depends on `build` of the SAME package (rare; usually you want `^build`)
- `lint` — depends on `lint` of the SAME package
- `^lint` — depends on `lint` of upstream (rare; lint usually doesn't depend on others)
- `db:generate` — explicit task name in another package
The mental model: `^X` = wait for X in workspace deps. Bare `X` = wait for X in this package.
## `outputs` — get this right or kill cache
If a task writes files Turborepo doesn't know about, the cache is **wrong** (next run reads stale outputs). Common misses:
- ✗ `tsc --noEmit` writes nothing → `"outputs": []` (empty array, NOT omitted)
-