← ClaudeAtlas

working-in-monoreposlisted

Use when working in repositories with multiple subprojects (monorepos) where commands need to run from specific directories - prevents directory confusion, redundant cd commands, and ensures commands execute from correct locations
technicalpickles/pickled-claude-plugins · ★ 10 · DevOps & Infrastructure · score 74
Install: claude install-skill technicalpickles/pickled-claude-plugins
# Working in Monorepos ## Overview Helps Claude work effectively in monorepo environments by ensuring commands always execute from the correct location using absolute paths. **Core principle:** Bash shell state is not guaranteed between commands. Always use absolute paths. **Announce at start:** "I'm using the working-in-monorepos skill." ## When to Use Use this skill when: - Repository contains multiple subprojects (ruby/, cli/, components/\*, etc.) - Commands must run from specific directories - Working across multiple subprojects in one session Don't use for: - Single-project repositories - Repositories where all commands run from root ## The Iron Rule: Always Use Absolute Paths When executing ANY command in a monorepo subproject: ✅ **CORRECT:** ```bash cd /Users/josh/workspace/schemaflow/ruby && bundle exec rspec cd /Users/josh/workspace/schemaflow/cli && npm test ``` ❌ **WRONG:** ```bash # Relative paths (assumes current directory) cd ruby && bundle exec rspec # No cd prefix (assumes location) bundle exec rspec # Chaining cd (compounds errors) cd ruby && cd ruby && rspec ``` **Why:** You cannot rely on shell state. Absolute paths guarantee correct execution location regardless of where the shell currently is. ## Constructing Absolute Paths ### With .monorepo.json Config If `.monorepo.json` exists at repo root: 1. Read `root` field for absolute repo path 2. Read subproject `path` from `subprojects` map 3. Construct: `cd {root}/{path} && command` Exa