@undeemed/get-shit-done-codex 1.20.2 → 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 +29 -5
- package/agents/gsd-codebase-mapper.md +5 -2
- package/agents/gsd-debugger.md +6 -3
- package/agents/gsd-executor.md +62 -12
- package/agents/gsd-integration-checker.md +20 -0
- package/agents/gsd-phase-researcher.md +106 -14
- package/agents/gsd-plan-checker.md +132 -10
- package/agents/gsd-planner.md +64 -29
- package/agents/gsd-project-researcher.md +5 -2
- package/agents/gsd-research-synthesizer.md +6 -3
- package/agents/gsd-roadmapper.md +8 -5
- package/agents/gsd-verifier.md +33 -16
- package/bin/install.js +6 -6
- package/commands/gsd/add-phase.md +8 -4
- package/commands/gsd/add-todo.md +8 -3
- package/commands/gsd/audit-milestone.md +3 -9
- package/commands/gsd/check-todos.md +8 -4
- package/commands/gsd/cleanup.md +2 -2
- package/commands/gsd/complete-milestone.md +2 -2
- package/commands/gsd/debug.md +5 -3
- package/commands/gsd/discuss-phase.md +4 -8
- package/commands/gsd/execute-phase.md +4 -5
- package/commands/gsd/health.md +2 -2
- package/commands/gsd/help.md +2 -2
- package/commands/gsd/insert-phase.md +3 -4
- package/commands/gsd/list-phase-assumptions.md +5 -9
- package/commands/gsd/map-codebase.md +1 -1
- package/commands/gsd/new-milestone.md +7 -14
- package/commands/gsd/new-project.md +6 -6
- package/commands/gsd/new-project.md.bak +13 -13
- package/commands/gsd/pause-work.md +6 -3
- package/commands/gsd/plan-milestone-gaps.md +3 -9
- package/commands/gsd/plan-phase.md +3 -3
- package/commands/gsd/progress.md +2 -2
- package/commands/gsd/quick.md +4 -3
- package/commands/gsd/reapply-patches.md +2 -2
- package/commands/gsd/remove-phase.md +3 -4
- package/commands/gsd/research-phase.md +23 -21
- package/commands/gsd/resume-work.md +2 -2
- package/commands/gsd/set-profile.md +3 -3
- package/commands/gsd/settings.md +2 -2
- package/commands/gsd/update.md +2 -2
- package/commands/gsd/verify-work.md +5 -6
- 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 +36 -35
- package/get-shit-done/references/decimal-phase-calculation.md +4 -4
- package/get-shit-done/references/git-integration.md +7 -7
- package/get-shit-done/references/git-planning-commit.md +2 -2
- package/get-shit-done/references/model-profile-resolution.md +1 -1
- package/get-shit-done/references/model-profiles.md +2 -2
- package/get-shit-done/references/phase-argument-parsing.md +3 -3
- package/get-shit-done/references/planning-config.md +6 -6
- package/get-shit-done/references/questioning.md +1 -1
- package/get-shit-done/references/verification-patterns.md +2 -2
- package/get-shit-done/templates/DEBUG.md +4 -4
- package/get-shit-done/templates/VALIDATION.md +104 -0
- package/get-shit-done/templates/codebase/architecture.md +1 -1
- package/get-shit-done/templates/codebase/concerns.md +1 -1
- package/get-shit-done/templates/codebase/conventions.md +1 -1
- package/get-shit-done/templates/codebase/structure.md +6 -6
- package/get-shit-done/templates/config.json +2 -1
- package/get-shit-done/templates/context.md +5 -5
- package/get-shit-done/templates/continue-here.md +1 -1
- package/get-shit-done/templates/phase-prompt.md +20 -18
- package/get-shit-done/templates/project.md +1 -1
- package/get-shit-done/templates/research.md +4 -4
- package/get-shit-done/templates/roadmap.md +1 -1
- package/get-shit-done/templates/state.md +1 -1
- package/get-shit-done/templates/summary.md +2 -0
- package/get-shit-done/templates/user-setup.md +8 -8
- package/get-shit-done/templates/verification-report.md +2 -2
- package/get-shit-done/workflows/add-phase.md +2 -2
- package/get-shit-done/workflows/add-todo.md +5 -5
- package/get-shit-done/workflows/audit-milestone.md +67 -12
- package/get-shit-done/workflows/check-todos.md +2 -2
- package/get-shit-done/workflows/cleanup.md +1 -1
- package/get-shit-done/workflows/complete-milestone.md +31 -5
- package/get-shit-done/workflows/diagnose-issues.md +2 -2
- package/get-shit-done/workflows/discovery-phase.md +6 -6
- package/get-shit-done/workflows/discuss-phase.md +79 -24
- package/get-shit-done/workflows/execute-phase.md +65 -20
- package/get-shit-done/workflows/execute-plan.md +31 -27
- package/get-shit-done/workflows/health.md +2 -2
- package/get-shit-done/workflows/help.md +4 -4
- package/get-shit-done/workflows/insert-phase.md +2 -2
- package/get-shit-done/workflows/list-phase-assumptions.md +7 -7
- package/get-shit-done/workflows/map-codebase.md +36 -48
- package/get-shit-done/workflows/new-milestone.md +24 -15
- package/get-shit-done/workflows/new-project.md +49 -46
- package/get-shit-done/workflows/pause-work.md +3 -3
- package/get-shit-done/workflows/plan-milestone-gaps.md +24 -6
- package/get-shit-done/workflows/plan-phase.md +113 -83
- package/get-shit-done/workflows/progress.md +18 -30
- package/get-shit-done/workflows/quick.md +28 -19
- package/get-shit-done/workflows/remove-phase.md +4 -4
- package/get-shit-done/workflows/research-phase.md +13 -14
- package/get-shit-done/workflows/resume-project.md +2 -2
- package/get-shit-done/workflows/set-profile.md +3 -3
- package/get-shit-done/workflows/settings.md +18 -5
- package/get-shit-done/workflows/transition.md +8 -3
- package/get-shit-done/workflows/update.md +9 -9
- package/get-shit-done/workflows/verify-phase.md +9 -9
- package/get-shit-done/workflows/verify-work.md +17 -18
- 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
|
@@ -46,10 +46,10 @@ The document should describe what you want to build.
|
|
|
46
46
|
**MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
INIT=$(node ~/.
|
|
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
|
```
|
|
@@ -187,7 +188,13 @@ Create `.planning/config.json` with mode set to "yolo":
|
|
|
187
188
|
|
|
188
189
|
```bash
|
|
189
190
|
mkdir -p .planning
|
|
190
|
-
node ~/.
|
|
191
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json
|
|
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
|
|
191
198
|
```
|
|
192
199
|
|
|
193
200
|
Proceed to Step 4 (skip Steps 3 and 5).
|
|
@@ -331,7 +338,7 @@ Do not compress. Capture everything gathered.
|
|
|
331
338
|
|
|
332
339
|
```bash
|
|
333
340
|
mkdir -p .planning
|
|
334
|
-
node ~/.
|
|
341
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: initialize project" --files .planning/PROJECT.md
|
|
335
342
|
```
|
|
336
343
|
|
|
337
344
|
## 5. Workflow Preferences
|
|
@@ -483,7 +490,7 @@ Create `.planning/config.json` with all settings:
|
|
|
483
490
|
**Commit config.json:**
|
|
484
491
|
|
|
485
492
|
```bash
|
|
486
|
-
node ~/.
|
|
493
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json
|
|
487
494
|
```
|
|
488
495
|
|
|
489
496
|
**Note:** Run `/gsd:settings` anytime to update these preferences.
|
|
@@ -534,10 +541,10 @@ 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
|
-
Task(prompt="First, read ~/.
|
|
547
|
+
Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
|
|
541
548
|
|
|
542
549
|
<research_type>
|
|
543
550
|
Project Research — Stack dimension for [domain].
|
|
@@ -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:
|
|
@@ -573,11 +580,11 @@ Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
|
573
580
|
|
|
574
581
|
<output>
|
|
575
582
|
Write to: .planning/research/STACK.md
|
|
576
|
-
Use template: ~/.
|
|
583
|
+
Use template: ~/.codex/get-shit-done/templates/research-project/STACK.md
|
|
577
584
|
</output>
|
|
578
585
|
", subagent_type="general-purpose", model="{researcher_model}", description="Stack research")
|
|
579
586
|
|
|
580
|
-
Task(prompt="First, read ~/.
|
|
587
|
+
Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
|
|
581
588
|
|
|
582
589
|
<research_type>
|
|
583
590
|
Project Research — Features dimension for [domain].
|
|
@@ -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:
|
|
@@ -613,11 +620,11 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
|
613
620
|
|
|
614
621
|
<output>
|
|
615
622
|
Write to: .planning/research/FEATURES.md
|
|
616
|
-
Use template: ~/.
|
|
623
|
+
Use template: ~/.codex/get-shit-done/templates/research-project/FEATURES.md
|
|
617
624
|
</output>
|
|
618
625
|
", subagent_type="general-purpose", model="{researcher_model}", description="Features research")
|
|
619
626
|
|
|
620
|
-
Task(prompt="First, read ~/.
|
|
627
|
+
Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
|
|
621
628
|
|
|
622
629
|
<research_type>
|
|
623
630
|
Project Research — Architecture dimension for [domain].
|
|
@@ -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:
|
|
@@ -653,11 +660,11 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
|
653
660
|
|
|
654
661
|
<output>
|
|
655
662
|
Write to: .planning/research/ARCHITECTURE.md
|
|
656
|
-
Use template: ~/.
|
|
663
|
+
Use template: ~/.codex/get-shit-done/templates/research-project/ARCHITECTURE.md
|
|
657
664
|
</output>
|
|
658
665
|
", subagent_type="general-purpose", model="{researcher_model}", description="Architecture research")
|
|
659
666
|
|
|
660
|
-
Task(prompt="First, read ~/.
|
|
667
|
+
Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
|
|
661
668
|
|
|
662
669
|
<research_type>
|
|
663
670
|
Project Research — Pitfalls dimension for [domain].
|
|
@@ -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:
|
|
@@ -693,7 +700,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
|
693
700
|
|
|
694
701
|
<output>
|
|
695
702
|
Write to: .planning/research/PITFALLS.md
|
|
696
|
-
Use template: ~/.
|
|
703
|
+
Use template: ~/.codex/get-shit-done/templates/research-project/PITFALLS.md
|
|
697
704
|
</output>
|
|
698
705
|
", subagent_type="general-purpose", model="{researcher_model}", description="Pitfalls research")
|
|
699
706
|
```
|
|
@@ -706,17 +713,16 @@ 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
|
|
719
|
-
Use template: ~/.
|
|
725
|
+
Use template: ~/.codex/get-shit-done/templates/research-project/SUMMARY.md
|
|
720
726
|
Commit after writing.
|
|
721
727
|
</output>
|
|
722
728
|
", subagent_type="gsd-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
@@ -881,7 +887,7 @@ If "adjust": Return to scoping.
|
|
|
881
887
|
**Commit requirements:**
|
|
882
888
|
|
|
883
889
|
```bash
|
|
884
|
-
node ~/.
|
|
890
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md
|
|
885
891
|
```
|
|
886
892
|
|
|
887
893
|
## 8. Create Roadmap
|
|
@@ -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.
|
|
@@ -1014,7 +1017,7 @@ Use AskUserQuestion:
|
|
|
1014
1017
|
**Commit roadmap (after approval or auto mode):**
|
|
1015
1018
|
|
|
1016
1019
|
```bash
|
|
1017
|
-
node ~/.
|
|
1020
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
1018
1021
|
```
|
|
1019
1022
|
|
|
1020
1023
|
## 9. Done
|
|
@@ -82,17 +82,17 @@ Start with: [specific first action when resuming]
|
|
|
82
82
|
</next_action>
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
Be specific enough for a fresh
|
|
85
|
+
Be specific enough for a fresh Codex to understand immediately.
|
|
86
86
|
|
|
87
87
|
Use `current-timestamp` for last_updated field. You can use init todos (which provides timestamps) or call directly:
|
|
88
88
|
```bash
|
|
89
|
-
timestamp=$(node ~/.
|
|
89
|
+
timestamp=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs current-timestamp full --raw)
|
|
90
90
|
```
|
|
91
91
|
</step>
|
|
92
92
|
|
|
93
93
|
<step name="commit">
|
|
94
94
|
```bash
|
|
95
|
-
node ~/.
|
|
95
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/phases/*/.continue-here.md
|
|
96
96
|
```
|
|
97
97
|
</step>
|
|
98
98
|
|
|
@@ -65,7 +65,7 @@ Gap: Flow "View dashboard" broken at data fetch
|
|
|
65
65
|
Find highest existing phase:
|
|
66
66
|
```bash
|
|
67
67
|
# Get sorted phase list, extract last one
|
|
68
|
-
PHASES=$(node ~/.
|
|
68
|
+
PHASES=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs phases list)
|
|
69
69
|
HIGHEST=$(echo "$PHASES" | jq -r '.directories[-1]')
|
|
70
70
|
```
|
|
71
71
|
|
|
@@ -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 ~/.
|
|
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>
|
|
@@ -5,30 +5,22 @@ Create executable phase prompts (PLAN.md files) for a roadmap phase with integra
|
|
|
5
5
|
<required_reading>
|
|
6
6
|
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
7
|
|
|
8
|
-
@~/.
|
|
8
|
+
@~/.codex/get-shit-done/references/ui-brand.md
|
|
9
9
|
</required_reading>
|
|
10
10
|
|
|
11
11
|
<process>
|
|
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
|
|
|
@@ -48,20 +40,18 @@ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
|
|
|
48
40
|
## 3. Validate Phase
|
|
49
41
|
|
|
50
42
|
```bash
|
|
51
|
-
PHASE_INFO=$(node ~/.
|
|
43
|
+
PHASE_INFO=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}")
|
|
52
44
|
```
|
|
53
45
|
|
|
54
46
|
**If `found` is false:** Error with available phases. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
|
|
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"
|
|
@@ -93,11 +83,8 @@ Display banner:
|
|
|
93
83
|
### Spawn gsd-phase-researcher
|
|
94
84
|
|
|
95
85
|
```bash
|
|
96
|
-
PHASE_DESC=$(node ~/.
|
|
97
|
-
|
|
98
|
-
REQUIREMENTS=$(echo "$INIT" | jq -r '.requirements_content // empty' | grep -A100 "## Requirements" | head -50)
|
|
99
|
-
STATE_SNAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state-snapshot)
|
|
100
|
-
# Extract decisions from state-snapshot JSON: jq '.decisions[] | "\(.phase): \(.summary) - \(.rationale)"'
|
|
86
|
+
PHASE_DESC=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}" | jq -r '.section')
|
|
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>
|
|
@@ -130,7 +116,7 @@ Write to: {phase_dir}/{phase_num}-RESEARCH.md
|
|
|
130
116
|
|
|
131
117
|
```
|
|
132
118
|
Task(
|
|
133
|
-
prompt="First, read ~/.
|
|
119
|
+
prompt="First, read ~/.codex/agents/gsd-phase-researcher.md for your role and instructions.\n\n" + research_prompt,
|
|
134
120
|
subagent_type="general-purpose",
|
|
135
121
|
model="{researcher_model}",
|
|
136
122
|
description="Research Phase {phase}"
|
|
@@ -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
|
-
- **Claude'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>
|
|
@@ -219,7 +229,7 @@ Output consumed by /gsd:execute-phase. Plans need:
|
|
|
219
229
|
|
|
220
230
|
```
|
|
221
231
|
Task(
|
|
222
|
-
prompt="First, read ~/.
|
|
232
|
+
prompt="First, read ~/.codex/agents/gsd-planner.md for your role and instructions.\n\n" + filled_prompt,
|
|
223
233
|
subagent_type="general-purpose",
|
|
224
234
|
model="{planner_model}",
|
|
225
235
|
description="Plan Phase {phase}"
|
|
@@ -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
|
-
- **Claude'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>
|
|
@@ -322,7 +326,7 @@ Return what changed.
|
|
|
322
326
|
|
|
323
327
|
```
|
|
324
328
|
Task(
|
|
325
|
-
prompt="First, read ~/.
|
|
329
|
+
prompt="First, read ~/.codex/agents/gsd-planner.md for your role and instructions.\n\n" + revision_prompt,
|
|
326
330
|
subagent_type="general-purpose",
|
|
327
331
|
model="{planner_model}",
|
|
328
332
|
description="Revise Phase {phase} plans"
|
|
@@ -348,7 +352,7 @@ Check for auto-advance trigger:
|
|
|
348
352
|
1. Parse `--auto` flag from $ARGUMENTS
|
|
349
353
|
2. Read `workflow.auto_advance` from config:
|
|
350
354
|
```bash
|
|
351
|
-
AUTO_CFG=$(node ~/.
|
|
355
|
+
AUTO_CFG=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
352
356
|
```
|
|
353
357
|
|
|
354
358
|
**If `--auto` flag present OR `AUTO_CFG` is true:**
|
|
@@ -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
|
)
|