get-shit-done-cc 1.5.2 → 1.5.3

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
@@ -340,7 +340,6 @@ You're never locked in. The system adapts.
340
340
  | `/gsd:plan-phase [N]` | Generate task plans for phase |
341
341
  | `/gsd:execute-plan` | Run single plan via subagent |
342
342
  | `/gsd:execute-phase <N>` | Execute all plans in phase N with parallel agents |
343
- | `/gsd:status [--wait]` | Check background agent status from parallel execution |
344
343
  | `/gsd:progress` | Where am I? What's next? |
345
344
  | `/gsd:verify-work [N]` | User acceptance test of phase or plan ¹ |
346
345
  | `/gsd:plan-fix [plan]` | Plan fixes for UAT issues from verify-work |
@@ -10,14 +10,13 @@ allowed-tools:
10
10
  ---
11
11
 
12
12
  <objective>
13
- Define concrete, checkable requirements from research findings.
13
+ Define concrete, checkable requirements for v1.
14
14
 
15
- Research answers "what do products like this have?"
16
- Requirements answers "what are WE building?"
15
+ Two modes:
16
+ 1. **With research** Transform FEATURES.md into scoped requirements
17
+ 2. **Without research** — Gather requirements through questioning
17
18
 
18
- Transforms research features into scoped v1/v2 requirements that roadmap phases map to.
19
-
20
- Run after `/gsd:research-project`, before `/gsd:create-roadmap`.
19
+ Run before `/gsd:create-roadmap`.
21
20
 
22
21
  Output: `.planning/REQUIREMENTS.md`
23
22
  </objective>
@@ -30,8 +29,8 @@ Output: `.planning/REQUIREMENTS.md`
30
29
 
31
30
  <context>
32
31
  @.planning/PROJECT.md
33
- @.planning/research/FEATURES.md (required)
34
- @.planning/research/SUMMARY.md
32
+ @.planning/research/FEATURES.md (if exists)
33
+ @.planning/research/SUMMARY.md (if exists)
35
34
  </context>
36
35
 
37
36
  <process>
@@ -41,8 +40,8 @@ Output: `.planning/REQUIREMENTS.md`
41
40
  # Verify project exists
42
41
  [ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md found. Run /gsd:new-project first."; exit 1; }
43
42
 
44
- # Verify research exists
45
- [ -f .planning/research/FEATURES.md ] || { echo "ERROR: No research found. Run /gsd:research-project first."; exit 1; }
43
+ # Check for research
44
+ [ -f .planning/research/FEATURES.md ] && echo "HAS_RESEARCH" || echo "NO_RESEARCH"
46
45
 
47
46
  # Check if requirements already exist
48
47
  [ -f .planning/REQUIREMENTS.md ] && echo "REQUIREMENTS_EXISTS" || echo "NO_REQUIREMENTS"
@@ -66,12 +65,24 @@ If "Replace": Continue with workflow
66
65
  </step>
67
66
 
68
67
  <step name="execute">
68
+ **If HAS_RESEARCH:**
69
69
  Follow the define-requirements.md workflow:
70
- - Load research features
70
+ - Load research features from FEATURES.md
71
71
  - Present features by category
72
72
  - Ask user to scope each category (v1 / v2 / out of scope)
73
73
  - Capture any additions research missed
74
74
  - Generate REQUIREMENTS.md with checkable list
75
+
76
+ **If NO_RESEARCH:**
77
+ Gather requirements through questioning:
78
+ - Read PROJECT.md for core value and context
79
+ - Ask: "What are the main things users need to be able to do?"
80
+ - For each capability mentioned, probe for specifics
81
+ - Group into categories (Authentication, Content, etc.)
82
+ - For each category, ask what's v1 vs v2 vs out of scope
83
+ - Generate REQUIREMENTS.md with checkable list
84
+
85
+ Same output format either way — the difference is source (research vs conversation).
75
86
  </step>
76
87
 
77
88
  <step name="done">
@@ -101,8 +112,7 @@ Requirements defined:
101
112
 
102
113
  <success_criteria>
103
114
  - [ ] PROJECT.md validated
104
- - [ ] Research FEATURES.md loaded
105
- - [ ] Features presented by category
115
+ - [ ] Features gathered (from research OR questioning)
106
116
  - [ ] User scoped each category (v1/v2/out of scope)
107
117
  - [ ] User had opportunity to add missing requirements
108
118
  - [ ] REQUIREMENTS.md created with checkable list
@@ -144,15 +144,6 @@ Options (via `.planning/config.json` parallelization section):
144
144
  - `skip_checkpoints`: Skip human checkpoints in background (default: true)
145
145
  - `min_plans_for_parallel`: Minimum plans to trigger parallelization (default: 2)
146
146
 
147
- **`/gsd:status [--wait]`**
148
- Check status of background agents from parallel execution.
149
-
150
- - Shows running/completed agents from agent-history.json
151
- - Uses TaskOutput to poll agent status
152
- - With `--wait`: blocks until all agents complete
153
-
154
- Usage: `/gsd:status` or `/gsd:status --wait`
155
-
156
147
  ### Roadmap Management
157
148
 
158
149
  **`/gsd:add-phase <description>`**
@@ -300,15 +300,15 @@ Project initialized:
300
300
 
301
301
  Choose your path:
302
302
 
303
- **Option A: Research first** (recommended for new domains)
304
- Research the ecosystem before creating roadmap. Discovers standard stacks, expected features, architecture patterns, and common pitfalls.
303
+ **Option A: Research first** (recommended)
304
+ Research ecosystem define requirements → create roadmap. Discovers standard stacks, expected features, architecture patterns.
305
305
 
306
306
  `/gsd:research-project`
307
307
 
308
- **Option B: Create roadmap directly** (for familiar domains)
309
- Skip research if you know this domain well or have a clear spec.
308
+ **Option B: Define requirements directly** (familiar domains)
309
+ Skip research, define requirements from what you know, then create roadmap.
310
310
 
311
- `/gsd:create-roadmap`
311
+ `/gsd:define-requirements`
312
312
 
313
313
  <sub>`/clear` first → fresh context window</sub>
314
314
 
@@ -1,10 +1,11 @@
1
1
  <purpose>
2
- Transform research findings into scoped, checkable requirements.
2
+ Define concrete, checkable requirements for v1.
3
3
 
4
- Research tells you what products in this domain typically have.
5
- Requirements tell you what YOU are building for v1.
4
+ Two modes:
5
+ 1. **With research** Transform FEATURES.md into scoped requirements
6
+ 2. **Without research** — Gather requirements through questioning
6
7
 
7
- This is the bridge between "what's possible" and "what we're committing to."
8
+ This is the bridge between "what's possible/wanted" and "what we're committing to."
8
9
  </purpose>
9
10
 
10
11
  <required_reading>
@@ -12,13 +13,23 @@ This is the bridge between "what's possible" and "what we're committing to."
12
13
 
13
14
  1. ~/.claude/get-shit-done/templates/requirements.md
14
15
  2. .planning/PROJECT.md
15
- 3. .planning/research/FEATURES.md
16
- 4. .planning/research/SUMMARY.md
16
+ 3. .planning/research/FEATURES.md (if exists)
17
+ 4. .planning/research/SUMMARY.md (if exists)
17
18
  </required_reading>
18
19
 
19
20
  <process>
20
21
 
21
- <step name="load_context">
22
+ <step name="detect_mode">
23
+ Check for research:
24
+ ```bash
25
+ [ -f .planning/research/FEATURES.md ] && echo "HAS_RESEARCH" || echo "NO_RESEARCH"
26
+ ```
27
+
28
+ **If HAS_RESEARCH:** Follow steps load_context → present_features → scope_categories
29
+ **If NO_RESEARCH:** Follow steps load_project → gather_requirements → scope_categories
30
+ </step>
31
+
32
+ <step name="load_context" mode="with_research">
22
33
  Read PROJECT.md and extract:
23
34
  - Core value (the ONE thing that must work)
24
35
  - Stated constraints (budget, timeline, tech limitations)
@@ -37,11 +48,52 @@ Read research/SUMMARY.md for:
37
48
  - Suggested phase structure (informational only)
38
49
  </step>
39
50
 
51
+ <step name="load_project" mode="without_research">
52
+ Read PROJECT.md and extract:
53
+ - Core value (the ONE thing that must work)
54
+ - Stated constraints (budget, timeline, tech limitations)
55
+ - Any explicit scope boundaries from project definition
56
+ - Any requirements already mentioned in PROJECT.md
57
+ </step>
58
+
59
+ <step name="gather_requirements" mode="without_research">
60
+ Since no research exists, gather requirements through conversation.
61
+
62
+ **Start with core value:**
63
+ ```
64
+ Based on PROJECT.md, the core value is: "[core value]"
65
+
66
+ What are the main things users need to be able to do?
67
+ ```
68
+
69
+ Wait for response. For each capability mentioned:
70
+ - Ask clarifying questions to make it specific
71
+ - Probe for related capabilities they might need
72
+ - Group naturally emerging categories
73
+
74
+ **Example flow:**
75
+ ```
76
+ User: "Users need to create and share posts"
77
+
78
+ You: "For posts, what should users be able to include?
79
+ - Text only?
80
+ - Images?
81
+ - Links with previews?
82
+
83
+ And for sharing — to a feed, or also direct to other users?"
84
+ ```
85
+
86
+ Build up a mental feature list organized by category.
87
+
88
+ **When you have enough:**
89
+ Present gathered features in same format as present_features step, then proceed to scope_categories.
90
+ </step>
91
+
40
92
  <step name="present_features">
41
- Present researched features grouped by category:
93
+ Present features grouped by category (from research or gathered through questioning):
42
94
 
43
95
  ```
44
- Based on research, here are the features for [domain]:
96
+ Here are the features for [domain]:
45
97
 
46
98
  ## Authentication
47
99
  **Table stakes:**
@@ -267,7 +319,7 @@ Requirements defined:
267
319
 
268
320
  <success_criteria>
269
321
  - [ ] PROJECT.md core value extracted
270
- - [ ] Research FEATURES.md loaded and parsed
322
+ - [ ] Features gathered (from research OR conversation)
271
323
  - [ ] All categories presented to user
272
324
  - [ ] User scoped each category (v1/v2/out of scope)
273
325
  - [ ] User had opportunity to add requirements
@@ -103,15 +103,21 @@ waves = {
103
103
 
104
104
  **No dependency analysis needed.** Wave numbers are pre-computed during `/gsd:plan-phase`.
105
105
 
106
- Report wave structure to user:
106
+ Report wave structure with context:
107
107
  ```
108
- Execution Plan:
109
- Wave 1 (parallel): 03-01, 03-02
110
- Wave 2 (parallel): 03-03 [checkpoint], 03-04
111
- Wave 3: 03-05
108
+ ## Execution Plan
109
+
110
+ **Phase {X}: {Name}** {total_plans} plans across {wave_count} waves
111
+
112
+ | Wave | Plans | What it builds |
113
+ |------|-------|----------------|
114
+ | 1 | 01-01, 01-02 | {from plan objectives} |
115
+ | 2 | 01-03 | {from plan objectives} |
116
+ | 3 | 01-04 [checkpoint] | {from plan objectives} |
112
117
 
113
- Total: 5 plans in 3 waves
114
118
  ```
119
+
120
+ The "What it builds" column comes from skimming plan names/objectives. Keep it brief (3-8 words).
115
121
  </step>
116
122
 
117
123
  <step name="execute_waves">
@@ -119,7 +125,32 @@ Execute each wave in sequence. Autonomous plans within a wave run in parallel.
119
125
 
120
126
  **For each wave:**
121
127
 
122
- 1. **Spawn all autonomous agents in wave simultaneously:**
128
+ 1. **Describe what's being built (BEFORE spawning):**
129
+
130
+ Read each plan's `<objective>` section. Extract what's being built and why it matters.
131
+
132
+ **Output:**
133
+ ```
134
+ ---
135
+
136
+ ## Wave {N}
137
+
138
+ **{Plan ID}: {Plan Name}**
139
+ {2-3 sentences: what this builds, key technical approach, why it matters in context}
140
+
141
+ **{Plan ID}: {Plan Name}** (if parallel)
142
+ {same format}
143
+
144
+ Spawning {count} agent(s)...
145
+
146
+ ---
147
+ ```
148
+
149
+ **Examples:**
150
+ - Bad: "Executing terrain generation plan"
151
+ - Good: "Procedural terrain generator using Perlin noise — creates height maps, biome zones, and collision meshes. Required before vehicle physics can interact with ground."
152
+
153
+ 2. **Spawn all autonomous agents in wave simultaneously:**
123
154
 
124
155
  Use Task tool with multiple parallel calls. Each agent gets prompt from subagent-task-prompt template:
125
156
 
@@ -155,12 +186,34 @@ Execute each wave in sequence. Autonomous plans within a wave run in parallel.
155
186
 
156
187
  Task tool blocks until each agent finishes. All parallel agents return together.
157
188
 
158
- 3. **Collect results from wave:**
189
+ 3. **Report completion and what was built:**
159
190
 
160
191
  For each completed agent:
161
192
  - Verify SUMMARY.md exists at expected path
162
- - Note any issues reported
163
- - Record completion
193
+ - Read SUMMARY.md to extract what was built
194
+ - Note any issues or deviations
195
+
196
+ **Output:**
197
+ ```
198
+ ---
199
+
200
+ ## Wave {N} Complete
201
+
202
+ **{Plan ID}: {Plan Name}**
203
+ {What was built — from SUMMARY.md deliverables}
204
+ {Notable deviations or discoveries, if any}
205
+
206
+ **{Plan ID}: {Plan Name}** (if parallel)
207
+ {same format}
208
+
209
+ {If more waves: brief note on what this enables for next wave}
210
+
211
+ ---
212
+ ```
213
+
214
+ **Examples:**
215
+ - Bad: "Wave 2 complete. Proceeding to Wave 3."
216
+ - Good: "Terrain system complete — 3 biome types, height-based texturing, physics collision meshes. Vehicle physics (Wave 3) can now reference ground surfaces."
164
217
 
165
218
  4. **Handle failures:**
166
219
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-shit-done-cc",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.",
5
5
  "bin": {
6
6
  "get-shit-done-cc": "bin/install.js"
@@ -1,263 +0,0 @@
1
- # Agent History Template
2
-
3
- Template for `.planning/agent-history.json` - tracks subagent spawns during plan execution for resume capability.
4
-
5
- ---
6
-
7
- ## File Template
8
-
9
- ```json
10
- {
11
- "version": "1.2",
12
- "max_entries": 50,
13
- "entries": []
14
- }
15
- ```
16
-
17
- ## Entry Schema
18
-
19
- Each entry tracks a subagent spawn or status change:
20
-
21
- ```json
22
- {
23
- "agent_id": "agent_01HXXXX...",
24
- "task_description": "Execute tasks 1-3 from plan 02-01",
25
- "phase": "02",
26
- "plan": "01",
27
- "segment": 1,
28
- "timestamp": "2026-01-15T14:22:10Z",
29
- "status": "spawned",
30
- "completion_timestamp": null,
31
- "execution_mode": "sequential",
32
- "parallel_group": null,
33
- "granularity": "plan",
34
- "depends_on": null,
35
- "files_modified": null,
36
- "checkpoints_skipped": null,
37
- "task_results": null
38
- }
39
- ```
40
-
41
- ### Field Definitions
42
-
43
- | Field | Type | Description |
44
- |-------|------|-------------|
45
- | agent_id | string | Unique ID returned by Task tool |
46
- | task_description | string | Brief description of what agent is executing |
47
- | phase | string | Phase number (e.g., "02", "02.1") |
48
- | plan | string | Plan number within phase |
49
- | segment | number/null | Segment number for segmented plans, null for full plan |
50
- | timestamp | string | ISO 8601 timestamp when agent was spawned |
51
- | status | string | spawned, completed, interrupted, resumed, queued, failed |
52
- | completion_timestamp | string/null | ISO timestamp when completed |
53
- | execution_mode | string | "sequential" or "parallel" |
54
- | parallel_group | string/null | Batch ID linking agents in same parallel execution |
55
- | granularity | string | "plan" or "task_group" |
56
- | depends_on | array/null | Agent IDs or plan refs this depends on |
57
- | files_modified | array/null | Files this agent created/modified |
58
- | checkpoints_skipped | number/null | Count of checkpoints skipped in background |
59
- | task_results | object/null | Per-task outcomes for task-level parallelization |
60
-
61
- ### Status Lifecycle
62
-
63
- ```
64
- queued ──> spawned ──────────────────> completed
65
- │ ^
66
- │ │
67
- ├──> interrupted ──> resumed┘
68
-
69
- └──> failed
70
- ```
71
-
72
- - **queued**: Waiting for dependency (parallel execution only)
73
- - **spawned**: Agent created via Task tool, execution in progress
74
- - **completed**: Agent finished successfully, results received
75
- - **interrupted**: Session ended before agent completed (detected on resume)
76
- - **resumed**: Previously interrupted agent resumed via resume parameter
77
- - **failed**: Agent execution failed (error during execution)
78
-
79
- ## Usage
80
-
81
- ### When to Create File
82
-
83
- Create `.planning/agent-history.json` from this template when:
84
- - First subagent spawn in execute-plan workflow
85
- - File doesn't exist yet
86
-
87
- ### When to Add Entry
88
-
89
- Add new entry immediately after Task tool returns with agent_id:
90
-
91
- ```
92
- 1. Task tool spawns subagent
93
- 2. Response includes agent_id
94
- 3. Write agent_id to .planning/current-agent-id.txt
95
- 4. Append entry to agent-history.json with status "spawned"
96
- ```
97
-
98
- ### When to Update Entry
99
-
100
- Update existing entry when:
101
-
102
- **On successful completion:**
103
- ```json
104
- {
105
- "status": "completed",
106
- "completion_timestamp": "2026-01-15T14:45:33Z"
107
- }
108
- ```
109
-
110
- **On resume detection (interrupted agent found):**
111
- ```json
112
- {
113
- "status": "interrupted"
114
- }
115
- ```
116
-
117
- Then add new entry with resumed status:
118
- ```json
119
- {
120
- "agent_id": "agent_01HXXXX...",
121
- "status": "resumed",
122
- "timestamp": "2026-01-15T15:00:00Z"
123
- }
124
- ```
125
-
126
- ### Entry Retention
127
-
128
- - Keep maximum 50 entries (configurable via max_entries)
129
- - On exceeding limit, remove oldest completed entries first
130
- - Never remove entries with status "spawned" (may need resume)
131
- - Prune during init_agent_tracking step
132
-
133
- ## Example Entries
134
-
135
- ### Sequential Execution (Default)
136
-
137
- ```json
138
- {
139
- "agent_id": "agent_01HXY123ABC",
140
- "task_description": "Execute full plan 02-01 (autonomous)",
141
- "phase": "02",
142
- "plan": "01",
143
- "segment": null,
144
- "timestamp": "2026-01-15T14:22:10Z",
145
- "status": "completed",
146
- "completion_timestamp": "2026-01-15T14:45:33Z",
147
- "execution_mode": "sequential",
148
- "parallel_group": null,
149
- "granularity": "plan",
150
- "depends_on": null,
151
- "files_modified": ["src/api/auth.ts", "src/types/user.ts"],
152
- "checkpoints_skipped": null,
153
- "task_results": null
154
- }
155
- ```
156
-
157
- ### Parallel Execution (Plan-Level)
158
-
159
- Independent plans in a phase running in parallel:
160
-
161
- ```json
162
- {
163
- "agent_id": "agent_01HXYZ123",
164
- "task_description": "Execute plan 05-01 (parallel)",
165
- "phase": "05",
166
- "plan": "01",
167
- "segment": null,
168
- "timestamp": "2026-01-12T10:00:00Z",
169
- "status": "completed",
170
- "completion_timestamp": "2026-01-12T10:15:00Z",
171
- "execution_mode": "parallel",
172
- "parallel_group": "phase-05-batch-1736676000",
173
- "granularity": "plan",
174
- "depends_on": null,
175
- "files_modified": ["src/auth/login.ts", "src/auth/types.ts"],
176
- "checkpoints_skipped": 1,
177
- "task_results": null
178
- }
179
- ```
180
-
181
- ### Queued with Dependency
182
-
183
- Agent waiting for another to complete:
184
-
185
- ```json
186
- {
187
- "agent_id": "agent_01HXYZ456",
188
- "task_description": "Execute plan 05-03 (depends on 05-01)",
189
- "phase": "05",
190
- "plan": "03",
191
- "segment": null,
192
- "timestamp": "2026-01-12T10:15:00Z",
193
- "status": "spawned",
194
- "completion_timestamp": null,
195
- "execution_mode": "parallel",
196
- "parallel_group": "phase-05-batch-1736676000",
197
- "granularity": "plan",
198
- "depends_on": ["agent_01HXYZ123"],
199
- "files_modified": null,
200
- "checkpoints_skipped": null,
201
- "task_results": null
202
- }
203
- ```
204
-
205
- ### Parallel Group Format
206
-
207
- - **Plan-level parallel:** `phase-{phase}-batch-{timestamp}`
208
- - **Task-level parallel:** `plan-{phase}-{plan}-tasks-batch-{timestamp}`
209
-
210
- Example: `phase-05-batch-1736676000` groups all agents executing Phase 5 plans in parallel.
211
-
212
- ## Parallel Execution Resume
213
-
214
- When a session is interrupted during parallel execution:
215
-
216
- ### Detection
217
-
218
- Check for entries with `status: "spawned"` and `parallel_group` set. These are agents that were running when session ended.
219
-
220
- ```bash
221
- # Find interrupted parallel agents
222
- jq '.entries[] | select(.status == "spawned" and .parallel_group != null)' .planning/agent-history.json
223
- ```
224
-
225
- ### Resume Options
226
-
227
- 1. **Resume batch:** Resume all interrupted agents in the parallel group
228
- 2. **Resume single:** Resume a specific agent by ID
229
- 3. **Start fresh:** Abandon interrupted batch, start new execution
230
-
231
- ### Resume Command
232
-
233
- `/gsd:resume-task` accepts:
234
- - No argument: Resume most recent interrupted agent
235
- - Agent ID: Resume specific agent
236
- - `--batch`: Resume entire parallel group
237
-
238
- ### Conflict Detection
239
-
240
- Before resuming, check for file modifications since spawn:
241
-
242
- ```bash
243
- git diff --name-only ${SPAWN_COMMIT}..HEAD
244
- ```
245
-
246
- If files modified by another agent conflict with files this agent modifies, warn user before proceeding. This prevents overwriting work done by other parallel agents that completed after the interruption.
247
-
248
- ## Related Files
249
-
250
- - `.planning/current-agent-id.txt`: Single line with currently active agent ID (for quick resume lookup)
251
- - `.planning/STATE.md`: Project state including session continuity info
252
-
253
- ---
254
-
255
- ## Template Notes
256
-
257
- **When to create:** First subagent spawn during execute-plan workflow.
258
-
259
- **Location:** `.planning/agent-history.json`
260
-
261
- **Companion file:** `.planning/current-agent-id.txt` (single agent ID, overwritten on each spawn)
262
-
263
- **Purpose:** Enable resume capability for interrupted subagent executions via Task tool's resume parameter.