Monorepo navigator

Navigate, manage, and optimize monorepos.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/monorepo-navigator, including the files SKILL.md points to.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit alirezarezvani/claude-skills/engineering/skills/monorepo-navigator#main ~/.claude/skills/monorepo-navigator

For one project only, change the path to .claude/skills/monorepo-navigator. This skill also uses turbo.json, package.json — copying SKILL.md alone won't be enough. See the folder on GitHub.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Monorepo navigator

Show the full text98 lines
namedescription
monorepo-navigatorNavigate, manage, and optimize monorepos. Covers Turborepo, Nx, pnpm workspaces, and Lerna. Cross-package impact analysis, selective builds/tests on affected packages, remote caching, dependency graph visualization, and structured multi-repo to monorepo migrations. Use when setting up a new monorepo, optimizing CI for a large workspace, debugging cross-package dependency issues, or planning a multi-repo consolidation.

Monorepo Navigator

Tier: POWERFUL
Category: Engineering
Domain: Monorepo Architecture / Build Systems


Overview

Navigate, manage, and optimize monorepos. Covers Turborepo, Nx, pnpm workspaces, and Lerna. Enables cross-package impact analysis, selective builds/tests on affected packages only, remote caching, dependency graph visualization, and structured migrations from multi-repo to monorepo. Includes Claude Code configuration for workspace-aware development.


Core Capabilities

  • Cross-package impact analysis — determine which apps break when a shared package changes
  • Selective commands — run tests/builds only for affected packages (not everything)
  • Dependency graph — visualize package relationships as Mermaid diagrams
  • Build optimization — remote caching, incremental builds, parallel execution
  • Migration — step-by-step multi-repo → monorepo with zero history loss
  • Publishing — changesets for versioning, pre-release channels, npm publish workflows
  • Claude Code config — workspace-aware CLAUDE.md with per-package instructions

When to Use

Use when:

  • Multiple packages/apps share code (UI components, utils, types, API clients)
  • Build times are slow because everything rebuilds when anything changes
  • Migrating from multiple repos to a single repo
  • Need to publish packages to npm with coordinated versioning
  • Teams work across multiple packages and need unified tooling

Skip when:

  • Single-app project with no shared packages
  • Team/project boundaries are completely isolated (polyrepo is fine)
  • Shared code is minimal and copy-paste overhead is acceptable

Tool Selection

Tool Best For Key Feature
Turborepo JS/TS monorepos, simple pipeline config Best-in-class remote caching, minimal config
Nx Large enterprises, plugin ecosystem Project graph, code generation, affected commands
pnpm workspaces Workspace protocol, disk efficiency workspace:* for local package refs
Lerna npm publishing, versioning Batch publishing, conventional commits
Changesets Modern versioning (preferred over Lerna) Changelog generation, pre-release channels

Most modern setups: pnpm workspaces + Turborepo + Changesets


Turborepo

→ See references/monorepo-tooling-reference.md for details

Workspace Analyzer

python3 scripts/monorepo_analyzer.py /path/to/monorepo
python3 scripts/monorepo_analyzer.py /path/to/monorepo --json

Also see references/monorepo-patterns.md for common architecture and CI patterns.

Common Pitfalls

Pitfall Fix
Running turbo run build without --filter on every PR Always use --filter=...[origin/main] in CI
workspace:* refs cause publish failures Use pnpm changeset publish — it replaces workspace:* with real versions automatically
All packages rebuild when unrelated file changes Tune inputs in turbo.json to exclude docs, config files from cache keys
Shared tsconfig causes one package to break all type-checks Use extends properly — each package extends root but overrides rootDir / outDir
git history lost during migration Use git filter-repo --to-subdirectory-filter before merging — never move files manually
Remote cache not working in CI Check TURBO_TOKEN and TURBO_TEAM env vars; verify with turbo run build --summarize
CLAUDE.md too generic — Claude modifies wrong package Add explicit "When working on X, only touch files in apps/X" rules per package CLAUDE.md

Best Practices

  1. Root CLAUDE.md defines the map — document every package, its purpose, and dependency rules
  2. Per-package CLAUDE.md defines the rules — what's allowed, what's forbidden, testing commands
  3. Always scope commands with --filter — running everything on every change defeats the purpose
  4. Remote cache is not optional — without it, monorepo CI is slower than multi-repo CI
  5. Changesets over manual versioning — never hand-edit package.json versions in a monorepo
  6. Shared configs in root, extended in packages — tsconfig.base.json, .eslintrc.base.js, jest.base.config.js
  7. Impact analysis before merging shared package changes — run affected check, communicate blast radius
  8. Keep packages/types as pure TypeScript — no runtime code, no dependencies, fast to build and type-check
1---
2name: "monorepo-navigator"
3description: "Navigate, manage, and optimize monorepos. Covers Turborepo, Nx, pnpm workspaces, and Lerna. Cross-package impact analysis, selective builds/tests on affected packages, remote caching, dependency graph visualization, and structured multi-repo to monorepo migrations. Use when setting up a new monorepo, optimizing CI for a large workspace, debugging cross-package dependency issues, or planning a multi-repo consolidation."
4---
5 
6# Monorepo Navigator
7 
8**Tier:** POWERFUL
9**Category:** Engineering
10**Domain:** Monorepo Architecture / Build Systems
11 
12---
13 
14## Overview
15 
16Navigate, manage, and optimize monorepos. Covers Turborepo, Nx, pnpm workspaces, and Lerna. Enables cross-package impact analysis, selective builds/tests on affected packages only, remote caching, dependency graph visualization, and structured migrations from multi-repo to monorepo. Includes Claude Code configuration for workspace-aware development.
17 
18---
19 
20## Core Capabilities
21 
22- **Cross-package impact analysis** — determine which apps break when a shared package changes
23- **Selective commands** — run tests/builds only for affected packages (not everything)
24- **Dependency graph** — visualize package relationships as Mermaid diagrams
25- **Build optimization** — remote caching, incremental builds, parallel execution
26- **Migration** — step-by-step multi-repo → monorepo with zero history loss
27- **Publishing** — changesets for versioning, pre-release channels, npm publish workflows
28- **Claude Code config** — workspace-aware CLAUDE.md with per-package instructions
29 
30---
31 
32## When to Use
33 
34Use when:
35- Multiple packages/apps share code (UI components, utils, types, API clients)
36- Build times are slow because everything rebuilds when anything changes
37- Migrating from multiple repos to a single repo
38- Need to publish packages to npm with coordinated versioning
39- Teams work across multiple packages and need unified tooling
40 
41Skip when:
42- Single-app project with no shared packages
43- Team/project boundaries are completely isolated (polyrepo is fine)
44- Shared code is minimal and copy-paste overhead is acceptable
45 
46---
47 
48## Tool Selection
49 
50| Tool | Best For | Key Feature |
51|---|---|---|
52| **Turborepo** | JS/TS monorepos, simple pipeline config | Best-in-class remote caching, minimal config |
53| **Nx** | Large enterprises, plugin ecosystem | Project graph, code generation, affected commands |
54| **pnpm workspaces** | Workspace protocol, disk efficiency | `workspace:*` for local package refs |
55| **Lerna** | npm publishing, versioning | Batch publishing, conventional commits |
56| **Changesets** | Modern versioning (preferred over Lerna) | Changelog generation, pre-release channels |
57 
58Most modern setups: **pnpm workspaces + Turborepo + Changesets**
59 
60---
61 
62## Turborepo
63→ See references/monorepo-tooling-reference.md for details
64 
65## Workspace Analyzer
66 
67```bash
68python3 scripts/monorepo_analyzer.py /path/to/monorepo
69python3 scripts/monorepo_analyzer.py /path/to/monorepo --json
70```
71 
72Also see `references/monorepo-patterns.md` for common architecture and CI patterns.
73 
74## Common Pitfalls
75 
76| Pitfall | Fix |
77|---|---|
78| Running `turbo run build` without `--filter` on every PR | Always use `--filter=...[origin/main]` in CI |
79| `workspace:*` refs cause publish failures | Use `pnpm changeset publish` — it replaces `workspace:*` with real versions automatically |
80| All packages rebuild when unrelated file changes | Tune `inputs` in turbo.json to exclude docs, config files from cache keys |
81| Shared tsconfig causes one package to break all type-checks | Use `extends` properly — each package extends root but overrides `rootDir` / `outDir` |
82| git history lost during migration | Use `git filter-repo --to-subdirectory-filter` before merging — never move files manually |
83| Remote cache not working in CI | Check TURBO_TOKEN and TURBO_TEAM env vars; verify with `turbo run build --summarize` |
84| CLAUDE.md too generic — Claude modifies wrong package | Add explicit "When working on X, only touch files in apps/X" rules per package CLAUDE.md |
85 
86---
87 
88## Best Practices
89 
901. **Root CLAUDE.md defines the map** — document every package, its purpose, and dependency rules
912. **Per-package CLAUDE.md defines the rules** — what's allowed, what's forbidden, testing commands
923. **Always scope commands with --filter** — running everything on every change defeats the purpose
934. **Remote cache is not optional** — without it, monorepo CI is slower than multi-repo CI
945. **Changesets over manual versioning** — never hand-edit package.json versions in a monorepo
956. **Shared configs in root, extended in packages** — tsconfig.base.json, .eslintrc.base.js, jest.base.config.js
967. **Impact analysis before merging shared package changes** — run affected check, communicate blast radius
978. **Keep packages/types as pure TypeScript** — no runtime code, no dependencies, fast to build and type-check
98 

Discussion

Alternatives

Also in ArchitectureSee all 533 in Development →
A Philosophy of Software Design FrameworkManage software complexity through deep modules, information hiding, and strategic programming. Use when the user mentions "module design", "API too complex", "shallow class", "complexity budget", "strategic vs tactical", "deep module", "information leakage", "pass-through method", "this code is over-engineered", or "simplify this design". Also trigger when reviewing an interface for simplicity, evaluating whether an abstraction is pulling its weight, deciding whether a comment is worth writing, or choosing between general-purpose and special-purpose approaches. Covers deep vs shallow modules, red flags for complexity, and comments as design documentation. For code quality, see clean-code. For architecture boundaries, see clean-architecture.Coding · MITArchitecture optimizationGuided journey from a working codebase grown slow and tangled to one measurably fast, cleanly bounded, and readable. Orchestrates eight skills phase by phase - working-with-legacy-code, clean-architecture, software-design-philosophy, refactoring-patterns, system-design, ddia-systems, release-it, pragmatic-programmer - every phase carries its method inline so it runs standalone, asking the user questions at every decision point and recording results in the project docs/ folder (PERFORMANCE.md, ARCHITECTURE.md, ARCHITECTURE-OPTIMIZATION-PLAN.md) so the journey resumes across sessions. Use when the user wants to make an app faster, untangle drifted boundaries, fix slow endpoints and queries, or says ''it works but it is slow and getting worse''. For an untested prototype, improve-code-quality; for an aged codebase you fear to touch, remove-technical-debt; for greenfield structure, design-code-architecture; for marketing-site page speed, improve-website. For one framework in isolation, invoke that skill directly.Coding · MITArchitecture & UI/UX AuditIt asks an AI to assume the persona of a Senior Frontend Engineer & Product Reviewer to perform a high-level critique of a Next.js (App Router) project. Instead of writing code, the prompt focuses on evaluating the architecture (folder structure, scalability), UI/UX (hierarchy, consistency), and design system (component reuse) of a developer community platform to identify anti-patterns and suggest high-impact improvements.Coding · CC0-1.0Candle pattern trading chart generatorGenerate a chart showing buy below and sell above candle patterns to indicate optimal trading points.Coding · CC0-1.0