* 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>
95 lines
2.5 KiB
Markdown
95 lines
2.5 KiB
Markdown
<planning_config>
|
|
|
|
Configuration options for `.planning/` directory behavior.
|
|
|
|
<config_schema>
|
|
```json
|
|
"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 commit` for `.planning/` files
|
|
- User must add `.planning/` to `.gitignore`
|
|
- Useful for: OSS contributions, client projects, keeping planning private
|
|
|
|
**Checking the config:**
|
|
|
|
```bash
|
|
# 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:**
|
|
|
|
```bash
|
|
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-ignore` to 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:
|
|
|
|
1. **Set config:**
|
|
```json
|
|
"planning": {
|
|
"commit_docs": false,
|
|
"search_gitignored": true
|
|
}
|
|
```
|
|
|
|
2. **Add to .gitignore:**
|
|
```
|
|
.planning/
|
|
```
|
|
|
|
3. **Existing tracked files:** If `.planning/` was previously tracked:
|
|
```bash
|
|
git rm -r --cached .planning/
|
|
git commit -m "chore: stop tracking planning docs"
|
|
```
|
|
|
|
</setup_uncommitted_mode>
|
|
|
|
</planning_config>
|