pi-gsd 1.9.1 → 1.9.2
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/.gsd/harnesses/pi/get-shit-done/workflows/add-phase.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/add-tests.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/add-todo.md +3 -3
- package/.gsd/harnesses/pi/get-shit-done/workflows/audit-milestone.md +7 -7
- package/.gsd/harnesses/pi/get-shit-done/workflows/audit-uat.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/autonomous.md +16 -16
- package/.gsd/harnesses/pi/get-shit-done/workflows/check-todos.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/cleanup.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/complete-milestone.md +6 -6
- package/.gsd/harnesses/pi/get-shit-done/workflows/diagnose-issues.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/discuss-phase-assumptions.md +10 -10
- package/.gsd/harnesses/pi/get-shit-done/workflows/discuss-phase.md +11 -11
- package/.gsd/harnesses/pi/get-shit-done/workflows/do.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/execute-phase.md +18 -18
- package/.gsd/harnesses/pi/get-shit-done/workflows/execute-plan.md +14 -14
- package/.gsd/harnesses/pi/get-shit-done/workflows/forensics.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/health.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/insert-phase.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/list-workspaces.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/manager.md +4 -4
- package/.gsd/harnesses/pi/get-shit-done/workflows/map-codebase.md +3 -3
- package/.gsd/harnesses/pi/get-shit-done/workflows/milestone-summary.md +3 -3
- package/.gsd/harnesses/pi/get-shit-done/workflows/new-milestone.md +7 -7
- package/.gsd/harnesses/pi/get-shit-done/workflows/new-project.md +14 -14
- package/.gsd/harnesses/pi/get-shit-done/workflows/new-workspace.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/next.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/pause-work.md +3 -3
- package/.gsd/harnesses/pi/get-shit-done/workflows/plan-milestone-gaps.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/plan-phase.md +15 -15
- package/.gsd/harnesses/pi/get-shit-done/workflows/plant-seed.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/profile-user.md +11 -11
- package/.gsd/harnesses/pi/get-shit-done/workflows/progress.md +10 -10
- package/.gsd/harnesses/pi/get-shit-done/workflows/quick.md +6 -6
- package/.gsd/harnesses/pi/get-shit-done/workflows/remove-phase.md +4 -4
- package/.gsd/harnesses/pi/get-shit-done/workflows/remove-workspace.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/research-phase.md +3 -3
- package/.gsd/harnesses/pi/get-shit-done/workflows/resume-project.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/review.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/settings.md +2 -2
- package/.gsd/harnesses/pi/get-shit-done/workflows/ship.md +5 -5
- package/.gsd/harnesses/pi/get-shit-done/workflows/stats.md +1 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/transition.md +6 -6
- package/.gsd/harnesses/pi/get-shit-done/workflows/ui-phase.md +9 -9
- package/.gsd/harnesses/pi/get-shit-done/workflows/ui-review.md +4 -4
- package/.gsd/harnesses/pi/get-shit-done/workflows/validate-phase.md +5 -5
- package/.gsd/harnesses/pi/get-shit-done/workflows/verify-phase.md +6 -6
- package/.gsd/harnesses/pi/get-shit-done/workflows/verify-work.md +5 -5
- package/package.json +1 -1
|
@@ -29,7 +29,7 @@ Exit.
|
|
|
29
29
|
Load phase operation context:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
INIT=$(
|
|
32
|
+
INIT=$(pi-gsd-tools init phase-op "0")
|
|
33
33
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -45,7 +45,7 @@ Exit.
|
|
|
45
45
|
**Delegate the phase addition to gsd-tools:**
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
RESULT=$(
|
|
48
|
+
RESULT=$(pi-gsd-tools phase add "${description}")
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
The CLI handles:
|
|
@@ -33,7 +33,7 @@ Exit.
|
|
|
33
33
|
Load phase operation context:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
INIT=$(
|
|
36
|
+
INIT=$(pi-gsd-tools init phase-op "${PHASE_ARG}")
|
|
37
37
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -297,7 +297,7 @@ Create a test coverage report and present to user:
|
|
|
297
297
|
|
|
298
298
|
Record test generation in project state:
|
|
299
299
|
```bash
|
|
300
|
-
|
|
300
|
+
pi-gsd-tools state-snapshot
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
If there are passing tests to commit:
|
|
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
12
12
|
Load todo context:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
INIT=$(
|
|
15
|
+
INIT=$(pi-gsd-tools init todos)
|
|
16
16
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -84,7 +84,7 @@ Use values from init context: `timestamp` and `date` are already available.
|
|
|
84
84
|
|
|
85
85
|
Generate slug for the title:
|
|
86
86
|
```bash
|
|
87
|
-
slug=$(
|
|
87
|
+
slug=$(pi-gsd-tools generate-slug "$title" --raw)
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Write to `.planning/todos/pending/${date}-${slug}.md`:
|
|
@@ -119,7 +119,7 @@ If `.planning/STATE.md` exists:
|
|
|
119
119
|
Commit the todo and any updated state:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
|
|
122
|
+
pi-gsd-tools commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
Tool respects `commit_docs` config and gitignore automatically.
|
|
@@ -16,23 +16,23 @@ Valid GSD subagent types (use exact names - do not fall back to 'general-purpose
|
|
|
16
16
|
## 0. Initialize Milestone Context
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
INIT=$(
|
|
19
|
+
INIT=$(pi-gsd-tools init milestone-op)
|
|
20
20
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
21
|
-
AGENT_SKILLS_CHECKER=$(
|
|
21
|
+
AGENT_SKILLS_CHECKER=$(pi-gsd-tools agent-skills gsd-integration-checker 2>/dev/null)
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `commit_docs`.
|
|
25
25
|
|
|
26
26
|
Resolve integration checker model:
|
|
27
27
|
```bash
|
|
28
|
-
integration_checker_model=$(
|
|
28
|
+
integration_checker_model=$(pi-gsd-tools resolve-model gsd-integration-checker --raw)
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
## 1. Determine Milestone Scope
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
34
|
# Get phases in milestone (sorted numerically, handles decimals)
|
|
35
|
-
|
|
35
|
+
pi-gsd-tools phases list
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
- Parse version from arguments or detect current from ROADMAP.md
|
|
@@ -46,7 +46,7 @@ For each phase directory, read the VERIFICATION.md:
|
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
# For each phase, use find-phase to resolve the directory (handles archived phases)
|
|
49
|
-
PHASE_INFO=$(
|
|
49
|
+
PHASE_INFO=$(pi-gsd-tools find-phase 01 --raw)
|
|
50
50
|
# Extract directory from JSON, then read VERIFICATION.md from that directory
|
|
51
51
|
# Repeat for each phase number from ROADMAP.md
|
|
52
52
|
```
|
|
@@ -113,7 +113,7 @@ For each phase's SUMMARY.md, extract `requirements-completed` from YAML frontmat
|
|
|
113
113
|
```bash
|
|
114
114
|
for summary in .planning/phases/*-*/*-SUMMARY.md; do
|
|
115
115
|
[ -e "$summary" ] || continue
|
|
116
|
-
|
|
116
|
+
pi-gsd-tools summary-extract "$summary" --fields requirements_completed --pick requirements_completed
|
|
117
117
|
done
|
|
118
118
|
```
|
|
119
119
|
|
|
@@ -141,7 +141,7 @@ For each REQ-ID, determine status using all three sources:
|
|
|
141
141
|
Skip if `workflow.nyquist_validation` is explicitly `false` (absent = enabled).
|
|
142
142
|
|
|
143
143
|
```bash
|
|
144
|
-
NYQUIST_CONFIG=$(
|
|
144
|
+
NYQUIST_CONFIG=$(pi-gsd-tools config-get workflow.nyquist_validation --raw 2>/dev/null)
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
If `false`: skip entirely.
|
|
@@ -8,7 +8,7 @@ Cross-phase audit of all UAT and verification files. Finds every outstanding ite
|
|
|
8
8
|
Run the CLI audit:
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
AUDIT=$(
|
|
11
|
+
AUDIT=$(pi-gsd-tools audit-uat --raw)
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Parse JSON for `results` array and `summary` object.
|
|
@@ -28,7 +28,7 @@ fi
|
|
|
28
28
|
Bootstrap via milestone-level init:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
INIT=$(
|
|
31
|
+
INIT=$(pi-gsd-tools init milestone-op)
|
|
32
32
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -59,7 +59,7 @@ If `FROM_PHASE` is set, display: `Starting from phase ${FROM_PHASE}`
|
|
|
59
59
|
Run phase discovery:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
ROADMAP=$(
|
|
62
|
+
ROADMAP=$(pi-gsd-tools roadmap analyze)
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Parse the JSON `phases` array.
|
|
@@ -98,7 +98,7 @@ Exit cleanly.
|
|
|
98
98
|
**Fetch details for each phase:**
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
DETAIL=$(
|
|
101
|
+
DETAIL=$(pi-gsd-tools roadmap get-phase ${PHASE_NUM})
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
Extract `phase_name`, `goal`, `success_criteria` from each. Store for use in execute_phase and transition messages.
|
|
@@ -124,7 +124,7 @@ Where N = current phase number (from the ROADMAP, e.g., 6), T = total milestone
|
|
|
124
124
|
Check if CONTEXT.md already exists for this phase:
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
|
-
PHASE_STATE=$(
|
|
127
|
+
PHASE_STATE=$(pi-gsd-tools init phase-op ${PHASE_NUM})
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
Parse `has_context` from JSON.
|
|
@@ -140,7 +140,7 @@ Proceed to 3b.
|
|
|
140
140
|
**If has_context is false:** Check if discuss is disabled via settings:
|
|
141
141
|
|
|
142
142
|
```bash
|
|
143
|
-
SKIP_DISCUSS=$(
|
|
143
|
+
SKIP_DISCUSS=$(pi-gsd-tools config-get workflow.skip_discuss 2>/dev/null || echo "false")
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
**If SKIP_DISCUSS is `true`:** Skip discuss entirely - the ROADMAP phase description is the spec. Display:
|
|
@@ -152,7 +152,7 @@ Phase ${PHASE_NUM}: Discuss skipped (workflow.skip_discuss=true) - using ROADMAP
|
|
|
152
152
|
Write a minimal CONTEXT.md so downstream plan-phase has valid input. Get phase details:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
|
-
DETAIL=$(
|
|
155
|
+
DETAIL=$(pi-gsd-tools roadmap get-phase ${PHASE_NUM})
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
Extract `goal` and `requirements` from JSON. Write `${phase_dir}/${padded_phase}-CONTEXT.md` with:
|
|
@@ -204,7 +204,7 @@ None - discuss phase skipped.
|
|
|
204
204
|
Commit the minimal context:
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
|
|
207
|
+
pi-gsd-tools commit "docs(${PADDED_PHASE}): auto-generated context (discuss skipped)" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
Proceed to 3b.
|
|
@@ -214,7 +214,7 @@ Proceed to 3b.
|
|
|
214
214
|
After smart_discuss completes, verify context was written:
|
|
215
215
|
|
|
216
216
|
```bash
|
|
217
|
-
PHASE_STATE=$(
|
|
217
|
+
PHASE_STATE=$(pi-gsd-tools init phase-op ${PHASE_NUM})
|
|
218
218
|
```
|
|
219
219
|
|
|
220
220
|
Check `has_context`. If false → go to handle_blocker: "Smart discuss for phase ${PHASE_NUM} did not produce CONTEXT.md."
|
|
@@ -224,7 +224,7 @@ Check `has_context`. If false → go to handle_blocker: "Smart discuss for phase
|
|
|
224
224
|
Check if this phase has frontend indicators and whether a UI-SPEC already exists:
|
|
225
225
|
|
|
226
226
|
```bash
|
|
227
|
-
PHASE_SECTION=$(
|
|
227
|
+
PHASE_SECTION=$(pi-gsd-tools roadmap get-phase ${PHASE_NUM} 2>/dev/null)
|
|
228
228
|
echo "$PHASE_SECTION" | grep -iE "UI|interface|frontend|component|layout|page|screen|view|form|dashboard|widget" > /dev/null 2>&1
|
|
229
229
|
HAS_UI=$?
|
|
230
230
|
UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
@@ -233,7 +233,7 @@ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
|
233
233
|
Check if UI phase workflow is enabled:
|
|
234
234
|
|
|
235
235
|
```bash
|
|
236
|
-
UI_PHASE_CFG=$(
|
|
236
|
+
UI_PHASE_CFG=$(pi-gsd-tools config-get workflow.ui_phase 2>/dev/null || echo "true")
|
|
237
237
|
```
|
|
238
238
|
|
|
239
239
|
**If `HAS_UI` is 0 (frontend indicators found) AND `UI_SPEC_FILE` is empty (no UI-SPEC exists) AND `UI_PHASE_CFG` is not `false`:**
|
|
@@ -283,7 +283,7 @@ VERIFY_STATUS=$(grep "^status:" "${PHASE_DIR}"/*-VERIFICATION.md 2>/dev/null | h
|
|
|
283
283
|
Where `PHASE_DIR` comes from the `init phase-op` call already made in step 3a. If the variable is not in scope, re-fetch:
|
|
284
284
|
|
|
285
285
|
```bash
|
|
286
|
-
PHASE_STATE=$(
|
|
286
|
+
PHASE_STATE=$(pi-gsd-tools init phase-op ${PHASE_NUM})
|
|
287
287
|
```
|
|
288
288
|
|
|
289
289
|
Parse `phase_dir` from the JSON.
|
|
@@ -377,7 +377,7 @@ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1)
|
|
|
377
377
|
Check if UI review is enabled:
|
|
378
378
|
|
|
379
379
|
```bash
|
|
380
|
-
UI_REVIEW_CFG=$(
|
|
380
|
+
UI_REVIEW_CFG=$(pi-gsd-tools config-get workflow.ui_review 2>/dev/null || echo "true")
|
|
381
381
|
```
|
|
382
382
|
|
|
383
383
|
**If `UI_SPEC_FILE` is not empty AND `UI_REVIEW_CFG` is not `false`:**
|
|
@@ -409,7 +409,7 @@ Run smart discuss for the current phase. Proposes grey area answers in batch tab
|
|
|
409
409
|
**Inputs:** `PHASE_NUM` from execute_phase. Run init to get phase paths:
|
|
410
410
|
|
|
411
411
|
```bash
|
|
412
|
-
PHASE_STATE=$(
|
|
412
|
+
PHASE_STATE=$(pi-gsd-tools init phase-op ${PHASE_NUM})
|
|
413
413
|
```
|
|
414
414
|
|
|
415
415
|
Parse from JSON: `phase_dir`, `phase_slug`, `padded_phase`, `phase_name`.
|
|
@@ -498,7 +498,7 @@ Read the 3-5 most relevant files to understand existing patterns.
|
|
|
498
498
|
**Get phase details:**
|
|
499
499
|
|
|
500
500
|
```bash
|
|
501
|
-
DETAIL=$(
|
|
501
|
+
DETAIL=$(pi-gsd-tools roadmap get-phase ${PHASE_NUM})
|
|
502
502
|
```
|
|
503
503
|
|
|
504
504
|
Extract `goal`, `requirements`, `success_criteria` from the JSON response.
|
|
@@ -670,7 +670,7 @@ Write the file.
|
|
|
670
670
|
**Commit:**
|
|
671
671
|
|
|
672
672
|
```bash
|
|
673
|
-
|
|
673
|
+
pi-gsd-tools commit "docs(${PADDED_PHASE}): smart discuss context" --files "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
674
674
|
```
|
|
675
675
|
|
|
676
676
|
Display confirmation:
|
|
@@ -689,7 +689,7 @@ Decisions captured: {count} across {area_count} areas
|
|
|
689
689
|
After each phase completes, re-read ROADMAP.md to catch phases inserted mid-execution (decimal phases like 5.1):
|
|
690
690
|
|
|
691
691
|
```bash
|
|
692
|
-
ROADMAP=$(
|
|
692
|
+
ROADMAP=$(pi-gsd-tools roadmap analyze)
|
|
693
693
|
```
|
|
694
694
|
|
|
695
695
|
Re-filter incomplete phases using the same logic as discover_phases:
|
|
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
12
12
|
Load todo context:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
INIT=$(
|
|
15
|
+
INIT=$(pi-gsd-tools init todos)
|
|
16
16
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
17
|
```
|
|
18
18
|
|
|
@@ -155,7 +155,7 @@ If todo was moved to done/, commit the change:
|
|
|
155
155
|
|
|
156
156
|
```bash
|
|
157
157
|
git rm --cached .planning/todos/pending/[filename] 2>/dev/null || true
|
|
158
|
-
|
|
158
|
+
pi-gsd-tools commit "docs: start work on todo - [title]" --files .planning/todos/done/[filename] .planning/STATE.md
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
Tool respects `commit_docs` config and gitignore automatically.
|
|
@@ -122,7 +122,7 @@ Repeat for all milestones in the cleanup set.
|
|
|
122
122
|
Commit the changes:
|
|
123
123
|
|
|
124
124
|
```bash
|
|
125
|
-
|
|
125
|
+
pi-gsd-tools commit "chore: archive phase directories from completed milestones" --files .planning/milestones/ .planning/phases/
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
</step>
|
|
@@ -42,7 +42,7 @@ When a milestone completes:
|
|
|
42
42
|
**Use `roadmap analyze` for comprehensive readiness check:**
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
ROADMAP=$(
|
|
45
|
+
ROADMAP=$(pi-gsd-tools roadmap analyze)
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
This returns all phases with plan/summary counts and disk status. Use this to verify:
|
|
@@ -157,7 +157,7 @@ Extract one-liners from SUMMARY.md files using summary-extract:
|
|
|
157
157
|
# For each phase in milestone, extract one-liner
|
|
158
158
|
for summary in .planning/phases/*-*/*-SUMMARY.md; do
|
|
159
159
|
[ -e "$summary" ] || continue
|
|
160
|
-
|
|
160
|
+
pi-gsd-tools summary-extract "$summary" --fields one_liner --pick one_liner
|
|
161
161
|
done
|
|
162
162
|
```
|
|
163
163
|
|
|
@@ -370,7 +370,7 @@ Update `.planning/ROADMAP.md` - group completed milestone phases:
|
|
|
370
370
|
**Delegate archival to gsd-tools:**
|
|
371
371
|
|
|
372
372
|
```bash
|
|
373
|
-
ARCHIVE=$(
|
|
373
|
+
ARCHIVE=$(pi-gsd-tools milestone complete "v[X.Y]" --name "[Milestone Name]")
|
|
374
374
|
```
|
|
375
375
|
|
|
376
376
|
The CLI handles:
|
|
@@ -497,7 +497,7 @@ If the "## Cross-Milestone Trends" section exists, update the tables with new da
|
|
|
497
497
|
|
|
498
498
|
**Commit:**
|
|
499
499
|
```bash
|
|
500
|
-
|
|
500
|
+
pi-gsd-tools commit "docs: update retrospective for v${VERSION}" --files .planning/RETROSPECTIVE.md
|
|
501
501
|
```
|
|
502
502
|
|
|
503
503
|
</step>
|
|
@@ -531,7 +531,7 @@ Check branching strategy and offer merge options.
|
|
|
531
531
|
Use `init milestone-op` for context, or load config directly:
|
|
532
532
|
|
|
533
533
|
```bash
|
|
534
|
-
INIT=$(
|
|
534
|
+
INIT=$(pi-gsd-tools init execute-phase "1")
|
|
535
535
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
536
536
|
```
|
|
537
537
|
|
|
@@ -680,7 +680,7 @@ git push origin v[X.Y]
|
|
|
680
680
|
Commit milestone completion.
|
|
681
681
|
|
|
682
682
|
```bash
|
|
683
|
-
|
|
683
|
+
pi-gsd-tools commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md
|
|
684
684
|
```
|
|
685
685
|
```
|
|
686
686
|
|
|
@@ -81,7 +81,7 @@ This runs in parallel - all gaps investigated simultaneously.
|
|
|
81
81
|
**Load agent skills:**
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
AGENT_SKILLS_DEBUGGER=$(
|
|
84
|
+
AGENT_SKILLS_DEBUGGER=$(pi-gsd-tools agent-skills gsd-debugger 2>/dev/null)
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
**Spawn debug agents in parallel:**
|
|
@@ -170,7 +170,7 @@ Update status in frontmatter to "diagnosed".
|
|
|
170
170
|
|
|
171
171
|
Commit the updated UAT.md:
|
|
172
172
|
```bash
|
|
173
|
-
|
|
173
|
+
pi-gsd-tools commit "docs({phase_num}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase_num}-UAT.md"
|
|
174
174
|
```
|
|
175
175
|
</step>
|
|
176
176
|
|
|
@@ -64,9 +64,9 @@ plain-text numbered list and ask the user to type their choice number.
|
|
|
64
64
|
Phase number from argument (required).
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
INIT=$(
|
|
67
|
+
INIT=$(pi-gsd-tools init phase-op "${PHASE}")
|
|
68
68
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
69
|
-
AGENT_SKILLS_ANALYZER=$(
|
|
69
|
+
AGENT_SKILLS_ANALYZER=$(pi-gsd-tools agent-skills gsd-assumptions-analyzer 2>/dev/null)
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`,
|
|
@@ -171,7 +171,7 @@ Structure the extracted information for use in assumption generation.
|
|
|
171
171
|
Check if any pending todos are relevant to this phase's scope.
|
|
172
172
|
|
|
173
173
|
```bash
|
|
174
|
-
TODO_MATCHES=$(
|
|
174
|
+
TODO_MATCHES=$(pi-gsd-tools todo match-phase "${PHASE_NUMBER}")
|
|
175
175
|
```
|
|
176
176
|
|
|
177
177
|
Parse JSON for: `todo_count`, `matches[]`.
|
|
@@ -530,7 +530,7 @@ Write file.
|
|
|
530
530
|
Commit phase context and discussion log:
|
|
531
531
|
|
|
532
532
|
```bash
|
|
533
|
-
|
|
533
|
+
pi-gsd-tools commit "docs(${padded_phase}): capture phase context (assumptions mode)" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
|
|
534
534
|
```
|
|
535
535
|
|
|
536
536
|
Confirm: "Committed: docs(${padded_phase}): capture phase context (assumptions mode)"
|
|
@@ -540,7 +540,7 @@ Confirm: "Committed: docs(${padded_phase}): capture phase context (assumptions m
|
|
|
540
540
|
Update STATE.md with session info:
|
|
541
541
|
|
|
542
542
|
```bash
|
|
543
|
-
|
|
543
|
+
pi-gsd-tools state record-session \
|
|
544
544
|
--stopped-at "Phase ${PHASE} context gathered (assumptions mode)" \
|
|
545
545
|
--resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
546
546
|
```
|
|
@@ -548,7 +548,7 @@ node ".pi/gsd/bin/gsd-tools.cjs" state record-session \
|
|
|
548
548
|
Commit STATE.md:
|
|
549
549
|
|
|
550
550
|
```bash
|
|
551
|
-
|
|
551
|
+
pi-gsd-tools commit "docs(state): record phase ${PHASE} context session" --files .planning/STATE.md
|
|
552
552
|
```
|
|
553
553
|
</step>
|
|
554
554
|
|
|
@@ -601,18 +601,18 @@ Check for auto-advance trigger:
|
|
|
601
601
|
2. Sync chain flag:
|
|
602
602
|
```bash
|
|
603
603
|
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
604
|
-
|
|
604
|
+
pi-gsd-tools config-set workflow._auto_chain_active false 2>/dev/null
|
|
605
605
|
fi
|
|
606
606
|
```
|
|
607
607
|
3. Read chain flag and user preference:
|
|
608
608
|
```bash
|
|
609
|
-
AUTO_CHAIN=$(
|
|
610
|
-
AUTO_CFG=$(
|
|
609
|
+
AUTO_CHAIN=$(pi-gsd-tools config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
610
|
+
AUTO_CFG=$(pi-gsd-tools config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
611
611
|
```
|
|
612
612
|
|
|
613
613
|
**If `--auto` flag present AND `AUTO_CHAIN` is not true:**
|
|
614
614
|
```bash
|
|
615
|
-
|
|
615
|
+
pi-gsd-tools config-set workflow._auto_chain_active true
|
|
616
616
|
```
|
|
617
617
|
|
|
618
618
|
**If `--auto` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true:**
|
|
@@ -132,9 +132,9 @@ Text mode applies to ALL workflows in the session, not just discuss-phase.
|
|
|
132
132
|
Phase number from argument (required).
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
|
-
INIT=$(
|
|
135
|
+
INIT=$(pi-gsd-tools init phase-op "${PHASE}")
|
|
136
136
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
137
|
-
AGENT_SKILLS_ADVISOR=$(
|
|
137
|
+
AGENT_SKILLS_ADVISOR=$(pi-gsd-tools agent-skills gsd-advisor 2>/dev/null)
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`, `plan_count`, `roadmap_exists`, `planning_exists`.
|
|
@@ -260,7 +260,7 @@ Check if any pending todos are relevant to this phase's scope. Surfaces backlog
|
|
|
260
260
|
|
|
261
261
|
**Load and match todos:**
|
|
262
262
|
```bash
|
|
263
|
-
TODO_MATCHES=$(
|
|
263
|
+
TODO_MATCHES=$(pi-gsd-tools todo match-phase "${PHASE_NUMBER}")
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
Parse JSON for: `todo_count`, `matches[]` (each with `file`, `title`, `area`, `score`, `reasons`).
|
|
@@ -385,7 +385,7 @@ Check if advisor mode should activate:
|
|
|
385
385
|
|
|
386
386
|
3. Resolve model for advisor agents:
|
|
387
387
|
```bash
|
|
388
|
-
ADVISOR_MODEL=$(
|
|
388
|
+
ADVISOR_MODEL=$(pi-gsd-tools resolve-model gsd-advisor-researcher --raw)
|
|
389
389
|
```
|
|
390
390
|
|
|
391
391
|
If ADVISOR_MODE is false, skip all advisor-specific steps - workflow proceeds with existing conversational flow unchanged.
|
|
@@ -936,7 +936,7 @@ Write file.
|
|
|
936
936
|
Commit phase context and discussion log:
|
|
937
937
|
|
|
938
938
|
```bash
|
|
939
|
-
|
|
939
|
+
pi-gsd-tools commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md" "${phase_dir}/${padded_phase}-DISCUSSION-LOG.md"
|
|
940
940
|
```
|
|
941
941
|
|
|
942
942
|
Confirm: "Committed: docs(${padded_phase}): capture phase context"
|
|
@@ -946,7 +946,7 @@ Confirm: "Committed: docs(${padded_phase}): capture phase context"
|
|
|
946
946
|
Update STATE.md with session info:
|
|
947
947
|
|
|
948
948
|
```bash
|
|
949
|
-
|
|
949
|
+
pi-gsd-tools state record-session \
|
|
950
950
|
--stopped-at "Phase ${PHASE} context gathered" \
|
|
951
951
|
--resume-file "${phase_dir}/${padded_phase}-CONTEXT.md"
|
|
952
952
|
```
|
|
@@ -954,7 +954,7 @@ node ".pi/gsd/bin/gsd-tools.cjs" state record-session \
|
|
|
954
954
|
Commit STATE.md:
|
|
955
955
|
|
|
956
956
|
```bash
|
|
957
|
-
|
|
957
|
+
pi-gsd-tools commit "docs(state): record phase ${PHASE} context session" --files .planning/STATE.md
|
|
958
958
|
```
|
|
959
959
|
</step>
|
|
960
960
|
|
|
@@ -965,18 +965,18 @@ Check for auto-advance trigger:
|
|
|
965
965
|
2. **Sync chain flag with intent** - if user invoked manually (no `--auto`), clear the ephemeral chain flag from any previous interrupted `--auto` chain. This does NOT touch `workflow.auto_advance` (the user's persistent settings preference):
|
|
966
966
|
```bash
|
|
967
967
|
if [[ ! "$ARGUMENTS" =~ --auto ]]; then
|
|
968
|
-
|
|
968
|
+
pi-gsd-tools config-set workflow._auto_chain_active false 2>/dev/null
|
|
969
969
|
fi
|
|
970
970
|
```
|
|
971
971
|
3. Read both the chain flag and user preference:
|
|
972
972
|
```bash
|
|
973
|
-
AUTO_CHAIN=$(
|
|
974
|
-
AUTO_CFG=$(
|
|
973
|
+
AUTO_CHAIN=$(pi-gsd-tools config-get workflow._auto_chain_active 2>/dev/null || echo "false")
|
|
974
|
+
AUTO_CFG=$(pi-gsd-tools config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
975
975
|
```
|
|
976
976
|
|
|
977
977
|
**If `--auto` flag present AND `AUTO_CHAIN` is not true:** Persist chain flag to config (handles direct `--auto` usage without new-project):
|
|
978
978
|
```bash
|
|
979
|
-
|
|
979
|
+
pi-gsd-tools config-set workflow._auto_chain_active true
|
|
980
980
|
```
|
|
981
981
|
|
|
982
982
|
**If `--auto` flag present OR `AUTO_CHAIN` is true OR `AUTO_CFG` is true:**
|
|
@@ -24,7 +24,7 @@ Wait for response before continuing.
|
|
|
24
24
|
**Check if project exists.**
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
INIT=$(
|
|
27
|
+
INIT=$(pi-gsd-tools state load 2>/dev/null)
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Track whether `.planning/` exists - some routes require it, others don't.
|