* feat: add uncommitted planning mode Add config option to keep planning docs local-only (not committed to git). Useful for OSS contributions, client projects, or keeping planning private. Config options in .planning/config.json: - planning.commit_docs: true/false (default: true) - planning.search_gitignored: true/false (default: false) When commit_docs=false: - All git operations for .planning/ files are skipped - User should add .planning/ to .gitignore - Planning system works normally, just not tracked Updated files: - config.json template: added planning section - execute-plan.md: conditional git commits - execute-phase.md: conditional git commits - create-roadmap.md: conditional git commits - help.md: documented new config options - planning-config.md: reference doc for config behavior Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: extend commit_docs check to all agents/commands/workflows Add COMMIT_PLANNING_DOCS config check to all files that commit .planning/ artifacts, ensuring consistent behavior when commit_docs=false is set in config.json. Updated: - 5 agents (planner, executor, debugger, phase-researcher, synthesizer) - 8 commands (add-todo, check-todos, execute-phase, new-milestone, pause-work, plan-milestone-gaps, remove-phase, research-project) - 7 workflows (complete-milestone, create-milestone, define-requirements, diagnose-issues, discuss-phase, map-codebase, verify-work) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(progress): use Bash instead of Glob for .planning/ check Glob respects .gitignore, so projects with gitignored .planning/ directories would fail with "No planning structure found." Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(new-milestone): integrate full research/requirements/roadmap flow Previously routed to non-existent /gsd:research-project and /gsd:define-requirements commands. Now handles the full flow inline like new-project does: - Phase 7: Research Decision (spawns 4 milestone-aware researchers) - Phase 8: Define Requirements (scopes features, creates REQUIREMENTS.md) - Phase 9: Create Roadmap (continues phase numbering from previous milestone) - Phase 10: Done Key adaptations for milestones: - Research focuses on NEW features only - Requirements add to existing, don't start fresh - Phase numbering continues from previous milestone Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2.5 KiB
<planning_config>
Configuration options for .planning/ directory behavior.
<config_schema>
"planning": {
"commit_docs": true,
"search_gitignored": false
}
| Option | Default | Description |
|---|---|---|
commit_docs |
true |
Whether to commit planning artifacts to git |
search_gitignored |
false |
Add --no-ignore to broad rg searches |
| </config_schema> |
<commit_docs_behavior>
When commit_docs: true (default):
- Planning files committed normally
- SUMMARY.md, STATE.md, ROADMAP.md tracked in git
- Full history of planning decisions preserved
When commit_docs: false:
- Skip all
git add/git commitfor.planning/files - User must add
.planning/to.gitignore - Useful for: OSS contributions, client projects, keeping planning private
Checking the config:
# Check config.json first
COMMIT_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
# Auto-detect gitignored (overrides config)
git check-ignore -q .planning 2>/dev/null && COMMIT_DOCS=false
Auto-detection: If .planning/ is gitignored, commit_docs is automatically false regardless of config.json. This prevents git errors when users have .planning/ in .gitignore.
Conditional git operations:
if [ "$COMMIT_DOCS" = "true" ]; then
git add .planning/STATE.md
git commit -m "docs: update state"
fi
</commit_docs_behavior>
<search_behavior>
When search_gitignored: false (default):
- Standard rg behavior (respects .gitignore)
- Direct path searches work:
rg "pattern" .planning/finds files - Broad searches skip gitignored:
rg "pattern"skips.planning/
When search_gitignored: true:
- Add
--no-ignoreto broad rg searches that should include.planning/ - Only needed when searching entire repo and expecting
.planning/matches
Note: Most GSD operations use direct file reads or explicit paths, which work regardless of gitignore status.
</search_behavior>
<setup_uncommitted_mode>
To use uncommitted mode:
-
Set config:
"planning": { "commit_docs": false, "search_gitignored": true } -
Add to .gitignore:
.planning/ -
Existing tracked files: If
.planning/was previously tracked:git rm -r --cached .planning/ git commit -m "chore: stop tracking planning docs"
</setup_uncommitted_mode>
</planning_config>