Navigate, manage, and optimize monorepos
Monorepo navigator

Navigate, manage, and optimize monorepos. Covers Turborepo, Nx, pnpm workspaces, and Lerna.
--- name: "monorepo-navigator" description: "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." --- # 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. ---
Overview
Tier: POWERFUL Category: Engineering Domain: Monorepo Architecture / Build Systems
Manual install (npx, ZIP)
npx skills add alirezarezvani/claude-skills --skill monorepo-navigator -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/alirezarezvani/claude-skills/tar.gz/19392f7a0826 \
| tar -xz -C ~/.claude/skills --strip-components=3 claude-skills-19392f7a0826/engineering/skills/monorepo-navigatorNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/4d319cda6731f1ac4334/monorepo-navigator.zip" -OutFile "$env:TEMP\monorepo-navigator.zip"; Expand-Archive "$env:TEMP\monorepo-navigator.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md4.8 KBreferences/2 files · 12.7 KBscripts/1 file · 5.4 KB
Read the files here
alirezarezvani/
Show the full text98 lines
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
- Root CLAUDE.md defines the map — document every package, its purpose, and dependency rules
- Per-package CLAUDE.md defines the rules — what's allowed, what's forbidden, testing commands
- Always scope commands with --filter — running everything on every change defeats the purpose
- Remote cache is not optional — without it, monorepo CI is slower than multi-repo CI
- Changesets over manual versioning — never hand-edit package.json versions in a monorepo
- Shared configs in root, extended in packages — tsconfig.base.json, .eslintrc.base.js, jest.base.config.js
- Impact analysis before merging shared package changes — run affected check, communicate blast radius
- Keep packages/types as pure TypeScript — no runtime code, no dependencies, fast to build and type-check
| 1 | |
| 2 | name "monorepo-navigator" |
| 3 | description "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 | |
| 16 | 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. |
| 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 | |
| 34 | Use 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 | |
| 41 | Skip 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 | |
| 58 | Most 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 | |
| 68 | python3 scripts/monorepo_analyzer.py /path/to/monorepo |
| 69 | python3 scripts/monorepo_analyzer.py /path/to/monorepo --json |
| 70 | |
| 71 | |
| 72 | Also 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 | |
| 90 | **Root CLAUDE.md defines the map** — document every package, its purpose, and dependency rules |
| 91 | **Per-package CLAUDE.md defines the rules** — what's allowed, what's forbidden, testing commands |
| 92 | **Always scope commands with --filter** — running everything on every change defeats the purpose |
| 93 | **Remote cache is not optional** — without it, monorepo CI is slower than multi-repo CI |
| 94 | **Changesets over manual versioning** — never hand-edit package.json versions in a monorepo |
| 95 | **Shared configs in root, extended in packages** — tsconfig.base.json, .eslintrc.base.js, jest.base.config.js |
| 96 | **Impact analysis before merging shared package changes** — run affected check, communicate blast radius |
| 97 | **Keep packages/types as pure TypeScript** — no runtime code, no dependencies, fast to build and type-check |
| 98 |
Details
- Updated
- Aug 30, 2026
- License
- MIT
- Stars on the repo
- ★ 26,349
- Checked
- Source
- alirezarezvani/claude-skills ↗
- Creator
- alirezarezvani · 363 listings
Similar skills
See all →
SkillCreate branded architecture, architecture deltaDiagram design
SkillReview a PR against the Pascal architectural rulesReview architecture
SkillCreate and edit draw.io/diagrams.net diagramsDraw.io Architecture Studio
SkillCreate polished dark-themed architecture diagramsArchitecture Diagram Skill
SkillThe foundational knowledge distillation pattern for buildingLLM Wiki — Knowledge Distillation Pattern
SkillManage software complexity through deep modulesA Philosophy of Software Design FrameworkMore from alirezarezvani
SkillResume a paused experiment/ar:ar-resume — Resume Experiment
SkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboard
SkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loop
SkillRun a single experiment iteration/ar:run — Single Experiment Iteration
SkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experiment
Skill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberation