Agent skill

monorepo-management

Manage monorepo architectures using Lerna, Turborepo, and Nx. Configure workspaces, dependency versioning, and cross-package testing.

Stars 151
Forks 20

Install this agent skill to your Project

npx add-skill https://github.com/aj-geddes/useful-ai-prompts/tree/main/skills/monorepo-management

SKILL.md

Monorepo Management

Table of Contents

Overview

Establish scalable monorepo structures that support multiple interdependent packages while maintaining build efficiency, dependency management, and deployment coordination.

When to Use

  • Multi-package projects
  • Shared libraries across services
  • Microservices architecture
  • Plugin-based systems
  • Multi-app platforms (web + mobile)
  • Workspace dependency management
  • Scaled team development

Quick Start

Minimal working example:

json
{
  "name": "monorepo-root",
  "version": "1.0.0",
  "private": true,
  "workspaces": ["packages/*", "apps/*"],
  "devDependencies": {
    "lerna": "^7.0.0",
    "turbo": "^1.10.0"
  },
  "scripts": {
    "lint": "npm run lint -r",
    "test": "npm run test -r",
    "build": "npm run build -r",
    "clean": "npm run clean -r"
  }
}

Reference Guides

Detailed implementations in the references/ directory:

Guide Contents
Npm Workspaces Configuration Npm Workspaces Configuration, Lerna Configuration, Turborepo Configuration, Nx Workspace Configuration
Monorepo Directory Structure Monorepo Directory Structure
Workspace Dependencies Workspace Dependencies
Lerna Commands Lerna Commands
Turborepo Commands Turborepo Commands
CI/CD for Monorepo CI/CD for Monorepo
Version Management Across Packages Version Management Across Packages

Best Practices

✅ DO

  • Use workspace protocols for dependencies
  • Implement shared tsconfig for consistency
  • Cache build outputs in CI/CD
  • Filter packages in CI to avoid unnecessary builds
  • Hoist common dependencies
  • Document workspace structure
  • Use consistent versioning strategy
  • Implement pre-commit hooks across workspace
  • Test cross-package dependencies
  • Version packages independently when appropriate

❌ DON'T

  • Create circular dependencies
  • Use hardcoded versions for workspace packages
  • Build all packages when only one changed
  • Forget to update lock files
  • Ignore workspace boundaries
  • Create tightly coupled packages
  • Skip dependency management
  • Use different tooling per package

Didn't find tool you were looking for?

Be as detailed as possible for better results