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 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-phase.md
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-phase.md workflow:
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
@@ -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 directly.
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
- - Fast execution without loading full skill context
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