turborepo
Turborepo monorepo build system and orchestration. Covers task pipelines, dependsOn syntax, caching configuration, remote cache, filtering, CI optimization, environment variables, workspace management, watch mode, package boundaries, and code generation. Use when configuring tasks, creating packages, setting up monorepo, sharing code between apps, running changed packages, debugging cache, optimizing CI, resolving workspace dependencies, enforcing package boundaries, or generating code.
What this skill does
# Turborepo ## Overview Build system for JavaScript/TypeScript monorepos. Caches task outputs and runs tasks in parallel based on dependency graph. Always create package tasks (not root tasks), use `turbo run` in scripts, and let `dependsOn` manage execution order. Configuration uses `turbo.json` (or `turbo.jsonc` for comments). **When to use:** Monorepo task orchestration, build caching, CI optimization, workspace dependency management, package boundary enforcement. **When NOT to use:** Single-package projects, non-JavaScript monorepos, projects without build steps. ## Quick Reference | Pattern | Syntax | Key Points | | ----------------------- | ------------------------------------------------ | ----------------------------------------------- | | Schema | `"$schema": "https://turborepo.dev/schema.json"` | Always include in turbo.json | | Dependency build | `"dependsOn": ["^build"]` | Build dependencies first | | Same-package task | `"dependsOn": ["codegen"]` | Run in same package first | | Specific package | `"dependsOn": ["pkg#task"]` | Named package's task | | Parallel lint/typecheck | Transit Nodes pattern | Cache invalidation without sequential execution | | Dev server | `"persistent": true, "cache": false` | Long-running, non-cacheable | | Sidecar tasks | `"with": ["api#dev"]` | Run tasks concurrently alongside | | Watch mode | `turbo watch dev` | Re-run on file changes | | Filter by package | `--filter=web` | Single package | | Filter with deps | `--filter=web...` | Package + dependencies | | Changed packages | `--affected` | Changed + dependents | | Debug cache | `--summarize` or `--dry` | See hash inputs | | Package config | `turbo.json` with `"extends": ["//"]` | Per-package overrides | | Composable config | `"extends": ["@repo/config"]` | Extend from any workspace package | | Extend arrays | `"$TURBO_EXTENDS$"` in arrays | Append to inherited config instead of replacing | | Env vars in hash | `"env": ["API_URL"]` | Cache invalidation on change | | Boundaries | `turbo boundaries` | Enforce package isolation and import rules | | Query graph | `turbo query` | GraphQL interface to package/task graphs | | Code generation | `turbo generate` | Scaffold new packages and components | | List packages | `turbo ls` | List all packages in monorepo | | Devtools | `turbo devtools` | Visual Package Graph and Task Graph explorer | | Docker pruned workspace | `turbo prune <pkg> --docker` | Minimal monorepo slice for container builds | ## Decision Trees ### Configure a Task ```text Configure a task? +-- Define task dependencies -> dependsOn in turbo.json +-- Lint/check-types (parallel) -> Transit Nodes pattern +-- Specify build outputs -> outputs key +-- Handle environment variables -> env key or globalEnv +-- Dev/watch tasks -> persistent: true, cache: false +-- Sidecar tasks (run alongside) -> with key +-- Package-specific config -> Package turbo.json with extends: ["//"] +-- Composable config -> extends from any workspace package +-- Global settings -> globalEnv, globalDependencies, cacheDir ``` ### Cache Problems ```text Cache problems? +-- Outputs not restored -> Missing outputs key +-- Unexpected cache misses -> Use --summarize or --dry to debug +-- Skip cache entirely -> --force or cache: false +-- Remote cache not working -> Check turbo login/link +-- Environment causing misses -> Var not in env key ``` ### Filter Packages ```text Filter packages? +-- By package name -> --filter=web +-- By directory -> --filter=./apps/* +-- Package + dependencies -> --filter=web... +-- Package + dependents -> --filter=...web +-- Changed + dependents -> --affected ``` ### Explore Repository ```text Explore repository? +-- List all packages -> turbo ls +-- Query dependency graph -> turbo query +-- Visualize graphs -> turbo devtools +-- Check boundary violations -> turbo boundaries +-- Generate new package -> turbo generate workspace +-- Run custom generator -> turbo generate run [name] ``` ## Common Mistakes | Mistake | Correct Pattern | | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | Putting build logic in root `package.json` scripts instead of per-package | Define scripts in each package and use `turbo run` in root to delegate | | Using `^build` without declaring `workspace:*` dependency | Add the dependency in `package.json` first; `^build` only triggers for declared dependencies | | Chaining turbo tasks with `&&` in package scripts | Use `dependsOn` in `turbo.json` to declare task ordering | | Not adding environment variables to the `env` key in turbo.json | Declare all build-affecting env vars in `env` so cache hashes correctly | | Using `--parallel` flag to bypass dependency ordering | Configure `dependsOn` correctly or use transit nodes for parallel tasks with proper cache invalidation | | Using outdated schema URL | Use `https://turborepo.dev/schema.json` in `$schema` field | | Overriding inherited arrays in package configs | Use `$TURBO_EXTENDS$` in arrays to append instead of replace | | Defining tasks in root `turbo.json` that belong to a specific package | Define tasks inside the package's own `turbo.json` with `extends: ["//"]` | | Using `turbo <task>` shorthand in scripts or CI | Use `turbo run <task>` in `package.json` scripts and CI pipelines; shorthand is for interactive use only | ## Delegation - **Monorepo structure exploration**: Use `Explore` agent to discover packages, workspace layout, and dependency relationships - **Pipeline configuration and optimization**: Use `Task` agent to set up turbo.json tasks, configure caching, and debug cache misses - **Monorepo architecture planning**: Use `Plan` agent to design package boundaries, shared libraries, and CI optimization strategy > If the `pnpm-workspace` skill is available, delegate workspace setup, dependency linking, catalogs, and `pnpm deploy` to it.
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.