gsd-cc 1.5.7 → 1.5.8

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-cc",
3
- "version": "1.5.7",
3
+ "version": "1.5.8",
4
4
  "description": "Get Shit Done on Claude Code — structured AI development with your Max plan",
5
5
  "author": "Philipp Briese (https://github.com/0ui-labs)",
6
6
  "homepage": "https://github.com/0ui-labs/GSD-CC#readme",
@@ -112,6 +112,24 @@ log_cost() {
112
112
  fi
113
113
  }
114
114
 
115
+ # Find the next slice that needs work (no PLAN or no UNIFY)
116
+ # Returns slice name (e.g. "S03") or empty if milestone is complete
117
+ find_next_slice() {
118
+ local roadmap
119
+ roadmap=$(ls "$GSD_DIR"/M*-ROADMAP.md 2>/dev/null | head -1)
120
+ if [[ -z "$roadmap" ]]; then
121
+ return
122
+ fi
123
+
124
+ # Extract slice IDs from roadmap (### S01, ### S02, etc.)
125
+ grep -oE '### S[0-9]+' "$roadmap" | sed 's/### //' | while read -r slice; do
126
+ if [[ ! -f "$GSD_DIR/${slice}-UNIFY.md" ]]; then
127
+ echo "$slice"
128
+ return
129
+ fi
130
+ done
131
+ }
132
+
115
133
  # ── Main loop ──────────────────────────────────────────────────────────────────
116
134
 
117
135
  echo "▶ GSD-CC Auto-Mode starting..."
@@ -192,29 +210,28 @@ while true; do
192
210
 
193
211
  # Check if milestone is complete (all slices unified)
194
212
  if [[ "$PHASE" == "unified" ]]; then
195
- # Check roadmap for remaining slices
196
- NEXT_RESULT=$("$CLAUDE_BIN" -p "Read .gsd/STATE.md and all .gsd/M*-ROADMAP.md and .gsd/S*-UNIFY.md files. Determine the next slice that needs work (no PLAN.md or no UNIFY.md). Output ONLY valid JSON: {\"slice\":\"S01\",\"phase\":\"plan\"} or {\"done\":true} if all slices are unified." \
197
- --allowedTools "Read,Glob" \
198
- --output-format json --max-turns 3 2>/dev/null) || {
199
- echo "❌ Failed to determine next unit."
200
- break
201
- }
202
-
203
- NEXT=$(echo "$NEXT_RESULT" | jq -r '.result // empty' 2>/dev/null || echo "$NEXT_RESULT")
213
+ NEXT_SLICE=$(find_next_slice)
204
214
 
205
- if echo "$NEXT" | jq -e '.done' > /dev/null 2>&1; then
215
+ if [[ -z "$NEXT_SLICE" ]]; then
206
216
  echo ""
207
217
  echo "✅ Milestone $MILESTONE complete. All slices planned, executed, and unified."
208
218
  break
209
219
  fi
210
220
 
211
- SLICE=$(echo "$NEXT" | jq -r '.slice')
212
- PHASE=$(echo "$NEXT" | jq -r '.phase')
221
+ SLICE="$NEXT_SLICE"
213
222
  TASK="T01"
214
223
 
224
+ # Determine phase for next slice
225
+ if [[ -f "$GSD_DIR/${SLICE}-PLAN.md" ]]; then
226
+ PHASE="plan-complete"
227
+ else
228
+ PHASE="plan"
229
+ fi
230
+
215
231
  update_state_field "current_slice" "$SLICE"
216
232
  update_state_field "phase" "$PHASE"
217
233
  update_state_field "current_task" "$TASK"
234
+ echo "▶ Moving to next slice: $SLICE ($PHASE)"
218
235
  fi
219
236
 
220
237
  # ── 4. Budget check ────────────────────────────────────────────────────────