Skip to content

/turborepo-monorepo

Provides comprehensive Turborepo monorepo management guidance for TypeScript/JavaScript projects. Use when creating Turborepo workspaces, configuring turbo.json tasks, setting up Next.js/NestJS apps, managing test pipelines (Vitest/Jest), configuring CI/CD, implementing remote

shell
$ npx -y skills add giuseppe-trisciuoglio/developer-kit --skill turborepo-monorepo --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/turborepo-monorepo
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Provides comprehensive Turborepo monorepo management guidance for TypeScript/JavaScript projects. Use when creating Turborepo workspaces, configuring turbo.json tasks, setting up Next.js/NestJS apps, managing test pipelines (Vitest/Jest), configuring CI/CD, implementing remote

SKILL.md

turborepo-monorepo.SKILL.md
name: turborepo-monorepo
description: Provides comprehensive Turborepo monorepo management guidance for TypeScript/JavaScript projects. Use when creating Turborepo workspaces, configuring turbo.json tasks, setting up Next.js/NestJS apps, managing test pipelines (Vitest/Jest), configuring CI/CD, implementing remote caching, or optimizing build performance in monorepos
allowed-tools: Read, Write, Edit, Bash, Glob, Grep

Turborepo Monorepo

Overview

Provides guidance for Turborepo monorepo management: workspace creation, `turbo.json` task configuration, Next.js/NestJS integration, testing pipelines (Vitest/Jest), CI/CD setup, and build performance optimization.

When to Use

  • Create or initialize Turborepo workspaces
  • Configure `turbo.json` tasks with dependencies and outputs
  • Set up Next.js/NestJS apps in monorepo structure
  • Configure Vitest/Jest test pipelines
  • Build CI/CD workflows (GitHub Actions, GitLab CI)
  • Implement remote caching with Vercel Remote Cache
  • Optimize build times and cache hit ratios
  • Debug task dependency or cache issues
  • Migrate from other monorepo tools to Turborepo

Instructions

Workspace Creation

1. **Create a new workspace:**

   pnpm create turbo@latest my-workspace
   cd my-workspace

2. **Initialize in existing project:**

   pnpm add -D -w turbo

3. **Create turbo.json in root** (minimal config):

   {
     "$schema": "https://turborepo.dev/schema.json",
     "pipeline": {
       "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] },
       "lint": { "outputs": [] },
       "test": { "dependsOn": ["build"], "outputs": ["coverage/**"] }
     }
   }

4. **Add scripts to root package.json:**

   { "scripts": { "build": "turbo run build", "dev": "turbo run dev", "lint": "turbo run lint", "test": "turbo run test", "clean": "turbo run clean" } }

5. **Validate task graph before CI:**

   turbo run build --dry-run --filter=...  # Verify task execution order

Task Configuration

1. **Configure tasks** in `turbo.json`:

   { "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] }, "test": { "dependsOn": ["build"], "outputs": ["coverage/**"] }, "lint": { "outputs": [] } } }

2. **Run tasks:**

   turbo run build                      # All packages
   turbo run lint test build           # Multiple tasks
   turbo run build --filter=web       # Specific package

3. **Parallel type checking** (use transit nodes to avoid cache issues):

   { "pipeline": { "transit": { "dependsOn": ["^transit"] }, "typecheck": { "dependsOn": ["transit"] } } }

4. **Validate before committing:**

   turbo run build --dry-run  # Check task order and affected packages

Framework Integration

**Next.js:** outputs `".next/**"` and env `["NEXT_PUBLIC_*"]` - See [references/nextjs-config.md](references/nextjs-config.md)

**NestJS:** outputs `"dist/**"`, dev tasks with `cache: false, persistent: true` - See [references/nestjs-config.md](references/nestjs-config.md)

Testing Setup

1. **Vitest configuration:**

   {
     "pipeline": {
       "test": {
         "outputs": [],
         "inputs": ["$TURBO_DEFAULT$", "vitest.config.ts"]
       },
       "test:watch": {
         "cache": false,
         "persistent": true
       }
     }
   }

2. **Run affected tests:**

   turbo run test --filter=[HEAD^]

See [references/testing-config.md](references/testing-config.md) for complete testing setup.

Package Configurations

1. **Create package-specific turbo.json:**

   {
     "extends": ["//"],
     "tasks": {
       "build": {
         "outputs": ["$TURBO_EXTENDS$", ".next/**"]
       }
     }
   }

See [references/package-configs.md](references/package-configs.md) for detailed package configuration patterns.

CI/CD Setup

1. **GitHub Actions with validation checkpoints:**

   - name: Install dependencies
     run: pnpm install

   - name: Validate affected packages (dry-run)
     run: pnpm turbo run build --filter=[HEAD^] --dry-run
     # VALIDATE: Review output to confirm only expected packages will build

   - name: Run tests
     run: pnpm run test --filter=[HEAD^]

   - name: Build affected packages
     run: pnpm run build --filter=[HEAD^]

   - name: Verify cache hits
     run: pnpm turbo run build --filter=[HEAD^] --dry-run | grep "Cache"
     # VALIDATE: Confirm cache hits for unchanged packages

2. **Remote cache setup:**

   # Login to Vercel
   npx turbo login

   # Link repository
   npx turbo link

See [references/ci-cd.md](references/ci-cd.md) for complete CI/CD setup examples.

Task Properties Reference

| Property | Description | Example | |----------|-------------|---------| | `dependsOn` | Tasks that must complete first | `["^build"]` - dependencies first | | `outputs` | Files/folders to cache | `["dist/**"]` | | `inputs` | Files for cache hash | `["src/**/*.ts"]` | | `env` | Environment variables affecting hash | `["DATABASE_URL"]` | | `cache` | Enable/disable caching | `true` or `false` | | `persistent` | Long-running task | `true` for dev servers | | `outputLogs` | Log verbosity | `"full"`, `"new-only"`, `"errors-only"` |

Dependency Patterns

  • `^task` - Run task in dependencies first (topological order)
  • `task` - Run task in same package first
  • `package#task` - Run specific package's task

Filter Syntax

| Filter | Description | |--------|-------------| | `web` | Only web package | | `web...` | web + all dependencies | | `...web` | web + all dependents | | `...web...` | web + deps + dependents | | `[HEAD^]` | Packages changed since last commit | | `./apps/*` | All packages in apps/ |

Best Practices

Performance Optimization

1. **Use specific outputs** - Only cache what's needed 2. **Fine-tune inputs** - Exclude files that don't af

Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withdeveloper-kit

Modular plugin marketplace for Claude Code and agentic CLIs, with validated, spec-driven skills, agents, commands, and workflows for Java, TypeScript, Python, PHP, AWS, and AI.

Get the whole plugin, auto-invoked
Stats
315
Stars
0
Views
37
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
9mo ago
Created

Repo: giuseppe-trisciuoglio/developer-kit

Other skills on developer-kit.