turborepo

The Turborepo skill provides guidance on configuring monorepo build systems, task pipelines, caching strategies, and architectural boundaries using Turborepo.

45.6K
Installs
6
Use cases
5/10
Quality

Is turborepo safe to install?

Safe to install

Safe to install: our audit of turborepo's source files found 7 shell commands, 0 external URLs, file reads and writes (low risk). Every command and URL listed appears verbatim in the skill's source. The skill reads local configuration files like turbo.json and package.json to provide guidance. It does not perform network requests.

How we audit skills: our security review methodology.

Who is this skill for?

Developers and DevOps engineers managing JavaScript or TypeScript monorepos with Turborepo.

What can you do with it?

  • Configuring task pipelines and dependencies
  • Optimizing CI workflows
  • Debugging cache misses and hash inputs
  • Structuring monorepo packages and workspaces
  • Enforcing architectural boundaries between packages
  • Setting up environment variables for build tasks

How good is this skill?

Quality score: 5/10. The skill provides clear, actionable guidance with specific code examples for common Turborepo patterns and anti-patterns.

What does the skill file contain?

SKILL.md
# Turborepo Skill

Build system for JavaScript/TypeScript monorepos. Turborepo caches task outputs and runs tasks in parallel based on dependency graph.

## IMPORTANT: Package Tasks, Not Root Tasks

**Prefer package tasks over Root Tasks.**

When creating tasks/scripts/pipelines, you MUST default to package tasks:

1. Add the script to each relevant package's `package.json`
2. Register the task in root `turbo.json`
3. Root `package.json` only delegates via `turbo run <task>`

**DO NOT** put task logic in root `package.json` when it can live in packages. This defeats Turborepo's parallelization...

Frequently asked questions

Should I define task logic in the root package.json?

No. Root package.json should only delegate tasks to Turborepo using 'turbo run <task>'. Task logic belongs in individual package scripts.

How do I run tasks only for changed packages?

Use the '--affected' flag with 'turbo run <task> --affected' to compare against the default branch and include dependents.

When should I use 'turbo run' versus 'turbo'?

Use 'turbo run' for all scripts in package.json and CI pipelines. Use the 'turbo' shorthand only for one-off terminal commands.

How do I prevent tasks from bypassing the dependency graph?

Avoid using the '--parallel' flag and do not chain tasks with '&&'. Configure 'dependsOn' in turbo.json to let Turborepo orchestrate execution.

Data sourced from vercel/turborepo on GitHub. Install counts from skills.sh. The summary and security audit are derived from the skill's source files: every command and URL listed appears verbatim in the source.

Related skills