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 +1 -1
- package/skills/auto/auto-loop.sh +29 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gsd-cc",
|
|
3
|
-
"version": "1.5.
|
|
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",
|
package/skills/auto/auto-loop.sh
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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 ────────────────────────────────────────────────────────
|