Planning Settings
| Setting | Type | Default | Description |
|---|---|---|---|
planning.commit_docs | boolean | true | Whether .planning/ files are committed to git |
planning.search_gitignored | boolean | false | Add --no-ignore to broad searches to include .planning/ |
planning.sub_repos | array of strings | [] | Paths of nested sub-repos relative to the project root. When set, GSD-aware tooling scopes phase-lookup, path-resolution, and commit operations per sub-repo instead of treating the outer repo as a monorepo |
Project-Root Resolution in Multi-Repo Workspaces
When sub_repos is set and gsd-tools.cjs or gsd-sdk query is invoked from inside a listed child repo, both CLIs walk up to the parent workspace that owns .planning/ before dispatching handlers. Resolution order (checked at each ancestor up to 10 levels, never above $HOME):
- If the starting directory already has its own
.planning/, it is the project root (no walk-up). - Parent has
.planning/config.jsonlisting the starting directory's top-level segment insub_repos(or the legacyplanning.sub_reposshape). - Parent has
.planning/config.jsonwith legacymultiRepo: trueand the starting directory is inside a git repo. - Parent has
.planning/and an ancestor up to the candidate parent contains.git(heuristic fallback).
If none match, the starting directory is returned unchanged. Explicit --project-dir /path/to/workspace is idempotent under this resolution.
Auto-Detection
If .planning/ is in .gitignore, commit_docs is automatically false regardless of config.json. This prevents git errors.