> turborepo
Assists with managing JavaScript/TypeScript monorepos using Turborepo. Use when configuring build pipelines, setting up caching, pruning workspaces for Docker, or optimizing CI/CD for monorepo projects. Trigger words: turborepo, turbo, monorepo, pipeline, workspace, remote cache, turbo.json.
curl "https://skillshub.wtf/TerminalSkills/skills/turborepo?format=md"Turborepo
Overview
Turborepo is a high-performance build system for JavaScript/TypeScript monorepos that intelligently caches task outputs, parallelizes execution across CPU cores, and ensures teams only rebuild what has changed. It integrates with npm, yarn, and pnpm workspaces.
Instructions
- When setting up a monorepo, define tasks in
turbo.jsonwithdependsOnfor ordering, use^prefix for topological dependencies (e.g.,"dependsOn": ["^build"]), and specifyoutputsfor cacheable artifacts. - When configuring caching, define
outputsarrays for each task (["dist/**", ".next/**"]), list all build-affecting environment variables inenvorglobalEnv, and set up Remote Cache for cross-developer sharing. - When filtering workspaces, use
--filter=@app/webto target specific packages,--filter=...[HEAD~1]for changed packages, andturbo run build --graphto visualize the dependency graph. - When optimizing Docker builds, use
turbo prune --scope=@app/webto generate a minimal Docker context containing only the targeted package and its dependencies. - When setting up CI/CD, enable Remote Cache for cross-PR cache sharing, use
--dry-run=jsonfor pipeline analysis, and leverage incremental builds that only rebuild packages affected by PR changes. - When organizing shared packages, create focused internal packages (
@repo/ui,@repo/db,@repo/auth) with sharedtsconfigand ESLint configs.
Examples
Example 1: Set up a new Turborepo monorepo
User request: "Initialize a monorepo with a Next.js app and shared UI library"
Actions:
- Set up pnpm workspace with
apps/webandpackages/uidirectories - Configure
turbo.jsonwithbuild,dev,lint, andtypechecktasks - Define task dependencies and cache outputs for each task
- Create shared
tsconfigbase inpackages/tsconfig
Output: A monorepo with parallel builds, intelligent caching, and shared configuration.
Example 2: Optimize Docker builds for deployment
User request: "Create a Dockerfile for deploying one service from our Turborepo monorepo"
Actions:
- Run
turbo prune --scope=@app/apito generate minimal context - Create multi-stage Dockerfile using the pruned output
- Install dependencies and build only the targeted package
- Configure cache mounts for faster rebuilds
Output: A lean Docker image containing only the service and its dependencies, not the full monorepo.
Guidelines
- Always define
outputsfor cacheable tasks; use emptyoutputs: []for side-effect-only tasks likelint. - List all environment variables in
envorglobalEnvthat affect build output. - Use
^prefix independsOnfor tasks that consume dependency outputs (build, typecheck). - Keep internal packages small and focused:
@repo/ui,@repo/db,@repo/auth. - Use
turbo prunefor Docker builds; never copy the entire monorepo into a container. - Set up Remote Cache in CI for cross-developer and cross-PR cache sharing.
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> xero-accounting
Integrate with the Xero accounting API to sync invoices, expenses, bank transactions, and contacts — and generate financial reports like P&L and balance sheet. Use when: connecting apps to Xero, automating bookkeeping workflows, syncing accounting data, or pulling financial reports programmatically.
> windsurf-rules
Configure Windsurf AI coding assistant with .windsurfrules and workspace rules. Use when: customizing Windsurf for a project, setting AI coding standards, creating team-shared Windsurf configurations, or tuning Cascade AI behavior.