diff --git a/docs/user-docs/working-in-teams.md b/docs/user-docs/working-in-teams.md index fd5476813b..074f508391 100644 --- a/docs/user-docs/working-in-teams.md +++ b/docs/user-docs/working-in-teams.md @@ -82,6 +82,37 @@ If you have an existing project with `.gsd/` blanket-ignored: ``` 5. Commit +## Plan Review Workflow + +Teams configured to track planning artifacts in git (i.e. with `mode: team` and `.gsd/milestones/` not gitignored) can use a two-PR cycle to get plan approval before any code is written: + +1. **Plan PR** — developer runs `/gsd discuss` on `main`, which writes planning artifacts to `.gsd/milestones//` (milestone files `-CONTEXT.md` and `-ROADMAP.md`) and updates the top-level `.gsd/REQUIREMENTS.md` and `.gsd/DECISIONS.md`. The developer commits these and opens a docs-only PR. +2. **Review** — the team reviews scope, risks, slice breakdown, and definition of done directly in GitHub. No code to review yet, just the plan. +3. **Code PR** — after the plan PR is merged, the developer pulls `main` and runs `/gsd auto`. GSD creates a worktree and executes against the approved plan. The result is a second PR with the actual implementation. + +`/gsd discuss` does not auto-commit — the developer controls when and how planning artifacts are committed. + +### What reviewers should look for + +- **`-CONTEXT.md`** — is the scope well-defined? Are constraints and non-goals clear? +- **`-ROADMAP.md`** — does the slice breakdown make sense? Are slices ordered by dependency? +- **`.gsd/DECISIONS.md`** — are the architectural choices justified? + +### Steering during execution + +If the developer uses `/gsd steer` from within the auto-mode worktree, those adjustments remain local to that worktree and write to `.gsd/OVERRIDES.md` in the worktree — they don't modify the approved plan docs on `main`. These changes will appear in the code PR diff alongside the implementation. Running `/gsd steer` outside the worktree modifies whichever checkout it is run from. + +### Automated gates + +For teams that want a required discussion checkpoint before each slice (not just the milestone), add `require_slice_discussion: true` to preferences: + +```yaml +phases: + require_slice_discussion: true +``` + +This pauses auto-mode when a slice is missing its slice `CONTEXT` file and requires the developer to run `/gsd discuss` for that slice before proceeding. + ## Parallel Development Multiple developers can run auto mode simultaneously on different milestones. Each developer: