Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add soilmass/vibe-coding-plugin --skill "turbo"
Install specific skill from multi-skill repository
# Description
>
# SKILL.md
name: turbo
description: >
Turborepo monorepo setup β workspace config, pipeline tasks, caching, shared packages, dev orchestration
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Bash(npx turbo *)
Turbo
Purpose
Turborepo monorepo configuration and workspace management. Covers pipeline setup, caching
strategy, and shared package patterns. The ONE skill for monorepo orchestration.
Project State
- Has turbo.json: !
[ -f "turbo.json" ] && echo "yes" || echo "no" - Workspaces: !
[ -f "package.json" ] && node -e "const p=require('./package.json'); console.log(p.workspaces?.join(', ') || 'none')" 2>/dev/null || echo "none"
When to Use
- Setting up a monorepo with multiple apps/packages
- Configuring build pipelines with task dependencies
- Optimizing CI with remote caching
- Sharing code between multiple Next.js apps
When NOT to Use
- Single app project β overhead not justified
- Adding features to one app β use specific skills
- Deployment configuration β
deploy
Pattern
turbo.json pipeline
{
"$schema": "https://turbo.build/schema.json",
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": [".next/**", "dist/**"]
},
"dev": {
"cache": false,
"persistent": true
},
"lint": {
"dependsOn": ["^build"]
},
"test": {
"dependsOn": ["^build"]
}
}
}
Monorepo structure
apps/
web/ # Next.js app
docs/ # Documentation site
packages/
ui/ # Shared component library
config/ # Shared config (tsconfig, eslint)
db/ # Shared Prisma client
Shared package package.json
{
"name": "@repo/ui",
"exports": {
".": "./src/index.ts",
"./*": "./src/*.tsx"
},
"devDependencies": {
"@repo/config": "workspace:*"
}
}
Anti-pattern
// WRONG: caching dev server
{
"tasks": {
"dev": {
"outputs": [".next/**"]
// dev is persistent and should NOT be cached
}
}
}
Dev servers are long-running processes. Setting outputs on them causes
Turborepo to incorrectly cache and replay dev server output.
Common Mistakes
- Caching
devtask β persistent tasks must have"cache": false - Missing
^buildin dependsOn β packages build before apps that depend on them - Not using
workspace:*for internal dependencies - Forgetting
outputsarray β Turborepo can't cache without knowing what to store - Not setting up remote caching for CI β misses the biggest perf win
Checklist
- [ ]
turbo.jsonhas correct task dependencies with^prefix - [ ]
devtask has"cache": falseand"persistent": true - [ ] Build outputs specified for cacheable tasks
- [ ] Internal packages use
workspace:*protocol - [ ] Root
package.jsonhasworkspacesfield
Composes With
scaffoldβ scaffold creates the initial app that turbo wrapsdeployβ deployment pipelines use turbo build outputstestingβ turbo orchestrates test runs across packages
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.