@undeemed/get-shit-done-codex 1.20.3 → 1.20.7
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 +13 -3
- package/agents/gsd-codebase-mapper.md +3 -0
- package/agents/gsd-debugger.md +3 -0
- package/agents/gsd-executor.md +52 -2
- package/agents/gsd-integration-checker.md +20 -0
- package/agents/gsd-phase-researcher.md +96 -4
- package/agents/gsd-plan-checker.md +125 -3
- package/agents/gsd-planner.md +38 -3
- package/agents/gsd-project-researcher.md +3 -0
- package/agents/gsd-research-synthesizer.md +3 -0
- package/agents/gsd-roadmapper.md +3 -0
- package/agents/gsd-verifier.md +25 -8
- package/commands/gsd/add-phase.md +6 -2
- package/commands/gsd/add-todo.md +6 -1
- package/commands/gsd/audit-milestone.md +1 -7
- package/commands/gsd/check-todos.md +6 -2
- package/commands/gsd/debug.md +3 -1
- package/commands/gsd/discuss-phase.md +1 -5
- package/commands/gsd/execute-phase.md +1 -2
- package/commands/gsd/insert-phase.md +1 -2
- package/commands/gsd/list-phase-assumptions.md +1 -5
- package/commands/gsd/new-milestone.md +1 -8
- package/commands/gsd/pause-work.md +4 -1
- package/commands/gsd/plan-milestone-gaps.md +1 -7
- package/commands/gsd/quick.md +2 -1
- package/commands/gsd/remove-phase.md +1 -2
- package/commands/gsd/research-phase.md +17 -15
- package/commands/gsd/verify-work.md +1 -2
- package/get-shit-done/bin/gsd-tools.cjs +168 -4858
- package/get-shit-done/bin/lib/commands.cjs +556 -0
- package/get-shit-done/bin/lib/config.cjs +162 -0
- package/get-shit-done/bin/lib/core.cjs +398 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
- package/get-shit-done/bin/lib/init.cjs +694 -0
- package/get-shit-done/bin/lib/milestone.cjs +215 -0
- package/get-shit-done/bin/lib/phase.cjs +873 -0
- package/get-shit-done/bin/lib/roadmap.cjs +298 -0
- package/get-shit-done/bin/lib/state.cjs +490 -0
- package/get-shit-done/bin/lib/template.cjs +222 -0
- package/get-shit-done/bin/lib/verify.cjs +772 -0
- package/get-shit-done/references/checkpoints.md +1 -0
- package/get-shit-done/templates/VALIDATION.md +104 -0
- package/get-shit-done/templates/config.json +2 -1
- package/get-shit-done/templates/phase-prompt.md +2 -0
- package/get-shit-done/templates/roadmap.md +1 -1
- package/get-shit-done/templates/summary.md +2 -0
- package/get-shit-done/workflows/audit-milestone.md +63 -8
- package/get-shit-done/workflows/complete-milestone.md +26 -0
- package/get-shit-done/workflows/diagnose-issues.md +1 -1
- package/get-shit-done/workflows/discuss-phase.md +68 -13
- package/get-shit-done/workflows/execute-phase.md +54 -9
- package/get-shit-done/workflows/execute-plan.md +17 -13
- package/get-shit-done/workflows/map-codebase.md +32 -44
- package/get-shit-done/workflows/new-milestone.md +16 -7
- package/get-shit-done/workflows/new-project.md +34 -31
- package/get-shit-done/workflows/plan-milestone-gaps.md +23 -5
- package/get-shit-done/workflows/plan-phase.md +106 -76
- package/get-shit-done/workflows/progress.md +14 -26
- package/get-shit-done/workflows/quick.md +24 -15
- package/get-shit-done/workflows/research-phase.md +10 -11
- package/get-shit-done/workflows/settings.md +16 -3
- package/get-shit-done/workflows/transition.md +5 -0
- package/get-shit-done/workflows/verify-work.md +11 -12
- package/hooks/dist/gsd-context-monitor.js +122 -0
- package/hooks/dist/gsd-statusline.js +17 -0
- package/package.json +2 -2
- package/scripts/build-hooks.js +1 -0
- package/get-shit-done/bin/gsd-tools.test.cjs +0 -2273
|
@@ -90,17 +90,13 @@ Use Task tool with `subagent_type="gsd-codebase-mapper"`, `model="{mapper_model}
|
|
|
90
90
|
|
|
91
91
|
**Agent 1: Tech Focus**
|
|
92
92
|
|
|
93
|
-
Task tool parameters:
|
|
94
93
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
Prompt:
|
|
102
|
-
```
|
|
103
|
-
Focus: tech
|
|
94
|
+
Task(
|
|
95
|
+
subagent_type="gsd-codebase-mapper",
|
|
96
|
+
model="{mapper_model}",
|
|
97
|
+
run_in_background=true,
|
|
98
|
+
description="Map codebase tech stack",
|
|
99
|
+
prompt="Focus: tech
|
|
104
100
|
|
|
105
101
|
Analyze this codebase for technology stack and external integrations.
|
|
106
102
|
|
|
@@ -108,22 +104,19 @@ Write these documents to .planning/codebase/:
|
|
|
108
104
|
- STACK.md - Languages, runtime, frameworks, dependencies, configuration
|
|
109
105
|
- INTEGRATIONS.md - External APIs, databases, auth providers, webhooks
|
|
110
106
|
|
|
111
|
-
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
|
107
|
+
Explore thoroughly. Write documents directly using templates. Return confirmation only."
|
|
108
|
+
)
|
|
112
109
|
```
|
|
113
110
|
|
|
114
111
|
**Agent 2: Architecture Focus**
|
|
115
112
|
|
|
116
|
-
Task tool parameters:
|
|
117
|
-
```
|
|
118
|
-
subagent_type: "gsd-codebase-mapper"
|
|
119
|
-
model: "{mapper_model}"
|
|
120
|
-
run_in_background: true
|
|
121
|
-
description: "Map codebase architecture"
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Prompt:
|
|
125
113
|
```
|
|
126
|
-
|
|
114
|
+
Task(
|
|
115
|
+
subagent_type="gsd-codebase-mapper",
|
|
116
|
+
model="{mapper_model}",
|
|
117
|
+
run_in_background=true,
|
|
118
|
+
description="Map codebase architecture",
|
|
119
|
+
prompt="Focus: arch
|
|
127
120
|
|
|
128
121
|
Analyze this codebase architecture and directory structure.
|
|
129
122
|
|
|
@@ -131,22 +124,19 @@ Write these documents to .planning/codebase/:
|
|
|
131
124
|
- ARCHITECTURE.md - Pattern, layers, data flow, abstractions, entry points
|
|
132
125
|
- STRUCTURE.md - Directory layout, key locations, naming conventions
|
|
133
126
|
|
|
134
|
-
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
|
127
|
+
Explore thoroughly. Write documents directly using templates. Return confirmation only."
|
|
128
|
+
)
|
|
135
129
|
```
|
|
136
130
|
|
|
137
131
|
**Agent 3: Quality Focus**
|
|
138
132
|
|
|
139
|
-
Task tool parameters:
|
|
140
133
|
```
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
Prompt:
|
|
148
|
-
```
|
|
149
|
-
Focus: quality
|
|
134
|
+
Task(
|
|
135
|
+
subagent_type="gsd-codebase-mapper",
|
|
136
|
+
model="{mapper_model}",
|
|
137
|
+
run_in_background=true,
|
|
138
|
+
description="Map codebase conventions",
|
|
139
|
+
prompt="Focus: quality
|
|
150
140
|
|
|
151
141
|
Analyze this codebase for coding conventions and testing patterns.
|
|
152
142
|
|
|
@@ -154,29 +144,27 @@ Write these documents to .planning/codebase/:
|
|
|
154
144
|
- CONVENTIONS.md - Code style, naming, patterns, error handling
|
|
155
145
|
- TESTING.md - Framework, structure, mocking, coverage
|
|
156
146
|
|
|
157
|
-
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
|
147
|
+
Explore thoroughly. Write documents directly using templates. Return confirmation only."
|
|
148
|
+
)
|
|
158
149
|
```
|
|
159
150
|
|
|
160
151
|
**Agent 4: Concerns Focus**
|
|
161
152
|
|
|
162
|
-
Task tool parameters:
|
|
163
|
-
```
|
|
164
|
-
subagent_type: "gsd-codebase-mapper"
|
|
165
|
-
model: "{mapper_model}"
|
|
166
|
-
run_in_background: true
|
|
167
|
-
description: "Map codebase concerns"
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Prompt:
|
|
171
153
|
```
|
|
172
|
-
|
|
154
|
+
Task(
|
|
155
|
+
subagent_type="gsd-codebase-mapper",
|
|
156
|
+
model="{mapper_model}",
|
|
157
|
+
run_in_background=true,
|
|
158
|
+
description="Map codebase concerns",
|
|
159
|
+
prompt="Focus: concerns
|
|
173
160
|
|
|
174
161
|
Analyze this codebase for technical debt, known issues, and areas of concern.
|
|
175
162
|
|
|
176
163
|
Write this document to .planning/codebase/:
|
|
177
164
|
- CONCERNS.md - Tech debt, bugs, security, performance, fragile areas
|
|
178
165
|
|
|
179
|
-
Explore thoroughly. Write document directly using template. Return confirmation only.
|
|
166
|
+
Explore thoroughly. Write document directly using template. Return confirmation only."
|
|
167
|
+
)
|
|
180
168
|
```
|
|
181
169
|
|
|
182
170
|
Continue to collect_confirmations.
|
|
@@ -128,7 +128,9 @@ Focus ONLY on what's needed for the NEW features.
|
|
|
128
128
|
|
|
129
129
|
<question>{QUESTION}</question>
|
|
130
130
|
|
|
131
|
-
<
|
|
131
|
+
<files_to_read>
|
|
132
|
+
- .planning/PROJECT.md (Project context)
|
|
133
|
+
</files_to_read>
|
|
132
134
|
|
|
133
135
|
<downstream_consumer>{CONSUMER}</downstream_consumer>
|
|
134
136
|
|
|
@@ -157,7 +159,12 @@ After all 4 complete, spawn synthesizer:
|
|
|
157
159
|
Task(prompt="
|
|
158
160
|
Synthesize research outputs into SUMMARY.md.
|
|
159
161
|
|
|
160
|
-
|
|
162
|
+
<files_to_read>
|
|
163
|
+
- .planning/research/STACK.md
|
|
164
|
+
- .planning/research/FEATURES.md
|
|
165
|
+
- .planning/research/ARCHITECTURE.md
|
|
166
|
+
- .planning/research/PITFALLS.md
|
|
167
|
+
</files_to_read>
|
|
161
168
|
|
|
162
169
|
Write to: .planning/research/SUMMARY.md
|
|
163
170
|
Use template: ~/.codex/get-shit-done/templates/research-project/SUMMARY.md
|
|
@@ -264,11 +271,13 @@ node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: define milestone v[X
|
|
|
264
271
|
```
|
|
265
272
|
Task(prompt="
|
|
266
273
|
<planning_context>
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
274
|
+
<files_to_read>
|
|
275
|
+
- .planning/PROJECT.md
|
|
276
|
+
- .planning/REQUIREMENTS.md
|
|
277
|
+
- .planning/research/SUMMARY.md (if exists)
|
|
278
|
+
- .planning/config.json
|
|
279
|
+
- .planning/MILESTONES.md
|
|
280
|
+
</files_to_read>
|
|
272
281
|
</planning_context>
|
|
273
282
|
|
|
274
283
|
<instructions>
|
|
@@ -49,7 +49,7 @@ The document should describe what you want to build.
|
|
|
49
49
|
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init new-project)
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`.
|
|
52
|
+
Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`, `project_path`.
|
|
53
53
|
|
|
54
54
|
**If `project_exists` is true:** Error — project already initialized. Use `/gsd:progress`.
|
|
55
55
|
|
|
@@ -176,7 +176,8 @@ Create `.planning/config.json` with mode set to "yolo":
|
|
|
176
176
|
"workflow": {
|
|
177
177
|
"research": true|false,
|
|
178
178
|
"plan_check": true|false,
|
|
179
|
-
"verifier": true|false
|
|
179
|
+
"verifier": true|false,
|
|
180
|
+
"auto_advance": true
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
```
|
|
@@ -190,6 +191,12 @@ mkdir -p .planning
|
|
|
190
191
|
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json
|
|
191
192
|
```
|
|
192
193
|
|
|
194
|
+
**Persist auto-advance to config (survives context compaction):**
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs config-set workflow.auto_advance true
|
|
198
|
+
```
|
|
199
|
+
|
|
193
200
|
Proceed to Step 4 (skip Steps 3 and 5).
|
|
194
201
|
|
|
195
202
|
## 3. Deep Questioning
|
|
@@ -534,7 +541,7 @@ Display spawning indicator:
|
|
|
534
541
|
→ Pitfalls research
|
|
535
542
|
```
|
|
536
543
|
|
|
537
|
-
Spawn 4 parallel gsd-project-researcher agents with
|
|
544
|
+
Spawn 4 parallel gsd-project-researcher agents with path references:
|
|
538
545
|
|
|
539
546
|
```
|
|
540
547
|
Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
|
|
@@ -554,9 +561,9 @@ Subsequent: Research what's needed to add [target features] to an existing [doma
|
|
|
554
561
|
What's the standard 2025 stack for [domain]?
|
|
555
562
|
</question>
|
|
556
563
|
|
|
557
|
-
<
|
|
558
|
-
|
|
559
|
-
</
|
|
564
|
+
<files_to_read>
|
|
565
|
+
- {project_path} (Project context and goals)
|
|
566
|
+
</files_to_read>
|
|
560
567
|
|
|
561
568
|
<downstream_consumer>
|
|
562
569
|
Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
@@ -594,9 +601,9 @@ Subsequent: How do [target features] typically work? What's expected behavior?
|
|
|
594
601
|
What features do [domain] products have? What's table stakes vs differentiating?
|
|
595
602
|
</question>
|
|
596
603
|
|
|
597
|
-
<
|
|
598
|
-
|
|
599
|
-
</
|
|
604
|
+
<files_to_read>
|
|
605
|
+
- {project_path} (Project context)
|
|
606
|
+
</files_to_read>
|
|
600
607
|
|
|
601
608
|
<downstream_consumer>
|
|
602
609
|
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
@@ -634,9 +641,9 @@ Subsequent: How do [target features] integrate with existing [domain] architectu
|
|
|
634
641
|
How are [domain] systems typically structured? What are major components?
|
|
635
642
|
</question>
|
|
636
643
|
|
|
637
|
-
<
|
|
638
|
-
|
|
639
|
-
</
|
|
644
|
+
<files_to_read>
|
|
645
|
+
- {project_path} (Project context)
|
|
646
|
+
</files_to_read>
|
|
640
647
|
|
|
641
648
|
<downstream_consumer>
|
|
642
649
|
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
@@ -674,9 +681,9 @@ Subsequent: What are common mistakes when adding [target features] to [domain]?
|
|
|
674
681
|
What do [domain] projects commonly get wrong? Critical mistakes?
|
|
675
682
|
</question>
|
|
676
683
|
|
|
677
|
-
<
|
|
678
|
-
|
|
679
|
-
</
|
|
684
|
+
<files_to_read>
|
|
685
|
+
- {project_path} (Project context)
|
|
686
|
+
</files_to_read>
|
|
680
687
|
|
|
681
688
|
<downstream_consumer>
|
|
682
689
|
Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
@@ -706,13 +713,12 @@ Task(prompt="
|
|
|
706
713
|
Synthesize research outputs into SUMMARY.md.
|
|
707
714
|
</task>
|
|
708
715
|
|
|
709
|
-
<
|
|
710
|
-
Read these files:
|
|
716
|
+
<files_to_read>
|
|
711
717
|
- .planning/research/STACK.md
|
|
712
718
|
- .planning/research/FEATURES.md
|
|
713
719
|
- .planning/research/ARCHITECTURE.md
|
|
714
720
|
- .planning/research/PITFALLS.md
|
|
715
|
-
</
|
|
721
|
+
</files_to_read>
|
|
716
722
|
|
|
717
723
|
<output>
|
|
718
724
|
Write to: .planning/research/SUMMARY.md
|
|
@@ -895,23 +901,18 @@ Display stage banner:
|
|
|
895
901
|
◆ Spawning roadmapper...
|
|
896
902
|
```
|
|
897
903
|
|
|
898
|
-
Spawn gsd-roadmapper agent with
|
|
904
|
+
Spawn gsd-roadmapper agent with path references:
|
|
899
905
|
|
|
900
906
|
```
|
|
901
907
|
Task(prompt="
|
|
902
908
|
<planning_context>
|
|
903
909
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
**Research (if exists):**
|
|
911
|
-
@.planning/research/SUMMARY.md
|
|
912
|
-
|
|
913
|
-
**Config:**
|
|
914
|
-
@.planning/config.json
|
|
910
|
+
<files_to_read>
|
|
911
|
+
- .planning/PROJECT.md (Project context)
|
|
912
|
+
- .planning/REQUIREMENTS.md (v1 Requirements)
|
|
913
|
+
- .planning/research/SUMMARY.md (Research findings - if exists)
|
|
914
|
+
- .planning/config.json (Depth and mode settings)
|
|
915
|
+
</files_to_read>
|
|
915
916
|
|
|
916
917
|
</planning_context>
|
|
917
918
|
|
|
@@ -999,7 +1000,9 @@ Use AskUserQuestion:
|
|
|
999
1000
|
User feedback on roadmap:
|
|
1000
1001
|
[user's notes]
|
|
1001
1002
|
|
|
1002
|
-
|
|
1003
|
+
<files_to_read>
|
|
1004
|
+
- .planning/ROADMAP.md (Current roadmap to revise)
|
|
1005
|
+
</files_to_read>
|
|
1003
1006
|
|
|
1004
1007
|
Update the roadmap based on feedback. Edit files in place.
|
|
1005
1008
|
Return ROADMAP REVISED with changes made.
|
|
@@ -123,19 +123,34 @@ Add new phases to current milestone:
|
|
|
123
123
|
...
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
## 7.
|
|
126
|
+
## 7. Update REQUIREMENTS.md Traceability Table (REQUIRED)
|
|
127
|
+
|
|
128
|
+
For each REQ-ID assigned to a gap closure phase:
|
|
129
|
+
- Update the Phase column to reflect the new gap closure phase
|
|
130
|
+
- Reset Status to `Pending`
|
|
131
|
+
|
|
132
|
+
Reset checked-off requirements the audit found unsatisfied:
|
|
133
|
+
- Change `[x]` → `[ ]` for any requirement marked unsatisfied in the audit
|
|
134
|
+
- Update coverage count at top of REQUIREMENTS.md
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Verify traceability table reflects gap closure assignments
|
|
138
|
+
grep -c "Pending" .planning/REQUIREMENTS.md
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## 8. Create Phase Directories
|
|
127
142
|
|
|
128
143
|
```bash
|
|
129
144
|
mkdir -p ".planning/phases/{NN}-{name}"
|
|
130
145
|
```
|
|
131
146
|
|
|
132
|
-
##
|
|
147
|
+
## 9. Commit Roadmap and Requirements Update
|
|
133
148
|
|
|
134
149
|
```bash
|
|
135
|
-
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md
|
|
150
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md .planning/REQUIREMENTS.md
|
|
136
151
|
```
|
|
137
152
|
|
|
138
|
-
##
|
|
153
|
+
## 10. Offer Next Steps
|
|
139
154
|
|
|
140
155
|
```markdown
|
|
141
156
|
## ✓ Gap Closure Phases Created
|
|
@@ -250,7 +265,10 @@ becomes:
|
|
|
250
265
|
- [ ] Gaps grouped into logical phases
|
|
251
266
|
- [ ] User confirmed phase plan
|
|
252
267
|
- [ ] ROADMAP.md updated with new phases
|
|
268
|
+
- [ ] REQUIREMENTS.md traceability table updated with gap closure phase assignments
|
|
269
|
+
- [ ] Unsatisfied requirement checkboxes reset (`[x]` → `[ ]`)
|
|
270
|
+
- [ ] Coverage count updated in REQUIREMENTS.md
|
|
253
271
|
- [ ] Phase directories created
|
|
254
|
-
- [ ] Changes committed
|
|
272
|
+
- [ ] Changes committed (includes REQUIREMENTS.md)
|
|
255
273
|
- [ ] User knows to run `/gsd:plan-phase` next
|
|
256
274
|
</success_criteria>
|
|
@@ -12,23 +12,15 @@ Read all files referenced by the invoking prompt's execution_context before star
|
|
|
12
12
|
|
|
13
13
|
## 1. Initialize
|
|
14
14
|
|
|
15
|
-
Load all context in one call (
|
|
15
|
+
Load all context in one call (paths only to minimize orchestrator context):
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
# Large payloads are written to a tmpfile — output starts with @file:/path
|
|
20
|
-
if [[ "$INIT_RAW" == @file:* ]]; then
|
|
21
|
-
INIT_FILE="${INIT_RAW#@file:}"
|
|
22
|
-
INIT=$(cat "$INIT_FILE")
|
|
23
|
-
rm -f "$INIT_FILE"
|
|
24
|
-
else
|
|
25
|
-
INIT="$INIT_RAW"
|
|
26
|
-
fi
|
|
18
|
+
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init plan-phase "$PHASE")
|
|
27
19
|
```
|
|
28
20
|
|
|
29
|
-
Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`.
|
|
21
|
+
Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `nyquist_validation_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`.
|
|
30
22
|
|
|
31
|
-
**File
|
|
23
|
+
**File paths (for <files_to_read> blocks):** `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `verification_path`, `uat_path`. These are null if files don't exist.
|
|
32
24
|
|
|
33
25
|
**If `planning_exists` is false:** Error — run `/gsd:new-project` first.
|
|
34
26
|
|
|
@@ -55,13 +47,11 @@ PHASE_INFO=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${
|
|
|
55
47
|
|
|
56
48
|
## 4. Load CONTEXT.md
|
|
57
49
|
|
|
58
|
-
|
|
50
|
+
Check `context_path` from init JSON.
|
|
59
51
|
|
|
60
|
-
|
|
52
|
+
If `context_path` is not null, display: `Using phase context from: ${context_path}`
|
|
61
53
|
|
|
62
|
-
If `
|
|
63
|
-
|
|
64
|
-
**If `context_content` is null (no CONTEXT.md exists):**
|
|
54
|
+
**If `context_path` is null (no CONTEXT.md exists):**
|
|
65
55
|
|
|
66
56
|
Use AskUserQuestion:
|
|
67
57
|
- header: "No context"
|
|
@@ -94,10 +84,7 @@ Display banner:
|
|
|
94
84
|
|
|
95
85
|
```bash
|
|
96
86
|
PHASE_DESC=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}" | jq -r '.section')
|
|
97
|
-
|
|
98
|
-
REQUIREMENTS=$(echo "$INIT" | jq -r '.requirements_content // empty' | grep -A100 "## Requirements" | head -50)
|
|
99
|
-
STATE_SNAP=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs state-snapshot)
|
|
100
|
-
# Extract decisions from state-snapshot JSON: jq '.decisions[] | "\(.phase): \(.summary) - \(.rationale)"'
|
|
87
|
+
PHASE_REQ_IDS=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}" | jq -r '.section // empty' | grep -i "Requirements:" | head -1 | sed 's/.*Requirements:\*\*\s*//' | sed 's/[\[\]]//g' | tr ',' '\n' | sed 's/^ *//;s/ *$//' | grep -v '^$' | tr '\n' ',' | sed 's/,$//')
|
|
101
88
|
```
|
|
102
89
|
|
|
103
90
|
Research prompt:
|
|
@@ -108,19 +95,18 @@ Research how to implement Phase {phase_number}: {phase_name}
|
|
|
108
95
|
Answer: "What do I need to know to PLAN this phase well?"
|
|
109
96
|
</objective>
|
|
110
97
|
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
{context_content}
|
|
118
|
-
</phase_context>
|
|
98
|
+
<files_to_read>
|
|
99
|
+
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
100
|
+
- {requirements_path} (Project requirements)
|
|
101
|
+
- {state_path} (Project decisions and history)
|
|
102
|
+
</files_to_read>
|
|
119
103
|
|
|
120
104
|
<additional_context>
|
|
121
105
|
**Phase description:** {phase_description}
|
|
122
|
-
**
|
|
123
|
-
|
|
106
|
+
**Phase requirement IDs (MUST address):** {phase_req_ids}
|
|
107
|
+
|
|
108
|
+
**Project instructions:** Read ./CODEX.md if exists — follow project-specific guidelines
|
|
109
|
+
**Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, research should account for project skill patterns
|
|
124
110
|
</additional_context>
|
|
125
111
|
|
|
126
112
|
<output>
|
|
@@ -142,6 +128,31 @@ Task(
|
|
|
142
128
|
- **`## RESEARCH COMPLETE`:** Display confirmation, continue to step 6
|
|
143
129
|
- **`## RESEARCH BLOCKED`:** Display blocker, offer: 1) Provide context, 2) Skip research, 3) Abort
|
|
144
130
|
|
|
131
|
+
## 5.5. Create Validation Strategy (if Nyquist enabled)
|
|
132
|
+
|
|
133
|
+
**Skip if:** `nyquist_validation_enabled` is false from INIT JSON.
|
|
134
|
+
|
|
135
|
+
After researcher completes, check if RESEARCH.md contains a Validation Architecture section:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
grep -l "## Validation Architecture" "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**If found:**
|
|
142
|
+
1. Read validation template from `~/.codex/get-shit-done/templates/VALIDATION.md`
|
|
143
|
+
2. Write to `${PHASE_DIR}/${PADDED_PHASE}-VALIDATION.md`
|
|
144
|
+
3. Fill frontmatter: replace `{N}` with phase number, `{phase-slug}` with phase slug, `{date}` with current date
|
|
145
|
+
4. If `commit_docs` is true:
|
|
146
|
+
```bash
|
|
147
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit-docs "docs(phase-${PHASE}): add validation strategy"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**If not found (and nyquist enabled):** Display warning:
|
|
151
|
+
```
|
|
152
|
+
⚠ Nyquist validation enabled but researcher did not produce a Validation Architecture section.
|
|
153
|
+
Continuing without validation strategy. Plans may fail Dimension 8 check.
|
|
154
|
+
```
|
|
155
|
+
|
|
145
156
|
## 6. Check Existing Plans
|
|
146
157
|
|
|
147
158
|
```bash
|
|
@@ -150,19 +161,18 @@ ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
|
|
|
150
161
|
|
|
151
162
|
**If exists:** Offer: 1) Add more plans, 2) View existing, 3) Replan from scratch.
|
|
152
163
|
|
|
153
|
-
## 7. Use Context
|
|
164
|
+
## 7. Use Context Paths from INIT
|
|
154
165
|
|
|
155
|
-
|
|
166
|
+
Extract from INIT JSON:
|
|
156
167
|
|
|
157
168
|
```bash
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
CONTEXT_CONTENT=$(echo "$INIT" | jq -r '.context_content // empty')
|
|
169
|
+
STATE_PATH=$(echo "$INIT" | jq -r '.state_path // empty')
|
|
170
|
+
ROADMAP_PATH=$(echo "$INIT" | jq -r '.roadmap_path // empty')
|
|
171
|
+
REQUIREMENTS_PATH=$(echo "$INIT" | jq -r '.requirements_path // empty')
|
|
172
|
+
RESEARCH_PATH=$(echo "$INIT" | jq -r '.research_path // empty')
|
|
173
|
+
VERIFICATION_PATH=$(echo "$INIT" | jq -r '.verification_path // empty')
|
|
174
|
+
UAT_PATH=$(echo "$INIT" | jq -r '.uat_path // empty')
|
|
175
|
+
CONTEXT_PATH=$(echo "$INIT" | jq -r '.context_path // empty')
|
|
166
176
|
```
|
|
167
177
|
|
|
168
178
|
## 8. Spawn gsd-planner Agent
|
|
@@ -183,20 +193,20 @@ Planner prompt:
|
|
|
183
193
|
**Phase:** {phase_number}
|
|
184
194
|
**Mode:** {standard | gap_closure}
|
|
185
195
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
196
|
+
<files_to_read>
|
|
197
|
+
- {state_path} (Project State)
|
|
198
|
+
- {roadmap_path} (Roadmap)
|
|
199
|
+
- {requirements_path} (Requirements)
|
|
200
|
+
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
201
|
+
- {research_path} (Technical Research)
|
|
202
|
+
- {verification_path} (Verification Gaps - if --gaps)
|
|
203
|
+
- {uat_path} (UAT Gaps - if --gaps)
|
|
204
|
+
</files_to_read>
|
|
189
205
|
|
|
190
|
-
**Phase
|
|
191
|
-
IMPORTANT: If context exists below, it contains USER DECISIONS from /gsd:discuss-phase.
|
|
192
|
-
- **Decisions** = LOCKED — honor exactly, do not revisit
|
|
193
|
-
- **Codex's Discretion** = Freedom — make implementation choices
|
|
194
|
-
- **Deferred Ideas** = Out of scope — do NOT include
|
|
206
|
+
**Phase requirement IDs (every ID MUST appear in a plan's `requirements` field):** {phase_req_ids}
|
|
195
207
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
**Research:** {research_content}
|
|
199
|
-
**Gap Closure (if --gaps):** {verification_content} {uat_content}
|
|
208
|
+
**Project instructions:** Read ./CODEX.md if exists — follow project-specific guidelines
|
|
209
|
+
**Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
|
|
200
210
|
</planning_context>
|
|
201
211
|
|
|
202
212
|
<downstream_consumer>
|
|
@@ -243,10 +253,6 @@ Display banner:
|
|
|
243
253
|
◆ Spawning plan checker...
|
|
244
254
|
```
|
|
245
255
|
|
|
246
|
-
```bash
|
|
247
|
-
PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
|
|
248
|
-
```
|
|
249
|
-
|
|
250
256
|
Checker prompt:
|
|
251
257
|
|
|
252
258
|
```markdown
|
|
@@ -254,16 +260,18 @@ Checker prompt:
|
|
|
254
260
|
**Phase:** {phase_number}
|
|
255
261
|
**Phase Goal:** {goal from ROADMAP}
|
|
256
262
|
|
|
257
|
-
|
|
258
|
-
|
|
263
|
+
<files_to_read>
|
|
264
|
+
- {PHASE_DIR}/*-PLAN.md (Plans to verify)
|
|
265
|
+
- {roadmap_path} (Roadmap)
|
|
266
|
+
- {requirements_path} (Requirements)
|
|
267
|
+
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
268
|
+
- {research_path} (Technical Research — includes Validation Architecture)
|
|
269
|
+
</files_to_read>
|
|
259
270
|
|
|
260
|
-
**Phase
|
|
261
|
-
IMPORTANT: Plans MUST honor user decisions. Flag as issue if plans contradict.
|
|
262
|
-
- **Decisions** = LOCKED — plans must implement exactly
|
|
263
|
-
- **Codex's Discretion** = Freedom areas — plans can choose approach
|
|
264
|
-
- **Deferred Ideas** = Out of scope — plans must NOT include
|
|
271
|
+
**Phase requirement IDs (MUST ALL be covered):** {phase_req_ids}
|
|
265
272
|
|
|
266
|
-
|
|
273
|
+
**Project instructions:** Read ./CODEX.md if exists — verify plans honor project guidelines
|
|
274
|
+
**Project skills:** Check .agents/skills/ directory (if exists) — verify plans account for project skill rules
|
|
267
275
|
</verification_context>
|
|
268
276
|
|
|
269
277
|
<expected_output>
|
|
@@ -294,10 +302,6 @@ Track `iteration_count` (starts at 1 after initial plan + check).
|
|
|
294
302
|
|
|
295
303
|
Display: `Sending back to planner for revision... (iteration {N}/3)`
|
|
296
304
|
|
|
297
|
-
```bash
|
|
298
|
-
PLANS_CONTENT=$(cat "${PHASE_DIR}"/*-PLAN.md 2>/dev/null)
|
|
299
|
-
```
|
|
300
|
-
|
|
301
305
|
Revision prompt:
|
|
302
306
|
|
|
303
307
|
```markdown
|
|
@@ -305,12 +309,12 @@ Revision prompt:
|
|
|
305
309
|
**Phase:** {phase_number}
|
|
306
310
|
**Mode:** revision
|
|
307
311
|
|
|
308
|
-
|
|
309
|
-
|
|
312
|
+
<files_to_read>
|
|
313
|
+
- {PHASE_DIR}/*-PLAN.md (Existing plans)
|
|
314
|
+
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
|
|
315
|
+
</files_to_read>
|
|
310
316
|
|
|
311
|
-
**
|
|
312
|
-
Revisions MUST still honor user decisions.
|
|
313
|
-
{context_content}
|
|
317
|
+
**Checker issues:** {structured_issues_from_checker}
|
|
314
318
|
</revision_context>
|
|
315
319
|
|
|
316
320
|
<instructions>
|
|
@@ -362,10 +366,36 @@ Display banner:
|
|
|
362
366
|
Plans ready. Spawning execute-phase...
|
|
363
367
|
```
|
|
364
368
|
|
|
365
|
-
Spawn execute-phase as Task:
|
|
369
|
+
Spawn execute-phase as Task with direct workflow file reference (do NOT use Skill tool — Skills don't resolve inside Task subagents):
|
|
366
370
|
```
|
|
367
371
|
Task(
|
|
368
|
-
prompt="
|
|
372
|
+
prompt="
|
|
373
|
+
<objective>
|
|
374
|
+
You are the execute-phase orchestrator. Execute all plans for Phase ${PHASE}: ${PHASE_NAME}.
|
|
375
|
+
</objective>
|
|
376
|
+
|
|
377
|
+
<execution_context>
|
|
378
|
+
@~/.codex/get-shit-done/workflows/execute-phase.md
|
|
379
|
+
@~/.codex/get-shit-done/references/checkpoints.md
|
|
380
|
+
@~/.codex/get-shit-done/references/tdd.md
|
|
381
|
+
@~/.codex/get-shit-done/references/model-profile-resolution.md
|
|
382
|
+
</execution_context>
|
|
383
|
+
|
|
384
|
+
<arguments>
|
|
385
|
+
PHASE=${PHASE}
|
|
386
|
+
ARGUMENTS='${PHASE} --auto --no-transition'
|
|
387
|
+
</arguments>
|
|
388
|
+
|
|
389
|
+
<instructions>
|
|
390
|
+
1. Read execute-phase.md from execution_context for your complete workflow
|
|
391
|
+
2. Follow ALL steps: initialize, handle_branching, validate_phase, discover_and_group_plans, execute_waves, aggregate_results, close_parent_artifacts, verify_phase_goal, update_roadmap
|
|
392
|
+
3. The --no-transition flag means: after verification + roadmap update, STOP and return status. Do NOT run transition.md.
|
|
393
|
+
4. When spawning executor agents, use subagent_type='gsd-executor' with the existing @file pattern from the workflow
|
|
394
|
+
5. When spawning verifier agents, use subagent_type='gsd-verifier'
|
|
395
|
+
6. Preserve the classifyHandoffIfNeeded workaround (spot-check on that specific error)
|
|
396
|
+
7. Do NOT use the Skill tool or /gsd: commands
|
|
397
|
+
</instructions>
|
|
398
|
+
",
|
|
369
399
|
subagent_type="general-purpose",
|
|
370
400
|
description="Execute Phase ${PHASE}"
|
|
371
401
|
)
|