Skip to content

Monorepos & multi-repo folders

Graft handles two shapes without any config:

  • A monorepo with one .git (a pnpm-workspace.yaml/package.json workspaces, or per-package go.mod/pyproject.toml/Cargo.toml) — graft build discovers each sub-project as a ranking scope. ask/map rank every scope on its own terms and fuse the results, so the biggest sub-project can’t drown a small one; hits carry [scope/] labels, and graft map groups its directory clusters by scope first.
  • A folder of separate git repos (no .git at the top) — graft build auto-splits: each child gets its own (git-ignored) graft/, and the parent gets a graft/workspace.json index. Queries from the parent federate across every child, always labeled <child>/. Run graft build inside a child to work on just that repo.

Either way, narrow to one sub-project with graft ask "<task>" --in <scope>/ once you know where you’re working.