git section of .planning/config.json.
Configuration reference
/gsd-config --advanced (Git Customization section) or by editing config.json directly.
Branching strategies
- none (default)
- phase
- milestone
All work happens on your current branch. GSD makes no branch decisions — it commits directly to whatever branch you are on when you invoke
/gsd-execute-phase. This is the right choice for solo development, simple projects, or when you manage branching yourself.Strategy comparison
Template variables
Customize the branch name format by editing the template strings inconfig.json.
Custom template examples
Custom template examples
Use any combination of variables and literal text:With the above template, phase 2 named “API layer” produces: This produces:
feature/gsd-02-api-layerFor milestone strategy with a custom format:release/v1.0Base branch
Setgit.base_branch to the integration branch that phase and milestone branches are created from and eventually merged back into. Override this when your repository uses master, develop, or a named release branch rather than main.
GSD also reads
git.base_branch to determine where to target the pull request created by /gsd-ship. Make sure this matches the default branch in your GitHub repository settings.Milestone completion merge options
When using themilestone strategy, /gsd-complete-milestone offers you a choice of how to merge the milestone branch back into base_branch:
Tags on milestone completion
By default, GSD creates a git tag (v[X.Y]) when a milestone completes. Disable this if you have your own release tagging workflow:
/gsd-quick branch template
Optionally configure an automatic branching strategy for/gsd-quick ad-hoc tasks:
/gsd-quick creates a branch named with the task ID and a slug derived from the task description before running. When null (the default), /gsd-quick works on your current branch.
