turborepo

Configure Turborepo task pipelines, caching, and filtering for JavaScript monorepos.

Updated Mar 29, 2026
One-click install
npx skills add https://github.com/Divith123/Flamingo --skill turborepo-divith123
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: turborepo
Source: https://github.com/Divith123/Flamingo/tree/main/.agents/skills/turborepo
Command: npx skills add https://github.com/Divith123/Flamingo --skill turborepo-divith123

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up and maintaining a Turborepo monorepo involves many subtle configuration decisions—task dependencies, cache outputs, environment variable hashing, and CI filtering—where small mistakes silently break caching or parallelization. This Skill provides decision trees, anti-pattern detection, and reference documentation to configure turbo.json correctly the first time. ## Core Features & Use Cases - Task Pipeline Configuration: Guides creation of package tasks (never root tasks) with correct dependsOn, outputs, inputs, and env declarations in turbo.json. - Cache Debugging & Optimization: Diagnoses cache misses, configures remote caching, and explains hash inputs including the globalConfiguration future flag behavior. - Filtering & CI Setup: Covers --affected and --filter syntax for running only changed packages, plus GitHub Actions and Vercel deployment workflows. - Use Case: When adding a new lint task to a monorepo, the Skill ensures scripts live in each package's package.json, the task is registered in root turbo.json, and transit nodes are used when parallel execution with correct cache invalidation is needed. ## Quick Start Ask the assistant to configure a build and test pipeline in turbo.json for your monorepo with proper caching and dependency ordering.

Frequently Asked Questions about turborepo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure tasks in turbo.json for a monorepo?▼

Add scripts to each package's package.json, register the task in root turbo.json with dependsOn and outputs, and make root package.json delegate via turbo run. Never put task logic in root scripts, as that defeats parallelization and caching.

How do I run only changed packages in Turborepo CI?▼

Use turbo run build --affected, which compares your branch against the default branch and runs tasks in changed packages plus their dependents. Ensure your CI fetches enough git history (fetch-depth of at least 2) for the comparison to work.

Why is my Turborepo cache not working?▼

Common causes include missing outputs keys for file-producing tasks, environment variables not declared in env, or .env files absent from inputs. Use --summarize or --dry to inspect hash inputs and identify what is invalidating the cache.

What is the difference between dependsOn ^build and build in turbo.json?▼

The caret syntax ^build runs the build task in dependency packages first, while plain build runs it in the same package. Use ^build for build ordering across packages and pkg#task to target a specific package's task.

Should I use turbo or turbo run in package.json scripts?▼

Always use turbo run in package.json scripts, CI workflows, and any committed code. The turbo shorthand is only intended for one-off commands typed directly in a terminal.

When should I use Package Configurations instead of root turbo.json overrides?▼

Use a turbo.json with extends ["//"] inside a package when multiple packages need different task settings, such as framework-specific outputs. This keeps root turbo.json clean and configuration close to the code it affects.