← ClaudeAtlas

virtual-monorepolisted

Invoke when the user wants Claude Code to work across MULTIPLE related repos at once — mentions of a "virtual monorepo", "multi-repo workspace", "give Claude my whole system", "wire up my microservices/frontend+backend together", stale workspace symlinks, or "regenerate the workspace CLAUDE.md". Sets up a symlink-based workspace directory with a system-level CLAUDE.md written by reading each repo once. Strictly one-shot Bash (mkdir, ln -s, write file); never builds an index, database, daemon, or per-file catalog.
PrecisionUtilityGuild/virtual-monorepo · ★ 1 · Data & Documents · score 72
Install: claude install-skill PrecisionUtilityGuild/virtual-monorepo
# Virtual Monorepo A "virtual monorepo" is a parent directory holding symlinks to several real repos plus a workspace-level `CLAUDE.md` that explains how the system fits together. Claude Code works one repo at a time; this convention gives it the whole system in one working tree. You (the model) do all setup and maintenance with plain Bash. There is **no CLI binary, no index, no daemon**. ## Refuse permanently Never, under any framing, create: a background process/watcher, a database or SQLite file, a JSON/YAML index of the repos, or a per-file catalog. A repo summary is **one paragraph of prose**, not a file listing. If asked to "keep it in sync automatically" or "index the code," decline and explain: the workspace is regenerated on demand by re-reading, one shot. This constraint is the product. Prior in-house attempts at an index measured no better than plain `grep` — do not rebuild it. ## 1. Discover Given a starting repo or directory, find candidate sibling repos and **propose the set before creating anything**. Algorithm: scan the parent dir **one level down** for entries containing a `.git` (dir or file — a `.git` *file* means a worktree, still counts). Enumerate **all** candidates first, then **prune** any candidate whose `realpath` is contained inside another candidate's `realpath` (drop the nested one). Apply the skip-list by directory *name* at that single level. - **Skip** (by dir name at this level): `node_modules`, `dist`, `build`, `target`, `.next`, plus