repo-cartographlisted
Install: claude install-skill AlpayC/claude-skill-set
# Repo cartograph
The same questions — what is this project, how do I test it, what may it import, what did my change affect — get asked on every run. The map answers them once. Everything downstream reads `docs/agent/repo-map.md`; nothing else re-detects.
The map is written the same way regardless of how the repo is organised. Only the **detection** differs, and that is what step 1 settles.
## 1 — Identify the workspace kind
Detect before assuming. A repo can also be several kinds at once — a monorepo containing an independently built subfolder is common.
| Signal | Kind |
|---|---|
| `nx.json` | NX |
| `turbo.json` | Turborepo |
| `pnpm-workspace.yaml` | pnpm workspaces |
| `workspaces` in root `package.json` | npm / yarn workspaces |
| `lerna.json` | Lerna |
| `rush.json` | Rush |
| One `package.json`, no workspace field | Single package |
| `pom.xml` / `build.gradle*` / `*.sln` / `go.work` / `Cargo.toml` with `[workspace]` | Backend build system |
| No shared root; separate clones | Polyrepo — map each repo separately, link them via **Seams** |
Read [`WORKSPACE-KINDS.md`](WORKSPACE-KINDS.md) for the per-kind commands: how to enumerate projects, read the dependency graph, and compute the changed set. It also carries the fallback ladder for repos whose tooling offers none of that.
Record the kind, its version, and the enumeration command in the map. When two kinds coexist, record both and say which part of the tree each governs.
## 2 — Enumerate the projects
Ask th