pi-gsd 2.0.20 → 2.0.22
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-backlog.md +132 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/debug.md +250 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/do.md +11 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/execute-phase.md +3 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/list-phase-assumptions.md +78 -30
- package/.gsd/harnesses/pi/get-shit-done/workflows/next.md +11 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/plan-phase.md +4 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/progress.md +11 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/review-backlog.md +219 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/session-report.md +47 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/set-profile.md +135 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/thread.md +213 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/transition.md +11 -0
- package/.gsd/harnesses/pi/get-shit-done/workflows/ui-phase.md +2 -1
- package/.gsd/harnesses/pi/get-shit-done/workflows/workstreams.md +215 -0
- package/.gsd/harnesses/pi/gsd-file-manifest.json +1 -1
- package/dist/pi-gsd-hooks.js +2 -2
- package/dist/pi-gsd-tools.js +77 -77
- package/package.json +2 -2
- package/prompts/gsd-add-backlog.md +2 -0
- package/prompts/gsd-complete-milestone.md +2 -0
- package/prompts/gsd-debug.md +2 -0
- package/prompts/gsd-list-phase-assumptions.md +1 -1
- package/prompts/gsd-research-phase.md +2 -0
- package/prompts/gsd-review-backlog.md +2 -0
- package/prompts/gsd-set-profile.md +2 -0
- package/prompts/gsd-thread.md +2 -0
- package/prompts/gsd-workstreams.md +2 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<gsd-version v="1.12.4" />
|
|
2
|
+
|
|
3
|
+
<gsd-arguments>
|
|
4
|
+
<settings>
|
|
5
|
+
<keep-extra-args />
|
|
6
|
+
</settings>
|
|
7
|
+
<arg name="idea" type="string" optional />
|
|
8
|
+
</gsd-arguments>
|
|
9
|
+
|
|
10
|
+
<gsd-execute>
|
|
11
|
+
<display msg="Loading backlog context..." />
|
|
12
|
+
<shell command="pi-gsd-tools">
|
|
13
|
+
<args>
|
|
14
|
+
<arg string="state" />
|
|
15
|
+
<arg string="json" />
|
|
16
|
+
<arg string="--raw" />
|
|
17
|
+
</args>
|
|
18
|
+
<outs>
|
|
19
|
+
<suppress-errors />
|
|
20
|
+
<out type="string" name="state" />
|
|
21
|
+
</outs>
|
|
22
|
+
</shell>
|
|
23
|
+
<shell command="pi-gsd-tools">
|
|
24
|
+
<args>
|
|
25
|
+
<arg string="roadmap" />
|
|
26
|
+
<arg string="analyze" />
|
|
27
|
+
<arg string="--raw" />
|
|
28
|
+
</args>
|
|
29
|
+
<outs>
|
|
30
|
+
<suppress-errors />
|
|
31
|
+
<out type="string" name="roadmap" />
|
|
32
|
+
</outs>
|
|
33
|
+
</shell>
|
|
34
|
+
<shell command="pi-gsd-tools">
|
|
35
|
+
<args>
|
|
36
|
+
<arg string="current-timestamp" />
|
|
37
|
+
<arg string="--raw" />
|
|
38
|
+
</args>
|
|
39
|
+
<outs>
|
|
40
|
+
<out type="string" name="timestamp" />
|
|
41
|
+
</outs>
|
|
42
|
+
</shell>
|
|
43
|
+
</gsd-execute>
|
|
44
|
+
|
|
45
|
+
## Backlog Context (pre-injected by WXP)
|
|
46
|
+
|
|
47
|
+
**Idea:** <gsd-paste name="idea" />
|
|
48
|
+
|
|
49
|
+
**Timestamp:** <gsd-paste name="timestamp" />
|
|
50
|
+
|
|
51
|
+
**State:**
|
|
52
|
+
<gsd-paste name="state" />
|
|
53
|
+
|
|
54
|
+
**Roadmap Analysis:**
|
|
55
|
+
<gsd-paste name="roadmap" />
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
<purpose>
|
|
60
|
+
Park an idea as a backlog entry (999.x numbered phase) in ROADMAP.md. Zero friction — one command captures an idea without interrupting current work. The idea sits in the backlog until promoted by `/gsd-review-backlog`.
|
|
61
|
+
</purpose>
|
|
62
|
+
|
|
63
|
+
<process>
|
|
64
|
+
|
|
65
|
+
<step name="validate_context">
|
|
66
|
+
<!-- State, roadmap, and idea pre-injected above via WXP -->
|
|
67
|
+
|
|
68
|
+
Check that `.planning/ROADMAP.md` exists (from `state` JSON field `roadmap_exists`).
|
|
69
|
+
|
|
70
|
+
**If roadmap missing:**
|
|
71
|
+
```
|
|
72
|
+
Error: No ROADMAP.md found. Run /gsd-new-project or /gsd-new-milestone first.
|
|
73
|
+
```
|
|
74
|
+
Exit.
|
|
75
|
+
|
|
76
|
+
**If idea is empty (no $ARGUMENTS):**
|
|
77
|
+
Ask the user: "What's the idea? (one sentence description)"
|
|
78
|
+
Use the response as `idea`.
|
|
79
|
+
</step>
|
|
80
|
+
|
|
81
|
+
<step name="find_next_slot">
|
|
82
|
+
From the roadmap analysis JSON, extract the `phases` array. Find all phases where `phase_number` starts with `999` (e.g., `999.1`, `999.2`).
|
|
83
|
+
|
|
84
|
+
Compute next backlog number:
|
|
85
|
+
- If no 999.x entries exist → use `999.1`
|
|
86
|
+
- Otherwise → use `999.(max_decimal + 1)`, e.g., if `999.3` exists → `999.4`
|
|
87
|
+
|
|
88
|
+
Set `BACKLOG_NUM` = next available 999.x slot.
|
|
89
|
+
</step>
|
|
90
|
+
|
|
91
|
+
<step name="add_entry">
|
|
92
|
+
Append to `.planning/ROADMAP.md` under a `## Backlog` section (create the section if missing):
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
- [ ] **Phase {BACKLOG_NUM}**: {idea}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Use the roadmap `roadmap add-phase` command if available, or append directly:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pi-gsd-tools roadmap add-phase "{BACKLOG_NUM}" "{idea}" --raw
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If the CLI command fails or is unavailable, append manually to ROADMAP.md.
|
|
105
|
+
</step>
|
|
106
|
+
|
|
107
|
+
<step name="commit">
|
|
108
|
+
```bash
|
|
109
|
+
pi-gsd-tools commit "docs: add backlog entry {BACKLOG_NUM} - {idea_slug}" --files .planning/ROADMAP.md
|
|
110
|
+
```
|
|
111
|
+
</step>
|
|
112
|
+
|
|
113
|
+
<step name="confirm">
|
|
114
|
+
```
|
|
115
|
+
✓ Backlog entry added
|
|
116
|
+
|
|
117
|
+
Phase {BACKLOG_NUM}: {idea}
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
Review and promote backlog: /gsd-review-backlog
|
|
122
|
+
```
|
|
123
|
+
</step>
|
|
124
|
+
|
|
125
|
+
</process>
|
|
126
|
+
|
|
127
|
+
<success_criteria>
|
|
128
|
+
- [ ] ROADMAP.md has new 999.x entry
|
|
129
|
+
- [ ] 999.x number is sequential (no gaps or duplicates)
|
|
130
|
+
- [ ] Entry committed to git
|
|
131
|
+
- [ ] User sees confirmation with the assigned phase number
|
|
132
|
+
</success_criteria>
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
<gsd-version v="1.12.4" />
|
|
2
|
+
|
|
3
|
+
<gsd-arguments>
|
|
4
|
+
<settings>
|
|
5
|
+
<keep-extra-args />
|
|
6
|
+
</settings>
|
|
7
|
+
<arg name="description" type="string" optional />
|
|
8
|
+
</gsd-arguments>
|
|
9
|
+
|
|
10
|
+
<gsd-execute>
|
|
11
|
+
<display msg="Loading debug context..." />
|
|
12
|
+
<shell command="pi-gsd-tools">
|
|
13
|
+
<args>
|
|
14
|
+
<arg string="state" />
|
|
15
|
+
<arg string="json" />
|
|
16
|
+
<arg string="--raw" />
|
|
17
|
+
</args>
|
|
18
|
+
<outs>
|
|
19
|
+
<suppress-errors />
|
|
20
|
+
<out type="string" name="state" />
|
|
21
|
+
</outs>
|
|
22
|
+
</shell>
|
|
23
|
+
<shell command="pi-gsd-tools">
|
|
24
|
+
<args>
|
|
25
|
+
<arg string="current-timestamp" />
|
|
26
|
+
<arg string="--raw" />
|
|
27
|
+
</args>
|
|
28
|
+
<outs>
|
|
29
|
+
<out type="string" name="timestamp" />
|
|
30
|
+
</outs>
|
|
31
|
+
</shell>
|
|
32
|
+
<shell command="pi-gsd-tools">
|
|
33
|
+
<args>
|
|
34
|
+
<arg string="agent-skills" />
|
|
35
|
+
<arg string="gsd-debugger" />
|
|
36
|
+
</args>
|
|
37
|
+
<outs>
|
|
38
|
+
<suppress-errors />
|
|
39
|
+
<out type="string" name="agent-skills-debugger" />
|
|
40
|
+
</outs>
|
|
41
|
+
</shell>
|
|
42
|
+
</gsd-execute>
|
|
43
|
+
|
|
44
|
+
## Debug Context (pre-injected by WXP)
|
|
45
|
+
|
|
46
|
+
**Problem:** <gsd-paste name="description" />
|
|
47
|
+
|
|
48
|
+
**Timestamp:** <gsd-paste name="timestamp" />
|
|
49
|
+
|
|
50
|
+
**Project State:**
|
|
51
|
+
<gsd-paste name="state" />
|
|
52
|
+
|
|
53
|
+
**Debugger Skills:**
|
|
54
|
+
<gsd-paste name="agent-skills-debugger" />
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
<purpose>
|
|
59
|
+
Systematic debugging session. Diagnoses failures, errors, and unexpected behavior using structured root-cause analysis. Spawns gsd-debugger with full project context for focused investigation.
|
|
60
|
+
|
|
61
|
+
For post-mortem investigation of completed phases, use `/gsd-forensics` instead.
|
|
62
|
+
</purpose>
|
|
63
|
+
|
|
64
|
+
<available_agent_types>
|
|
65
|
+
Valid GSD subagent types (use exact names - do not fall back to 'general-purpose'):
|
|
66
|
+
- gsd-debugger - Diagnoses and fixes issues
|
|
67
|
+
</available_agent_types>
|
|
68
|
+
|
|
69
|
+
<process>
|
|
70
|
+
|
|
71
|
+
<step name="gather_context">
|
|
72
|
+
<!-- State, timestamp, and description pre-injected above via WXP -->
|
|
73
|
+
|
|
74
|
+
Load current phase context:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
PHASE_INFO=$(pi-gsd-tools roadmap analyze --raw 2>/dev/null || echo "{}")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Extract from state JSON:
|
|
81
|
+
- `current_phase` - what's being worked on
|
|
82
|
+
- `last_activity` - when was the last change
|
|
83
|
+
- `milestone` - current milestone name
|
|
84
|
+
|
|
85
|
+
If `description` is empty, ask the user:
|
|
86
|
+
```
|
|
87
|
+
What's broken? Describe the symptom in one sentence:
|
|
88
|
+
(e.g. "auth tokens expire immediately", "build fails with missing module", "tests pass locally but fail in CI")
|
|
89
|
+
```
|
|
90
|
+
Store response as `description`.
|
|
91
|
+
</step>
|
|
92
|
+
|
|
93
|
+
<step name="classify_issue">
|
|
94
|
+
Classify the issue from the description:
|
|
95
|
+
|
|
96
|
+
| Symptom pattern | Issue type |
|
|
97
|
+
|----------------|------------|
|
|
98
|
+
| Error/exception message | `runtime_error` |
|
|
99
|
+
| Test failures | `test_failure` |
|
|
100
|
+
| Build/compile error | `build_error` |
|
|
101
|
+
| Wrong behavior (no error) | `logic_error` |
|
|
102
|
+
| Performance problem | `performance` |
|
|
103
|
+
| Integration failure | `integration` |
|
|
104
|
+
| Unclear | `unknown` |
|
|
105
|
+
|
|
106
|
+
Set `ISSUE_TYPE`.
|
|
107
|
+
</step>
|
|
108
|
+
|
|
109
|
+
<step name="spawn_debugger">
|
|
110
|
+
Display banner:
|
|
111
|
+
```
|
|
112
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
113
|
+
GSD ► DEBUG SESSION
|
|
114
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
115
|
+
|
|
116
|
+
Issue: {description}
|
|
117
|
+
Type: {ISSUE_TYPE}
|
|
118
|
+
Phase: {current_phase || "not set"}
|
|
119
|
+
|
|
120
|
+
◆ Spawning debugger...
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Resolve model:
|
|
124
|
+
```bash
|
|
125
|
+
DEBUGGER_MODEL=$(pi-gsd-tools resolve-model gsd-debugger --raw 2>/dev/null || echo "")
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Debug prompt:
|
|
129
|
+
```markdown
|
|
130
|
+
<objective>
|
|
131
|
+
Debug the following issue in this project:
|
|
132
|
+
{description}
|
|
133
|
+
|
|
134
|
+
Issue type: {ISSUE_TYPE}
|
|
135
|
+
Current phase: {current_phase}
|
|
136
|
+
Milestone: {milestone}
|
|
137
|
+
</objective>
|
|
138
|
+
|
|
139
|
+
<files_to_read>
|
|
140
|
+
- .planning/STATE.md (Project state and recent decisions)
|
|
141
|
+
- .planning/ROADMAP.md (Phase context)
|
|
142
|
+
- ./GEMINI.md or ./CLAUDE.md (Project-specific guidelines, if exists)
|
|
143
|
+
</files_to_read>
|
|
144
|
+
|
|
145
|
+
${AGENT_SKILLS_DEBUGGER}
|
|
146
|
+
|
|
147
|
+
<investigation_protocol>
|
|
148
|
+
1. Reproduce: Identify the minimal steps to trigger the issue
|
|
149
|
+
2. Isolate: Narrow down to the failing component/file/function
|
|
150
|
+
3. Root cause: Identify WHY it fails, not just WHERE
|
|
151
|
+
4. Fix: Implement the smallest change that solves the root cause
|
|
152
|
+
5. Verify: Confirm the fix works and doesn't introduce regressions
|
|
153
|
+
|
|
154
|
+
Always check:
|
|
155
|
+
- Recent commits (git log --oneline -10) for what changed
|
|
156
|
+
- Related files for mismatched interfaces or broken contracts
|
|
157
|
+
- Test suite for existing coverage that should have caught this
|
|
158
|
+
</investigation_protocol>
|
|
159
|
+
|
|
160
|
+
<output_format>
|
|
161
|
+
## DEBUG COMPLETE
|
|
162
|
+
|
|
163
|
+
**Root cause:** [one sentence]
|
|
164
|
+
**Fix applied:** [what was changed]
|
|
165
|
+
**Files modified:** [list]
|
|
166
|
+
**Verification:** [how to confirm it's fixed]
|
|
167
|
+
|
|
168
|
+
OR
|
|
169
|
+
|
|
170
|
+
## DEBUG BLOCKED
|
|
171
|
+
|
|
172
|
+
**Investigated:** [what was tried]
|
|
173
|
+
**Blocker:** [what additional info is needed]
|
|
174
|
+
**Next step:** [what the human should provide or check]
|
|
175
|
+
</output_format>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Task(
|
|
180
|
+
prompt=debug_prompt,
|
|
181
|
+
subagent_type="gsd-debugger",
|
|
182
|
+
model="{DEBUGGER_MODEL}",
|
|
183
|
+
description="Debug: {description}"
|
|
184
|
+
)
|
|
185
|
+
```
|
|
186
|
+
</step>
|
|
187
|
+
|
|
188
|
+
<step name="handle_return">
|
|
189
|
+
**`## DEBUG COMPLETE`:**
|
|
190
|
+
|
|
191
|
+
Display root cause, fix, and verification steps. Offer:
|
|
192
|
+
```
|
|
193
|
+
1. Capture as todo (/gsd-add-todo) - if fix not yet applied
|
|
194
|
+
2. Continue with current phase (/gsd-execute-phase)
|
|
195
|
+
3. Done
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**`## DEBUG BLOCKED`:**
|
|
199
|
+
|
|
200
|
+
Display blocker and next steps. Offer:
|
|
201
|
+
```
|
|
202
|
+
1. Provide additional context and retry
|
|
203
|
+
2. Try forensics mode (/gsd-forensics) - deeper investigation
|
|
204
|
+
3. Capture as todo and investigate later
|
|
205
|
+
```
|
|
206
|
+
</step>
|
|
207
|
+
|
|
208
|
+
<step name="persist_session">
|
|
209
|
+
If the debug session produced a fix or useful findings, offer to save:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
mkdir -p .planning/debug
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Write `.planning/debug/{YYYY-MM-DD}-{slug}.md`:
|
|
216
|
+
```markdown
|
|
217
|
+
---
|
|
218
|
+
created: {timestamp}
|
|
219
|
+
issue: {description}
|
|
220
|
+
type: {ISSUE_TYPE}
|
|
221
|
+
phase: {current_phase}
|
|
222
|
+
status: {resolved|blocked}
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Root Cause
|
|
226
|
+
{root cause summary}
|
|
227
|
+
|
|
228
|
+
## Fix
|
|
229
|
+
{what was changed}
|
|
230
|
+
|
|
231
|
+
## Verification
|
|
232
|
+
{how to confirm}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Commit:
|
|
236
|
+
```bash
|
|
237
|
+
pi-gsd-tools commit "docs: debug session - {description_slug}" --files .planning/debug/{filename}
|
|
238
|
+
```
|
|
239
|
+
</step>
|
|
240
|
+
|
|
241
|
+
</process>
|
|
242
|
+
|
|
243
|
+
<success_criteria>
|
|
244
|
+
- [ ] Problem description captured (from arg or prompt)
|
|
245
|
+
- [ ] Issue classified by type
|
|
246
|
+
- [ ] gsd-debugger spawned with full project context
|
|
247
|
+
- [ ] Root cause identified or blocker surfaced
|
|
248
|
+
- [ ] Fix applied or next steps clear
|
|
249
|
+
- [ ] Session optionally persisted in .planning/debug/
|
|
250
|
+
</success_criteria>
|
|
@@ -6,6 +6,17 @@
|
|
|
6
6
|
</gsd-arguments>
|
|
7
7
|
|
|
8
8
|
<gsd-execute>
|
|
9
|
+
<shell command="pi-gsd-tools">
|
|
10
|
+
<args>
|
|
11
|
+
<arg string="state" />
|
|
12
|
+
<arg string="reconcile" />
|
|
13
|
+
<arg string="--raw" />
|
|
14
|
+
</args>
|
|
15
|
+
<outs>
|
|
16
|
+
<suppress-errors />
|
|
17
|
+
<out type="string" name="reconcile-result" />
|
|
18
|
+
</outs>
|
|
19
|
+
</shell>
|
|
9
20
|
<shell command="pi-gsd-tools">
|
|
10
21
|
<args>
|
|
11
22
|
<arg string="state" />
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
</delimiters>
|
|
9
9
|
</settings>
|
|
10
10
|
<arg name="auto-chain-active" type="flag" flag="--auto" optional />
|
|
11
|
+
<arg name="no-transition" type="flag" flag="--no-transition" optional />
|
|
12
|
+
<arg name="gaps-only" type="flag" flag="--gaps-only" optional />
|
|
13
|
+
<arg name="interactive" type="flag" flag="--interactive" optional />
|
|
11
14
|
<arg name="phase" type="number" />
|
|
12
15
|
<arg name="user-text" type="string" optional />
|
|
13
16
|
</gsd-arguments>
|
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
<gsd-version v="1.12.4" />
|
|
2
2
|
|
|
3
|
+
<gsd-arguments>
|
|
4
|
+
<settings>
|
|
5
|
+
<keep-extra-args />
|
|
6
|
+
</settings>
|
|
7
|
+
<arg name="phase" type="number" />
|
|
8
|
+
</gsd-arguments>
|
|
9
|
+
|
|
10
|
+
<gsd-execute>
|
|
11
|
+
<shell command="pi-gsd-tools">
|
|
12
|
+
<args>
|
|
13
|
+
<arg string="init" />
|
|
14
|
+
<arg string="phase-op" />
|
|
15
|
+
<arg name="phase" wrap='"' />
|
|
16
|
+
</args>
|
|
17
|
+
<outs>
|
|
18
|
+
<out type="string" name="init" />
|
|
19
|
+
</outs>
|
|
20
|
+
</shell>
|
|
21
|
+
<if>
|
|
22
|
+
<condition>
|
|
23
|
+
<starts-with>
|
|
24
|
+
<left name="init" />
|
|
25
|
+
<right type="string" value="@file:" />
|
|
26
|
+
</starts-with>
|
|
27
|
+
</condition>
|
|
28
|
+
<then>
|
|
29
|
+
<string-op op="split">
|
|
30
|
+
<args>
|
|
31
|
+
<arg name="init" />
|
|
32
|
+
<arg type="string" value="@file:" />
|
|
33
|
+
</args>
|
|
34
|
+
<outs>
|
|
35
|
+
<out type="string" name="init-file" />
|
|
36
|
+
</outs>
|
|
37
|
+
</string-op>
|
|
38
|
+
<shell command="cat">
|
|
39
|
+
<args>
|
|
40
|
+
<arg name="init-file" wrap='"' />
|
|
41
|
+
</args>
|
|
42
|
+
<outs>
|
|
43
|
+
<out type="string" name="init" />
|
|
44
|
+
</outs>
|
|
45
|
+
</shell>
|
|
46
|
+
</then>
|
|
47
|
+
</if>
|
|
48
|
+
<shell command="pi-gsd-tools">
|
|
49
|
+
<args>
|
|
50
|
+
<arg string="state" />
|
|
51
|
+
<arg string="json" />
|
|
52
|
+
<arg string="--raw" />
|
|
53
|
+
</args>
|
|
54
|
+
<outs>
|
|
55
|
+
<suppress-errors />
|
|
56
|
+
<out type="string" name="state" />
|
|
57
|
+
</outs>
|
|
58
|
+
</shell>
|
|
59
|
+
</gsd-execute>
|
|
60
|
+
|
|
61
|
+
## Context (pre-injected by WXP)
|
|
62
|
+
|
|
63
|
+
**Phase:** <gsd-paste name="phase" />
|
|
64
|
+
|
|
65
|
+
**Phase Data:**
|
|
66
|
+
<gsd-paste name="init" />
|
|
67
|
+
|
|
68
|
+
**State:**
|
|
69
|
+
<gsd-paste name="state" />
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
3
73
|
<purpose>
|
|
4
74
|
Surface the agent's assumptions about a phase before planning, enabling users to correct misconceptions early.
|
|
5
75
|
|
|
@@ -9,46 +79,24 @@ Key difference from discuss-phase: This is ANALYSIS of what the agent thinks, no
|
|
|
9
79
|
<process>
|
|
10
80
|
|
|
11
81
|
<step name="validate_phase" priority="first">
|
|
12
|
-
Phase number
|
|
82
|
+
<!-- Phase number, phase data and state are pre-injected above via WXP -->
|
|
13
83
|
|
|
14
|
-
|
|
84
|
+
Parse `init` JSON for: `phase_found`, `phase_number`, `phase_name`, `phase_slug`, `goal`, `phase_dir`.
|
|
15
85
|
|
|
16
|
-
|
|
17
|
-
Error: Phase number required.
|
|
86
|
+
**If `phase_found` is false:**
|
|
18
87
|
|
|
19
|
-
Usage: /gsd-list-phase-assumptions [phase-number]
|
|
20
|
-
Example: /gsd-list-phase-assumptions 3
|
|
21
88
|
```
|
|
89
|
+
Error: Phase {phase} not found in roadmap.
|
|
22
90
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
**If argument provided:**
|
|
26
|
-
Validate phase exists in roadmap:
|
|
91
|
+
Available phases: [list from roadmap]
|
|
27
92
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**If phase not found:**
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Error: Phase ${PHASE} not found in roadmap.
|
|
36
|
-
|
|
37
|
-
Available phases:
|
|
38
|
-
[list phases from roadmap]
|
|
93
|
+
Usage: /gsd-list-phase-assumptions [phase-number]
|
|
94
|
+
Example: /gsd-list-phase-assumptions 3
|
|
39
95
|
```
|
|
40
96
|
|
|
41
97
|
Exit workflow.
|
|
42
98
|
|
|
43
|
-
**If
|
|
44
|
-
Parse phase details from roadmap:
|
|
45
|
-
|
|
46
|
-
- Phase number
|
|
47
|
-
- Phase name
|
|
48
|
-
- Phase description/goal
|
|
49
|
-
- Any scope details mentioned
|
|
50
|
-
|
|
51
|
-
Continue to analyze_phase.
|
|
99
|
+
**If `phase_found` is true:** Continue to analyze_phase.
|
|
52
100
|
</step>
|
|
53
101
|
|
|
54
102
|
<step name="analyze_phase">
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
</gsd-arguments>
|
|
6
6
|
|
|
7
7
|
<gsd-execute>
|
|
8
|
+
<shell command="pi-gsd-tools">
|
|
9
|
+
<args>
|
|
10
|
+
<arg string="state" />
|
|
11
|
+
<arg string="reconcile" />
|
|
12
|
+
<arg string="--raw" />
|
|
13
|
+
</args>
|
|
14
|
+
<outs>
|
|
15
|
+
<suppress-errors />
|
|
16
|
+
<out type="string" name="reconcile-result" />
|
|
17
|
+
</outs>
|
|
18
|
+
</shell>
|
|
8
19
|
<shell command="pi-gsd-tools">
|
|
9
20
|
<args>
|
|
10
21
|
<arg string="state" />
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
</settings>
|
|
7
7
|
<arg name="auto-chain-active" type="flag" flag="--auto" optional />
|
|
8
8
|
<arg name="skip-research" type="flag" flag="--skip-research" optional />
|
|
9
|
+
<arg name="gaps" type="flag" flag="--gaps" optional />
|
|
10
|
+
<arg name="skip-verify" type="flag" flag="--skip-verify" optional />
|
|
11
|
+
<arg name="reviews" type="flag" flag="--reviews" optional />
|
|
12
|
+
<arg name="text" type="flag" flag="--text" optional />
|
|
9
13
|
<arg name="phase" type="number" />
|
|
10
14
|
</gsd-arguments>
|
|
11
15
|
|
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
</gsd-arguments>
|
|
6
6
|
|
|
7
7
|
<gsd-execute>
|
|
8
|
+
<shell command="pi-gsd-tools">
|
|
9
|
+
<args>
|
|
10
|
+
<arg string="state" />
|
|
11
|
+
<arg string="reconcile" />
|
|
12
|
+
<arg string="--raw" />
|
|
13
|
+
</args>
|
|
14
|
+
<outs>
|
|
15
|
+
<suppress-errors />
|
|
16
|
+
<out type="string" name="reconcile-result" />
|
|
17
|
+
</outs>
|
|
18
|
+
</shell>
|
|
8
19
|
<shell command="pi-gsd-tools">
|
|
9
20
|
<args>
|
|
10
21
|
<arg string="roadmap" />
|