get-shit-done-cc 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -979,7 +979,16 @@ mkdir -p .planning/debug/resolved
979
979
  mv .planning/debug/{slug}.md .planning/debug/resolved/
980
980
  ```
981
981
 
982
- Commit:
982
+ **Check planning config:**
983
+
984
+ ```bash
985
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
986
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
987
+ ```
988
+
989
+ **Commit the fix:**
990
+
991
+ If `COMMIT_PLANNING_DOCS=true` (default):
983
992
  ```bash
984
993
  git add -A
985
994
  git commit -m "fix: {brief description}
@@ -988,6 +997,16 @@ Root cause: {root_cause}
988
997
  Debug session: .planning/debug/resolved/{slug}.md"
989
998
  ```
990
999
 
1000
+ If `COMMIT_PLANNING_DOCS=false`:
1001
+ ```bash
1002
+ # Only commit code changes, exclude .planning/
1003
+ git add -A
1004
+ git reset .planning/
1005
+ git commit -m "fix: {brief description}
1006
+
1007
+ Root cause: {root_cause}"
1008
+ ```
1009
+
991
1010
  Report completion and offer next steps.
992
1011
  </step>
993
1012
 
@@ -39,6 +39,17 @@ Options:
39
39
  ```
40
40
 
41
41
  **If .planning/ doesn't exist:** Error - project not initialized.
42
+
43
+ **Load planning config:**
44
+
45
+ ```bash
46
+ # Check if planning docs should be committed (default: true)
47
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
48
+ # Auto-detect gitignored (overrides config)
49
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
50
+ ```
51
+
52
+ Store `COMMIT_PLANNING_DOCS` for use in git operations.
42
53
  </step>
43
54
 
44
55
  <step name="load_plan">
@@ -692,6 +703,10 @@ Resume file: [path to .continue-here if exists, else "None"]
692
703
  <final_commit>
693
704
  After SUMMARY.md and STATE.md updates:
694
705
 
706
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations for planning files, log "Skipping planning docs commit (commit_docs: false)"
707
+
708
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
709
+
695
710
  **1. Stage execution artifacts:**
696
711
 
697
712
  ```bash
@@ -450,6 +450,11 @@ PHASE_DIR=$(ls -d .planning/phases/${PADDED_PHASE}-* .planning/phases/${PHASE}-*
450
450
 
451
451
  # Read CONTEXT.md if exists (from /gsd:discuss-phase)
452
452
  cat "${PHASE_DIR}"/*-CONTEXT.md 2>/dev/null
453
+
454
+ # Check if planning docs should be committed (default: true)
455
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
456
+ # Auto-detect gitignored (overrides config)
457
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
453
458
  ```
454
459
 
455
460
  **If CONTEXT.md exists**, it contains user decisions that MUST constrain your research:
@@ -526,6 +531,10 @@ Where `PHASE_DIR` is the full path (e.g., `.planning/phases/01-foundation`)
526
531
 
527
532
  ## Step 6: Commit Research
528
533
 
534
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
535
+
536
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
537
+
529
538
  ```bash
530
539
  git add "${PHASE_DIR}/${PADDED_PHASE}-RESEARCH.md"
531
540
  git commit -m "docs(${PHASE}): research phase domain
@@ -953,6 +953,10 @@ After making edits, self-check:
953
953
 
954
954
  ### Step 6: Commit Revised Plans
955
955
 
956
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
957
+
958
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
959
+
956
960
  ```bash
957
961
  git add .planning/phases/${PHASE}-*/${PHASE}-*-PLAN.md
958
962
  git commit -m "fix(${PHASE}): revise plans based on checker feedback"
@@ -998,6 +1002,17 @@ Read `.planning/STATE.md` and parse:
998
1002
  - Blockers/concerns (things this phase may address)
999
1003
 
1000
1004
  If STATE.md missing but .planning/ exists, offer to reconstruct or continue without.
1005
+
1006
+ **Load planning config:**
1007
+
1008
+ ```bash
1009
+ # Check if planning docs should be committed (default: true)
1010
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
1011
+ # Auto-detect gitignored (overrides config)
1012
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
1013
+ ```
1014
+
1015
+ Store `COMMIT_PLANNING_DOCS` for use in git operations.
1001
1016
  </step>
1002
1017
 
1003
1018
  <step name="load_codebase_context">
@@ -1209,6 +1224,10 @@ Update ROADMAP.md to finalize phase placeholders created by add-phase or insert-
1209
1224
  <step name="git_commit">
1210
1225
  Commit phase plan(s) and updated roadmap:
1211
1226
 
1227
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
1228
+
1229
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
1230
+
1212
1231
  ```bash
1213
1232
  git add .planning/phases/${PHASE}-*/${PHASE}-*-PLAN.md .planning/ROADMAP.md
1214
1233
  git commit -m "docs(${PHASE}): create phase plan
@@ -48,6 +48,11 @@ cat .planning/research/STACK.md
48
48
  cat .planning/research/FEATURES.md
49
49
  cat .planning/research/ARCHITECTURE.md
50
50
  cat .planning/research/PITFALLS.md
51
+
52
+ # Check if planning docs should be committed (default: true)
53
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
54
+ # Auto-detect gitignored (overrides config)
55
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
51
56
  ```
52
57
 
53
58
  Parse each file to extract:
@@ -125,6 +130,10 @@ Write to `.planning/research/SUMMARY.md`
125
130
 
126
131
  The 4 parallel researcher agents write files but do NOT commit. You commit everything together.
127
132
 
133
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Skipping planning docs commit (commit_docs: false)"
134
+
135
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
136
+
128
137
  ```bash
129
138
  git add .planning/research/
130
139
  git commit -m "docs: complete project research
@@ -126,6 +126,17 @@ If `.planning/STATE.md` exists:
126
126
  <step name="git_commit">
127
127
  Commit the todo and any updated state:
128
128
 
129
+ **Check planning config:**
130
+
131
+ ```bash
132
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
133
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
134
+ ```
135
+
136
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Todo saved (not committed - commit_docs: false)"
137
+
138
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
139
+
129
140
  ```bash
130
141
  git add .planning/todos/pending/[filename]
131
142
  [ -f .planning/STATE.md ] && git add .planning/STATE.md
@@ -177,6 +177,17 @@ Update STATE.md "### Pending Todos" section if exists.
177
177
  <step name="git_commit">
178
178
  If todo was moved to done/, commit the change:
179
179
 
180
+ **Check planning config:**
181
+
182
+ ```bash
183
+ COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
184
+ git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
185
+ ```
186
+
187
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations, log "Todo moved (not committed - commit_docs: false)"
188
+
189
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
190
+
180
191
  ```bash
181
192
  git add .planning/todos/done/[filename]
182
193
  git rm --cached .planning/todos/pending/[filename] 2>/dev/null || true
@@ -99,7 +99,9 @@ Phase: $ARGUMENTS
99
99
  - Skip if: REQUIREMENTS.md doesn't exist, or phase has no Requirements line
100
100
 
101
101
  10. **Commit phase completion**
102
- Bundle all phase metadata updates in one commit:
102
+ Check `COMMIT_PLANNING_DOCS` from config.json (default: true).
103
+ If false: Skip git operations for .planning/ files.
104
+ If true: Bundle all phase metadata updates in one commit:
103
105
  - Stage: `git add .planning/ROADMAP.md .planning/STATE.md`
104
106
  - Stage REQUIREMENTS.md if updated: `git add .planning/REQUIREMENTS.md`
105
107
  - Commit: `docs({phase}): complete {phase-name} phase`
@@ -337,6 +337,33 @@ Set during `/gsd:new-project`:
337
337
 
338
338
  Change anytime by editing `.planning/config.json`
339
339
 
340
+ ## Planning Configuration
341
+
342
+ Configure how planning artifacts are managed in `.planning/config.json`:
343
+
344
+ **`planning.commit_docs`** (default: `true`)
345
+ - `true`: Planning artifacts committed to git (standard workflow)
346
+ - `false`: Planning artifacts kept local-only, not committed
347
+
348
+ When `commit_docs: false`:
349
+ - Add `.planning/` to your `.gitignore`
350
+ - Useful for OSS contributions, client projects, or keeping planning private
351
+ - All planning files still work normally, just not tracked in git
352
+
353
+ **`planning.search_gitignored`** (default: `false`)
354
+ - `true`: Add `--no-ignore` to broad ripgrep searches
355
+ - Only needed when `.planning/` is gitignored and you want project-wide searches to include it
356
+
357
+ Example config:
358
+ ```json
359
+ {
360
+ "planning": {
361
+ "commit_docs": false,
362
+ "search_gitignored": true
363
+ }
364
+ }
365
+ ```
366
+
340
367
  ## Common Workflows
341
368
 
342
369
  **Starting a new project:**