get-shit-done-cc 1.3.33 → 1.4.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.
- package/README.md +21 -1
- package/commands/gsd/add-todo.md +182 -0
- package/commands/gsd/check-todos.md +217 -0
- package/commands/gsd/execute-phase.md +120 -0
- package/commands/gsd/execute-plan.md +2 -2
- package/commands/gsd/help.md +63 -2
- package/commands/gsd/new-project.md +22 -2
- package/commands/gsd/plan-fix.md +1 -1
- package/commands/gsd/progress.md +4 -0
- package/commands/gsd/resume-task.md +1 -1
- package/commands/gsd/status.md +161 -0
- package/get-shit-done/references/scope-estimation.md +88 -0
- package/get-shit-done/templates/agent-history.md +138 -36
- package/get-shit-done/templates/codebase/structure.md +1 -1
- package/get-shit-done/templates/config.json +8 -0
- package/get-shit-done/templates/phase-prompt.md +91 -2
- package/get-shit-done/templates/state.md +11 -0
- package/get-shit-done/templates/summary.md +2 -2
- package/get-shit-done/workflows/execute-phase.md +696 -1531
- package/get-shit-done/workflows/execute-plan.md +1734 -0
- package/get-shit-done/workflows/plan-phase.md +105 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -177,6 +177,13 @@ Produces:
|
|
|
177
177
|
|
|
178
178
|
Each phase breaks into 2-3 atomic tasks. Each task runs in a fresh subagent context — 200k tokens purely for implementation, zero degradation.
|
|
179
179
|
|
|
180
|
+
**For multi-plan phases:**
|
|
181
|
+
```
|
|
182
|
+
/gsd:execute-phase 1 # Run all plans in parallel, "walk away" execution
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Use `/gsd:execute-plan` for interactive single-plan execution with checkpoints. Use `/gsd:execute-phase` when you have multiple plans and want parallel "walk away" automation.
|
|
186
|
+
|
|
180
187
|
### 4. Ship and iterate
|
|
181
188
|
|
|
182
189
|
```
|
|
@@ -243,6 +250,7 @@ GSD handles it for you:
|
|
|
243
250
|
| `PLAN.md` | Atomic task with XML structure, verification steps |
|
|
244
251
|
| `SUMMARY.md` | What happened, what changed, committed to history |
|
|
245
252
|
| `ISSUES.md` | Deferred enhancements tracked across sessions |
|
|
253
|
+
| `todos/` | Captured ideas and tasks for later work |
|
|
246
254
|
|
|
247
255
|
Size limits based on where Claude's quality degrades. Stay under, get consistent excellence.
|
|
248
256
|
|
|
@@ -315,7 +323,9 @@ You're never locked in. The system adapts.
|
|
|
315
323
|
| `/gsd:create-roadmap` | Create roadmap and state tracking |
|
|
316
324
|
| `/gsd:map-codebase` | Map existing codebase for brownfield projects |
|
|
317
325
|
| `/gsd:plan-phase [N]` | Generate task plans for phase |
|
|
318
|
-
| `/gsd:execute-plan` | Run plan via subagent |
|
|
326
|
+
| `/gsd:execute-plan` | Run single plan via subagent |
|
|
327
|
+
| `/gsd:execute-phase <N>` | Execute all plans in phase N with parallel agents |
|
|
328
|
+
| `/gsd:status [--wait]` | Check background agent status from parallel execution |
|
|
319
329
|
| `/gsd:progress` | Where am I? What's next? |
|
|
320
330
|
| `/gsd:verify-work [N]` | User acceptance test of phase or plan ¹ |
|
|
321
331
|
| `/gsd:plan-fix [plan]` | Plan fixes for UAT issues from verify-work |
|
|
@@ -332,6 +342,8 @@ You're never locked in. The system adapts.
|
|
|
332
342
|
| `/gsd:resume-work` | Restore from last session |
|
|
333
343
|
| `/gsd:resume-task [id]` | Resume interrupted subagent execution |
|
|
334
344
|
| `/gsd:consider-issues` | Review deferred issues, close resolved, identify urgent |
|
|
345
|
+
| `/gsd:add-todo [desc]` | Capture idea or task from conversation for later |
|
|
346
|
+
| `/gsd:check-todos [area]` | List pending todos, select one to work on |
|
|
335
347
|
| `/gsd:help` | Show all commands and usage guide |
|
|
336
348
|
|
|
337
349
|
<sup>¹ Contributed by reddit user OracleGreyBeard</sup>
|
|
@@ -353,6 +365,14 @@ You're never locked in. The system adapts.
|
|
|
353
365
|
npx get-shit-done-cc@latest
|
|
354
366
|
```
|
|
355
367
|
|
|
368
|
+
**Using Docker or containerized environments?**
|
|
369
|
+
|
|
370
|
+
If file reads fail with tilde paths (`~/.claude/...`), set `CLAUDE_CONFIG_DIR` before installing:
|
|
371
|
+
```bash
|
|
372
|
+
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
|
|
373
|
+
```
|
|
374
|
+
This ensures absolute paths are used instead of `~` which may not expand correctly in containers.
|
|
375
|
+
|
|
356
376
|
---
|
|
357
377
|
|
|
358
378
|
## Star History
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:add-todo
|
|
3
|
+
description: Capture idea or task as todo from current conversation context
|
|
4
|
+
argument-hint: [optional description]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work.
|
|
14
|
+
|
|
15
|
+
Enables "thought → capture → continue" flow without losing context or derailing current work.
|
|
16
|
+
</objective>
|
|
17
|
+
|
|
18
|
+
<context>
|
|
19
|
+
@.planning/STATE.md
|
|
20
|
+
</context>
|
|
21
|
+
|
|
22
|
+
<process>
|
|
23
|
+
|
|
24
|
+
<step name="ensure_directory">
|
|
25
|
+
```bash
|
|
26
|
+
mkdir -p .planning/todos/pending .planning/todos/done
|
|
27
|
+
```
|
|
28
|
+
</step>
|
|
29
|
+
|
|
30
|
+
<step name="check_existing_areas">
|
|
31
|
+
```bash
|
|
32
|
+
ls .planning/todos/pending/*.md 2>/dev/null | xargs -I {} grep "^area:" {} 2>/dev/null | cut -d' ' -f2 | sort -u
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Note existing areas for consistency in infer_area step.
|
|
36
|
+
</step>
|
|
37
|
+
|
|
38
|
+
<step name="extract_content">
|
|
39
|
+
**With arguments:** Use as the title/focus.
|
|
40
|
+
- `/gsd:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
41
|
+
|
|
42
|
+
**Without arguments:** Analyze recent conversation to extract:
|
|
43
|
+
- The specific problem, idea, or task discussed
|
|
44
|
+
- Relevant file paths mentioned
|
|
45
|
+
- Technical details (error messages, line numbers, constraints)
|
|
46
|
+
|
|
47
|
+
Formulate:
|
|
48
|
+
- `title`: 3-10 word descriptive title (action verb preferred)
|
|
49
|
+
- `problem`: What's wrong or why this is needed
|
|
50
|
+
- `solution`: Approach hints or "TBD" if just an idea
|
|
51
|
+
- `files`: Relevant paths with line numbers from conversation
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<step name="infer_area">
|
|
55
|
+
Infer area from file paths:
|
|
56
|
+
|
|
57
|
+
| Path pattern | Area |
|
|
58
|
+
|--------------|------|
|
|
59
|
+
| `src/api/*`, `api/*` | `api` |
|
|
60
|
+
| `src/components/*`, `src/ui/*` | `ui` |
|
|
61
|
+
| `src/auth/*`, `auth/*` | `auth` |
|
|
62
|
+
| `src/db/*`, `database/*` | `database` |
|
|
63
|
+
| `tests/*`, `__tests__/*` | `testing` |
|
|
64
|
+
| `docs/*` | `docs` |
|
|
65
|
+
| `.planning/*` | `planning` |
|
|
66
|
+
| `scripts/*`, `bin/*` | `tooling` |
|
|
67
|
+
| No files or unclear | `general` |
|
|
68
|
+
|
|
69
|
+
Use existing area from step 2 if similar match exists.
|
|
70
|
+
</step>
|
|
71
|
+
|
|
72
|
+
<step name="check_duplicates">
|
|
73
|
+
```bash
|
|
74
|
+
grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
If potential duplicate found:
|
|
78
|
+
1. Read the existing todo
|
|
79
|
+
2. Compare scope
|
|
80
|
+
|
|
81
|
+
If overlapping, use AskUserQuestion:
|
|
82
|
+
- header: "Duplicate?"
|
|
83
|
+
- question: "Similar todo exists: [title]. What would you like to do?"
|
|
84
|
+
- options:
|
|
85
|
+
- "Skip" — keep existing todo
|
|
86
|
+
- "Replace" — update existing with new context
|
|
87
|
+
- "Add anyway" — create as separate todo
|
|
88
|
+
</step>
|
|
89
|
+
|
|
90
|
+
<step name="create_file">
|
|
91
|
+
```bash
|
|
92
|
+
timestamp=$(date "+%Y-%m-%dT%H:%M")
|
|
93
|
+
date_prefix=$(date "+%Y-%m-%d")
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Generate slug from title (lowercase, hyphens, no special chars).
|
|
97
|
+
|
|
98
|
+
Write to `.planning/todos/pending/${date_prefix}-${slug}.md`:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
---
|
|
102
|
+
created: [timestamp]
|
|
103
|
+
title: [title]
|
|
104
|
+
area: [area]
|
|
105
|
+
files:
|
|
106
|
+
- [file:lines]
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Problem
|
|
110
|
+
|
|
111
|
+
[problem description - enough context for future Claude to understand weeks later]
|
|
112
|
+
|
|
113
|
+
## Solution
|
|
114
|
+
|
|
115
|
+
[approach hints or "TBD"]
|
|
116
|
+
```
|
|
117
|
+
</step>
|
|
118
|
+
|
|
119
|
+
<step name="update_state">
|
|
120
|
+
If `.planning/STATE.md` exists:
|
|
121
|
+
|
|
122
|
+
1. Count todos: `ls .planning/todos/pending/*.md 2>/dev/null | wc -l`
|
|
123
|
+
2. Update "### Pending Todos" under "## Accumulated Context"
|
|
124
|
+
</step>
|
|
125
|
+
|
|
126
|
+
<step name="git_commit">
|
|
127
|
+
Commit the todo and any updated state:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git add .planning/todos/pending/[filename]
|
|
131
|
+
[ -f .planning/STATE.md ] && git add .planning/STATE.md
|
|
132
|
+
git commit -m "$(cat <<'EOF'
|
|
133
|
+
docs: capture todo - [title]
|
|
134
|
+
|
|
135
|
+
Area: [area]
|
|
136
|
+
EOF
|
|
137
|
+
)"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Confirm: "Committed: docs: capture todo - [title]"
|
|
141
|
+
</step>
|
|
142
|
+
|
|
143
|
+
<step name="confirm">
|
|
144
|
+
```
|
|
145
|
+
Todo saved: .planning/todos/pending/[filename]
|
|
146
|
+
|
|
147
|
+
[title]
|
|
148
|
+
Area: [area]
|
|
149
|
+
Files: [count] referenced
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
Would you like to:
|
|
154
|
+
|
|
155
|
+
1. Continue with current work
|
|
156
|
+
2. Add another todo
|
|
157
|
+
3. View all todos (/gsd:check-todos)
|
|
158
|
+
```
|
|
159
|
+
</step>
|
|
160
|
+
|
|
161
|
+
</process>
|
|
162
|
+
|
|
163
|
+
<output>
|
|
164
|
+
- `.planning/todos/pending/[date]-[slug].md`
|
|
165
|
+
- Updated `.planning/STATE.md` (if exists)
|
|
166
|
+
</output>
|
|
167
|
+
|
|
168
|
+
<anti_patterns>
|
|
169
|
+
- Don't create todos for work in current plan (that's deviation rule territory)
|
|
170
|
+
- Don't create elaborate solution sections — captures ideas, not plans
|
|
171
|
+
- Don't block on missing information — "TBD" is fine
|
|
172
|
+
</anti_patterns>
|
|
173
|
+
|
|
174
|
+
<success_criteria>
|
|
175
|
+
- [ ] Directory structure exists
|
|
176
|
+
- [ ] Todo file created with valid frontmatter
|
|
177
|
+
- [ ] Problem section has enough context for future Claude
|
|
178
|
+
- [ ] No duplicates (checked and resolved)
|
|
179
|
+
- [ ] Area consistent with existing todos
|
|
180
|
+
- [ ] STATE.md updated if exists
|
|
181
|
+
- [ ] Todo and state committed to git
|
|
182
|
+
</success_criteria>
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:check-todos
|
|
3
|
+
description: List pending todos and select one to work on
|
|
4
|
+
argument-hint: [area filter]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- AskUserQuestion
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<objective>
|
|
14
|
+
List all pending todos, allow selection, load full context for the selected todo, and route to appropriate action.
|
|
15
|
+
|
|
16
|
+
Enables reviewing captured ideas and deciding what to work on next.
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
@.planning/STATE.md
|
|
21
|
+
@.planning/ROADMAP.md
|
|
22
|
+
</context>
|
|
23
|
+
|
|
24
|
+
<process>
|
|
25
|
+
|
|
26
|
+
<step name="check_exist">
|
|
27
|
+
```bash
|
|
28
|
+
TODO_COUNT=$(ls .planning/todos/pending/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
29
|
+
echo "Pending todos: $TODO_COUNT"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If count is 0:
|
|
33
|
+
```
|
|
34
|
+
No pending todos.
|
|
35
|
+
|
|
36
|
+
Todos are captured during work sessions with /gsd:add-todo.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
Would you like to:
|
|
41
|
+
|
|
42
|
+
1. Continue with current phase (/gsd:progress)
|
|
43
|
+
2. Add a todo now (/gsd:add-todo)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Exit.
|
|
47
|
+
</step>
|
|
48
|
+
|
|
49
|
+
<step name="parse_filter">
|
|
50
|
+
Check for area filter in arguments:
|
|
51
|
+
- `/gsd:check-todos` → show all
|
|
52
|
+
- `/gsd:check-todos api` → filter to area:api only
|
|
53
|
+
</step>
|
|
54
|
+
|
|
55
|
+
<step name="list_todos">
|
|
56
|
+
```bash
|
|
57
|
+
for file in .planning/todos/pending/*.md; do
|
|
58
|
+
created=$(grep "^created:" "$file" | cut -d' ' -f2)
|
|
59
|
+
title=$(grep "^title:" "$file" | cut -d':' -f2- | xargs)
|
|
60
|
+
area=$(grep "^area:" "$file" | cut -d' ' -f2)
|
|
61
|
+
echo "$created|$title|$area|$file"
|
|
62
|
+
done | sort
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Apply area filter if specified. Display as numbered list:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Pending Todos:
|
|
69
|
+
|
|
70
|
+
1. Add auth token refresh (api, 2d ago)
|
|
71
|
+
2. Fix modal z-index issue (ui, 1d ago)
|
|
72
|
+
3. Refactor database connection pool (database, 5h ago)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
Reply with a number to view details, or:
|
|
77
|
+
- `/gsd:check-todos [area]` to filter by area
|
|
78
|
+
- `q` to exit
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Format age as relative time.
|
|
82
|
+
</step>
|
|
83
|
+
|
|
84
|
+
<step name="handle_selection">
|
|
85
|
+
Wait for user to reply with a number.
|
|
86
|
+
|
|
87
|
+
If valid: load selected todo, proceed.
|
|
88
|
+
If invalid: "Invalid selection. Reply with a number (1-[N]) or `q` to exit."
|
|
89
|
+
</step>
|
|
90
|
+
|
|
91
|
+
<step name="load_context">
|
|
92
|
+
Read the todo file completely. Display:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
## [title]
|
|
96
|
+
|
|
97
|
+
**Area:** [area]
|
|
98
|
+
**Created:** [date] ([relative time] ago)
|
|
99
|
+
**Files:** [list or "None"]
|
|
100
|
+
|
|
101
|
+
### Problem
|
|
102
|
+
[problem section content]
|
|
103
|
+
|
|
104
|
+
### Solution
|
|
105
|
+
[solution section content]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If `files` field has entries, read and briefly summarize each.
|
|
109
|
+
</step>
|
|
110
|
+
|
|
111
|
+
<step name="check_roadmap">
|
|
112
|
+
```bash
|
|
113
|
+
ls .planning/ROADMAP.md 2>/dev/null && echo "Roadmap exists"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
If roadmap exists:
|
|
117
|
+
1. Check if todo's area matches an upcoming phase
|
|
118
|
+
2. Check if todo's files overlap with a phase's scope
|
|
119
|
+
3. Note any match for action options
|
|
120
|
+
</step>
|
|
121
|
+
|
|
122
|
+
<step name="offer_actions">
|
|
123
|
+
**If todo maps to a roadmap phase:**
|
|
124
|
+
|
|
125
|
+
Use AskUserQuestion:
|
|
126
|
+
- header: "Action"
|
|
127
|
+
- question: "This todo relates to Phase [N]: [name]. What would you like to do?"
|
|
128
|
+
- options:
|
|
129
|
+
- "Work on it now" — move to done, start working
|
|
130
|
+
- "Add to phase plan" — include when planning Phase [N]
|
|
131
|
+
- "Brainstorm approach" — think through before deciding
|
|
132
|
+
- "Put it back" — return to list
|
|
133
|
+
|
|
134
|
+
**If no roadmap match:**
|
|
135
|
+
|
|
136
|
+
Use AskUserQuestion:
|
|
137
|
+
- header: "Action"
|
|
138
|
+
- question: "What would you like to do with this todo?"
|
|
139
|
+
- options:
|
|
140
|
+
- "Work on it now" — move to done, start working
|
|
141
|
+
- "Create a phase" — /gsd:add-phase with this scope
|
|
142
|
+
- "Brainstorm approach" — think through before deciding
|
|
143
|
+
- "Put it back" — return to list
|
|
144
|
+
</step>
|
|
145
|
+
|
|
146
|
+
<step name="execute_action">
|
|
147
|
+
**Work on it now:**
|
|
148
|
+
```bash
|
|
149
|
+
mv ".planning/todos/pending/[filename]" ".planning/todos/done/"
|
|
150
|
+
```
|
|
151
|
+
Update STATE.md todo count. Present problem/solution context. Begin work or ask how to proceed.
|
|
152
|
+
|
|
153
|
+
**Add to phase plan:**
|
|
154
|
+
Note todo reference in phase planning notes. Keep in pending. Return to list or exit.
|
|
155
|
+
|
|
156
|
+
**Create a phase:**
|
|
157
|
+
Display: `/gsd:add-phase [description from todo]`
|
|
158
|
+
Keep in pending. User runs command in fresh context.
|
|
159
|
+
|
|
160
|
+
**Brainstorm approach:**
|
|
161
|
+
Keep in pending. Start discussion about problem and approaches.
|
|
162
|
+
|
|
163
|
+
**Put it back:**
|
|
164
|
+
Return to list_todos step.
|
|
165
|
+
</step>
|
|
166
|
+
|
|
167
|
+
<step name="update_state">
|
|
168
|
+
After any action that changes todo count:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
ls .planning/todos/pending/*.md 2>/dev/null | wc -l
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Update STATE.md "### Pending Todos" section if exists.
|
|
175
|
+
</step>
|
|
176
|
+
|
|
177
|
+
<step name="git_commit">
|
|
178
|
+
If todo was moved to done/, commit the change:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
git add .planning/todos/done/[filename]
|
|
182
|
+
git rm --cached .planning/todos/pending/[filename] 2>/dev/null || true
|
|
183
|
+
[ -f .planning/STATE.md ] && git add .planning/STATE.md
|
|
184
|
+
git commit -m "$(cat <<'EOF'
|
|
185
|
+
docs: start work on todo - [title]
|
|
186
|
+
|
|
187
|
+
Moved to done/, beginning implementation.
|
|
188
|
+
EOF
|
|
189
|
+
)"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Confirm: "Committed: docs: start work on todo - [title]"
|
|
193
|
+
</step>
|
|
194
|
+
|
|
195
|
+
</process>
|
|
196
|
+
|
|
197
|
+
<output>
|
|
198
|
+
- Moved todo to `.planning/todos/done/` (if "Work on it now")
|
|
199
|
+
- Updated `.planning/STATE.md` (if todo count changed)
|
|
200
|
+
</output>
|
|
201
|
+
|
|
202
|
+
<anti_patterns>
|
|
203
|
+
- Don't delete todos — move to done/ when work begins
|
|
204
|
+
- Don't start work without moving to done/ first
|
|
205
|
+
- Don't create plans from this command — route to /gsd:plan-phase or /gsd:add-phase
|
|
206
|
+
</anti_patterns>
|
|
207
|
+
|
|
208
|
+
<success_criteria>
|
|
209
|
+
- [ ] All pending todos listed with title, area, age
|
|
210
|
+
- [ ] Area filter applied if specified
|
|
211
|
+
- [ ] Selected todo's full context loaded
|
|
212
|
+
- [ ] Roadmap context checked for phase match
|
|
213
|
+
- [ ] Appropriate actions offered
|
|
214
|
+
- [ ] Selected action executed
|
|
215
|
+
- [ ] STATE.md updated if todo count changed
|
|
216
|
+
- [ ] Changes committed to git (if todo moved to done/)
|
|
217
|
+
</success_criteria>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd:execute-phase
|
|
3
|
+
description: Execute all plans in a phase with intelligent parallelization
|
|
4
|
+
argument-hint: "<phase-number>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Task
|
|
13
|
+
- TaskOutput
|
|
14
|
+
- AskUserQuestion
|
|
15
|
+
- SlashCommand
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Execute all unexecuted plans in a phase with parallel agent spawning.
|
|
20
|
+
|
|
21
|
+
Analyzes plan dependencies to identify independent plans that can run concurrently.
|
|
22
|
+
Spawns background agents for parallel execution, each agent commits its own tasks atomically.
|
|
23
|
+
|
|
24
|
+
**Critical constraint:** One subagent per plan, always. This is for context isolation, not parallelization. Even strictly sequential plans spawn separate subagents so each starts with fresh 200k context at 0%.
|
|
25
|
+
|
|
26
|
+
Use this command when:
|
|
27
|
+
- Phase has 2+ unexecuted plans
|
|
28
|
+
- Want "walk away, come back to completed work" execution
|
|
29
|
+
- Plans have clear dependency boundaries
|
|
30
|
+
</objective>
|
|
31
|
+
|
|
32
|
+
<execution_context>
|
|
33
|
+
@~/.claude/get-shit-done/workflows/execute-plan.md
|
|
34
|
+
@~/.claude/get-shit-done/workflows/execute-phase.md
|
|
35
|
+
@~/.claude/get-shit-done/templates/summary.md
|
|
36
|
+
@~/.claude/get-shit-done/references/checkpoints.md
|
|
37
|
+
@~/.claude/get-shit-done/references/tdd.md
|
|
38
|
+
</execution_context>
|
|
39
|
+
|
|
40
|
+
<context>
|
|
41
|
+
Phase number: $ARGUMENTS (required)
|
|
42
|
+
|
|
43
|
+
@.planning/STATE.md
|
|
44
|
+
@.planning/config.json
|
|
45
|
+
</context>
|
|
46
|
+
|
|
47
|
+
<process>
|
|
48
|
+
1. Validate phase exists in roadmap
|
|
49
|
+
2. Find all PLAN.md files without matching SUMMARY.md
|
|
50
|
+
3. If 0 or 1 plans: suggest /gsd:execute-plan instead
|
|
51
|
+
4. If 2+ plans: follow execute-phase.md workflow
|
|
52
|
+
5. Monitor parallel agents until completion
|
|
53
|
+
6. Present results and next steps
|
|
54
|
+
</process>
|
|
55
|
+
|
|
56
|
+
<execution_strategies>
|
|
57
|
+
**Strategy A: Fully Autonomous** (no checkpoints)
|
|
58
|
+
|
|
59
|
+
- Spawn subagent to execute entire plan
|
|
60
|
+
- Subagent creates SUMMARY.md and commits
|
|
61
|
+
- Main context: orchestration only (~5% usage)
|
|
62
|
+
|
|
63
|
+
**Strategy B: Segmented** (has verify-only checkpoints)
|
|
64
|
+
|
|
65
|
+
- Execute in segments between checkpoints
|
|
66
|
+
- Subagent for autonomous segments
|
|
67
|
+
- Main context for checkpoints
|
|
68
|
+
- Aggregate results → SUMMARY → commit
|
|
69
|
+
|
|
70
|
+
**Strategy C: Decision-Dependent** (has decision checkpoints)
|
|
71
|
+
|
|
72
|
+
- Execute in main context
|
|
73
|
+
- Decision outcomes affect subsequent tasks
|
|
74
|
+
- Quality maintained through small scope (2-3 tasks per plan)
|
|
75
|
+
</execution_strategies>
|
|
76
|
+
|
|
77
|
+
<deviation_rules>
|
|
78
|
+
During execution, handle discoveries automatically:
|
|
79
|
+
|
|
80
|
+
1. **Auto-fix bugs** - Fix immediately, document in Summary
|
|
81
|
+
2. **Auto-add critical** - Security/correctness gaps, add and document
|
|
82
|
+
3. **Auto-fix blockers** - Can't proceed without fix, do it and document
|
|
83
|
+
4. **Ask about architectural** - Major structural changes, stop and ask user
|
|
84
|
+
5. **Log enhancements** - Nice-to-haves, log to ISSUES.md, continue
|
|
85
|
+
|
|
86
|
+
Only rule 4 requires user intervention.
|
|
87
|
+
</deviation_rules>
|
|
88
|
+
|
|
89
|
+
<commit_rules>
|
|
90
|
+
**Per-Task Commits:**
|
|
91
|
+
|
|
92
|
+
After each task completes:
|
|
93
|
+
1. Stage only files modified by that task
|
|
94
|
+
2. Commit with format: `{type}({phase}-{plan}): {task-name}`
|
|
95
|
+
3. Types: feat, fix, test, refactor, perf, chore
|
|
96
|
+
4. Record commit hash for SUMMARY.md
|
|
97
|
+
|
|
98
|
+
**Plan Metadata Commit:**
|
|
99
|
+
|
|
100
|
+
After all tasks complete:
|
|
101
|
+
1. Stage planning artifacts only: PLAN.md, SUMMARY.md, STATE.md, ROADMAP.md
|
|
102
|
+
2. Commit with format: `docs({phase}-{plan}): complete [plan-name] plan`
|
|
103
|
+
3. NO code files (already committed per-task)
|
|
104
|
+
|
|
105
|
+
**NEVER use:**
|
|
106
|
+
- `git add .`
|
|
107
|
+
- `git add -A`
|
|
108
|
+
- `git add src/` or any broad directory
|
|
109
|
+
|
|
110
|
+
**Always stage files individually.**
|
|
111
|
+
</commit_rules>
|
|
112
|
+
|
|
113
|
+
<success_criteria>
|
|
114
|
+
- [ ] All independent plans executed in parallel
|
|
115
|
+
- [ ] Dependent plans executed after dependencies complete
|
|
116
|
+
- [ ] Each task committed individually (feat/fix/test/refactor)
|
|
117
|
+
- [ ] All SUMMARY.md files created
|
|
118
|
+
- [ ] Metadata committed by orchestrator
|
|
119
|
+
- [ ] Phase progress updated
|
|
120
|
+
</success_criteria>
|
|
@@ -28,7 +28,7 @@ Uses intelligent segmentation:
|
|
|
28
28
|
</objective>
|
|
29
29
|
|
|
30
30
|
<execution_context>
|
|
31
|
-
@~/.claude/get-shit-done/workflows/execute-
|
|
31
|
+
@~/.claude/get-shit-done/workflows/execute-plan.md
|
|
32
32
|
@~/.claude/get-shit-done/templates/summary.md
|
|
33
33
|
@~/.claude/get-shit-done/references/checkpoints.md
|
|
34
34
|
@~/.claude/get-shit-done/references/tdd.md
|
|
@@ -49,7 +49,7 @@ Plan path: $ARGUMENTS
|
|
|
49
49
|
2. Verify plan at $ARGUMENTS exists
|
|
50
50
|
3. Check if SUMMARY.md already exists (plan already executed?)
|
|
51
51
|
4. Load workflow config for mode (interactive/yolo)
|
|
52
|
-
5. Follow execute-
|
|
52
|
+
5. Follow execute-plan.md workflow:
|
|
53
53
|
- Parse plan and determine execution strategy (A/B/C)
|
|
54
54
|
- Execute tasks (via subagent or main context as appropriate)
|
|
55
55
|
- Handle checkpoints and deviations
|
package/commands/gsd/help.md
CHANGED
|
@@ -107,15 +107,38 @@ Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md`
|
|
|
107
107
|
### Execution
|
|
108
108
|
|
|
109
109
|
**`/gsd:execute-plan <path>`**
|
|
110
|
-
Execute a PLAN.md file
|
|
110
|
+
Execute a single PLAN.md file.
|
|
111
111
|
|
|
112
112
|
- Runs plan tasks sequentially
|
|
113
113
|
- Creates SUMMARY.md after completion
|
|
114
114
|
- Updates STATE.md with accumulated context
|
|
115
|
-
-
|
|
115
|
+
- Use for interactive execution with checkpoints
|
|
116
116
|
|
|
117
117
|
Usage: `/gsd:execute-plan .planning/phases/01-foundation/01-01-PLAN.md`
|
|
118
118
|
|
|
119
|
+
**`/gsd:execute-phase <phase-number>`**
|
|
120
|
+
Execute all unexecuted plans in a phase with parallel background agents.
|
|
121
|
+
|
|
122
|
+
- Analyzes plan dependencies and spawns independent plans concurrently
|
|
123
|
+
- Use when phase has 2+ plans and you want "walk away" execution
|
|
124
|
+
- Respects max_concurrent_agents from config.json
|
|
125
|
+
|
|
126
|
+
Usage: `/gsd:execute-phase 5`
|
|
127
|
+
|
|
128
|
+
Options (via `.planning/config.json` parallelization section):
|
|
129
|
+
- `max_concurrent_agents`: Limit parallel agents (default: 3)
|
|
130
|
+
- `skip_checkpoints`: Skip human checkpoints in background (default: true)
|
|
131
|
+
- `min_plans_for_parallel`: Minimum plans to trigger parallelization (default: 2)
|
|
132
|
+
|
|
133
|
+
**`/gsd:status [--wait]`**
|
|
134
|
+
Check status of background agents from parallel execution.
|
|
135
|
+
|
|
136
|
+
- Shows running/completed agents from agent-history.json
|
|
137
|
+
- Uses TaskOutput to poll agent status
|
|
138
|
+
- With `--wait`: blocks until all agents complete
|
|
139
|
+
|
|
140
|
+
Usage: `/gsd:status` or `/gsd:status --wait`
|
|
141
|
+
|
|
119
142
|
### Roadmap Management
|
|
120
143
|
|
|
121
144
|
**`/gsd:add-phase <description>`**
|
|
@@ -225,6 +248,32 @@ Review deferred issues with codebase context.
|
|
|
225
248
|
|
|
226
249
|
Usage: `/gsd:consider-issues`
|
|
227
250
|
|
|
251
|
+
### Todo Management
|
|
252
|
+
|
|
253
|
+
**`/gsd:add-todo [description]`**
|
|
254
|
+
Capture idea or task as todo from current conversation.
|
|
255
|
+
|
|
256
|
+
- Extracts context from conversation (or uses provided description)
|
|
257
|
+
- Creates structured todo file in `.planning/todos/pending/`
|
|
258
|
+
- Infers area from file paths for grouping
|
|
259
|
+
- Checks for duplicates before creating
|
|
260
|
+
- Updates STATE.md todo count
|
|
261
|
+
|
|
262
|
+
Usage: `/gsd:add-todo` (infers from conversation)
|
|
263
|
+
Usage: `/gsd:add-todo Add auth token refresh`
|
|
264
|
+
|
|
265
|
+
**`/gsd:check-todos [area]`**
|
|
266
|
+
List pending todos and select one to work on.
|
|
267
|
+
|
|
268
|
+
- Lists all pending todos with title, area, age
|
|
269
|
+
- Optional area filter (e.g., `/gsd:check-todos api`)
|
|
270
|
+
- Loads full context for selected todo
|
|
271
|
+
- Routes to appropriate action (work now, add to phase, brainstorm)
|
|
272
|
+
- Moves todo to done/ when work begins
|
|
273
|
+
|
|
274
|
+
Usage: `/gsd:check-todos`
|
|
275
|
+
Usage: `/gsd:check-todos api`
|
|
276
|
+
|
|
228
277
|
### Utility Commands
|
|
229
278
|
|
|
230
279
|
**`/gsd:help`**
|
|
@@ -239,6 +288,9 @@ Show this command reference.
|
|
|
239
288
|
├── STATE.md # Project memory & context
|
|
240
289
|
├── ISSUES.md # Deferred enhancements (created when needed)
|
|
241
290
|
├── config.json # Workflow mode & gates
|
|
291
|
+
├── todos/ # Captured ideas and tasks
|
|
292
|
+
│ ├── pending/ # Todos waiting to be worked on
|
|
293
|
+
│ └── done/ # Completed todos
|
|
242
294
|
├── codebase/ # Codebase map (brownfield projects)
|
|
243
295
|
│ ├── STACK.md # Languages, frameworks, dependencies
|
|
244
296
|
│ ├── ARCHITECTURE.md # Patterns, layers, data flow
|
|
@@ -306,6 +358,15 @@ Change anytime by editing `.planning/config.json`
|
|
|
306
358
|
/gsd:new-project # Start next milestone
|
|
307
359
|
```
|
|
308
360
|
|
|
361
|
+
**Capturing ideas during work:**
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
/gsd:add-todo # Capture from conversation context
|
|
365
|
+
/gsd:add-todo Fix modal z-index # Capture with explicit description
|
|
366
|
+
/gsd:check-todos # Review and work on todos
|
|
367
|
+
/gsd:check-todos api # Filter by area
|
|
368
|
+
```
|
|
369
|
+
|
|
309
370
|
## Getting Help
|
|
310
371
|
|
|
311
372
|
- Read `.planning/PROJECT.md` for project vision
|