@undeemed/get-shit-done-codex 1.23.2 → 1.24.2

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.
Files changed (46) hide show
  1. package/README.md +51 -5
  2. package/agents/gsd-debugger.md +8 -56
  3. package/agents/gsd-planner.md +2 -118
  4. package/agents/gsd-project-researcher.md +0 -3
  5. package/agents/gsd-research-synthesizer.md +0 -3
  6. package/bin/install.js +267 -5
  7. package/commands/gsd/add-phase.md +2 -6
  8. package/commands/gsd/add-todo.md +1 -6
  9. package/commands/gsd/check-todos.md +2 -6
  10. package/commands/gsd/debug.md +1 -6
  11. package/commands/gsd/discuss-phase.md +16 -9
  12. package/commands/gsd/execute-phase.md +2 -1
  13. package/commands/gsd/new-milestone.md +8 -1
  14. package/commands/gsd/pause-work.md +1 -4
  15. package/commands/gsd/plan-phase.md +1 -2
  16. package/commands/gsd/research-phase.md +15 -17
  17. package/commands/gsd/verify-work.md +2 -1
  18. package/get-shit-done/bin/gsd-tools.cjs +4951 -121
  19. package/get-shit-done/bin/lib/commands.cjs +4 -9
  20. package/get-shit-done/bin/lib/core.cjs +102 -23
  21. package/get-shit-done/bin/lib/init.cjs +11 -11
  22. package/get-shit-done/bin/lib/milestone.cjs +54 -3
  23. package/get-shit-done/bin/lib/phase.cjs +40 -10
  24. package/get-shit-done/bin/lib/state.cjs +86 -33
  25. package/get-shit-done/references/checkpoints.md +0 -1
  26. package/get-shit-done/references/model-profile-resolution.md +13 -6
  27. package/get-shit-done/references/model-profiles.md +60 -51
  28. package/get-shit-done/templates/context.md +14 -0
  29. package/get-shit-done/templates/phase-prompt.md +0 -2
  30. package/get-shit-done/workflows/audit-milestone.md +8 -63
  31. package/get-shit-done/workflows/diagnose-issues.md +1 -1
  32. package/get-shit-done/workflows/execute-phase.md +9 -54
  33. package/get-shit-done/workflows/execute-plan.md +13 -17
  34. package/get-shit-done/workflows/help.md +3 -3
  35. package/get-shit-done/workflows/map-codebase.md +44 -32
  36. package/get-shit-done/workflows/new-milestone.md +7 -16
  37. package/get-shit-done/workflows/new-project.md +80 -49
  38. package/get-shit-done/workflows/progress.md +26 -14
  39. package/get-shit-done/workflows/quick.md +15 -24
  40. package/get-shit-done/workflows/set-profile.md +12 -8
  41. package/get-shit-done/workflows/settings.md +14 -21
  42. package/get-shit-done/workflows/transition.md +0 -5
  43. package/get-shit-done/workflows/verify-work.md +12 -11
  44. package/hooks/dist/gsd-context-monitor.js +1 -1
  45. package/package.json +3 -2
  46. package/scripts/run-tests.cjs +43 -0
@@ -7,11 +7,13 @@ Read all files referenced by the invoking prompt's execution_context before star
7
7
  </required_reading>
8
8
 
9
9
  <auto_mode>
10
+
10
11
  ## Auto Mode Detection
11
12
 
12
13
  Check if `--auto` flag is present in $ARGUMENTS.
13
14
 
14
15
  **If auto mode:**
16
+
15
17
  - Skip brownfield mapping offer (assume greenfield)
16
18
  - Skip deep questioning (extract context from provided document)
17
19
  - Config: YOLO mode is implicit (skip that question), but ask depth/git/agents FIRST (Step 2a)
@@ -23,6 +25,7 @@ Check if `--auto` flag is present in $ARGUMENTS.
23
25
 
24
26
  **Document requirement:**
25
27
  Auto mode requires an idea document — either:
28
+
26
29
  - File reference: `$gsd-new-project --auto @prd.md`
27
30
  - Pasted/written text in the prompt
28
31
 
@@ -37,6 +40,7 @@ Usage:
37
40
 
38
41
  The document should describe what you want to build.
39
42
  ```
43
+
40
44
  </auto_mode>
41
45
 
42
46
  <process>
@@ -49,11 +53,12 @@ The document should describe what you want to build.
49
53
  INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init new-project)
50
54
  ```
51
55
 
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`.
56
+ 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`.
53
57
 
54
58
  **If `project_exists` is true:** Error — project already initialized. Use `$gsd-progress`.
55
59
 
56
60
  **If `has_git` is false:** Initialize git:
61
+
57
62
  ```bash
58
63
  git init
59
64
  ```
@@ -65,6 +70,7 @@ git init
65
70
  **If `needs_codebase_map` is true** (from init — existing code detected but no codebase map):
66
71
 
67
72
  Use AskUserQuestion:
73
+
68
74
  - header: "Codebase"
69
75
  - question: "I detected existing code in this directory. Would you like to map the codebase first?"
70
76
  - options:
@@ -72,9 +78,11 @@ Use AskUserQuestion:
72
78
  - "Skip mapping" — Proceed with project initialization
73
79
 
74
80
  **If "Map codebase first":**
81
+
75
82
  ```
76
83
  Run `$gsd-map-codebase` first, then return to `$gsd-new-project`
77
84
  ```
85
+
78
86
  Exit command.
79
87
 
80
88
  **If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
@@ -156,9 +164,9 @@ AskUserQuestion([
156
164
  question: "Which AI models for planning agents?",
157
165
  multiSelect: false,
158
166
  options: [
159
- { label: "Balanced (Recommended)", description: "Sonnet for most agents good quality/cost ratio" },
160
- { label: "Quality", description: "Opus for research/roadmap higher cost, deeper analysis" },
161
- { label: "Budget", description: "Haiku where possible fastest, lowest cost" }
167
+ { label: "Balanced (Recommended)", description: "gpt-5.3-codex xhigh/high/medium thinking allocation per role" },
168
+ { label: "Quality", description: "gpt-5.3-codex xhigh thinking for all decision-makers" },
169
+ { label: "Budget", description: "gpt-5.3-codex high/medium thinking, fastest/cheapest" }
162
170
  ]
163
171
  }
164
172
  ])
@@ -176,8 +184,7 @@ Create `.planning/config.json` with mode set to "yolo":
176
184
  "workflow": {
177
185
  "research": true|false,
178
186
  "plan_check": true|false,
179
- "verifier": true|false,
180
- "auto_advance": true
187
+ "verifier": true|false
181
188
  }
182
189
  }
183
190
  ```
@@ -191,12 +198,6 @@ mkdir -p .planning
191
198
  node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json
192
199
  ```
193
200
 
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
-
200
201
  Proceed to Step 4 (skip Steps 3 and 5).
201
202
 
202
203
  ## 3. Deep Questioning
@@ -224,6 +225,7 @@ Wait for their response. This gives you the context needed to ask intelligent fo
224
225
  Based on what they said, ask follow-up questions that dig into their response. Use AskUserQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
225
226
 
226
227
  Keep following threads. Each answer opens new threads to explore. Ask about:
228
+
227
229
  - What excited them
228
230
  - What problem sparked this
229
231
  - What they mean by vague terms
@@ -231,6 +233,7 @@ Keep following threads. Each answer opens new threads to explore. Ask about:
231
233
  - What's already decided
232
234
 
233
235
  Consult `questioning.md` for techniques:
236
+
234
237
  - Challenge vagueness
235
238
  - Make abstract concrete
236
239
  - Surface assumptions
@@ -320,16 +323,17 @@ Initialize with any decisions made during questioning:
320
323
  ```markdown
321
324
  ## Key Decisions
322
325
 
323
- | Decision | Rationale | Outcome |
324
- |----------|-----------|---------|
325
- | [Choice from questioning] | [Why] | — Pending |
326
+ | Decision | Rationale | Outcome |
327
+ | ------------------------- | --------- | --------- |
328
+ | [Choice from questioning] | [Why] | — Pending |
326
329
  ```
327
330
 
328
331
  **Last updated footer:**
329
332
 
330
333
  ```markdown
331
334
  ---
332
- *Last updated: [date] after initialization*
335
+
336
+ _Last updated: [date] after initialization_
333
337
  ```
334
338
 
335
339
  Do not compress. Capture everything gathered.
@@ -413,11 +417,11 @@ questions: [
413
417
 
414
418
  These spawn additional agents during planning/execution. They add tokens and time but improve quality.
415
419
 
416
- | Agent | When it runs | What it does |
417
- |-------|--------------|--------------|
418
- | **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
419
- | **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
420
- | **Verifier** | After phase execution | Confirms must-haves were delivered |
420
+ | Agent | When it runs | What it does |
421
+ | ---------------- | -------------------------- | ----------------------------------------------------- |
422
+ | **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
423
+ | **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
424
+ | **Verifier** | After phase execution | Confirms must-haves were delivered |
421
425
 
422
426
  All recommended for important projects. Skip for quick experiments.
423
427
 
@@ -455,9 +459,9 @@ questions: [
455
459
  question: "Which AI models for planning agents?",
456
460
  multiSelect: false,
457
461
  options: [
458
- { label: "Balanced (Recommended)", description: "Sonnet for most agents good quality/cost ratio" },
459
- { label: "Quality", description: "Opus for research/roadmap higher cost, deeper analysis" },
460
- { label: "Budget", description: "Haiku where possible fastest, lowest cost" }
462
+ { label: "Balanced (Recommended)", description: "gpt-5.3-codex xhigh/high/medium thinking allocation per role" },
463
+ { label: "Quality", description: "gpt-5.3-codex xhigh thinking for all decision-makers" },
464
+ { label: "Budget", description: "gpt-5.3-codex high/medium thinking, fastest/cheapest" }
461
465
  ]
462
466
  }
463
467
  ]
@@ -481,10 +485,12 @@ Create `.planning/config.json` with all settings:
481
485
  ```
482
486
 
483
487
  **If commit_docs = No:**
488
+
484
489
  - Set `commit_docs: false` in config.json
485
490
  - Add `.planning/` to `.gitignore` (create if needed)
486
491
 
487
492
  **If commit_docs = Yes:**
493
+
488
494
  - No additional gitignore entries needed
489
495
 
490
496
  **Commit config.json:**
@@ -504,6 +510,7 @@ Use models from init: `researcher_model`, `synthesizer_model`, `roadmapper_model
504
510
  **If auto mode:** Default to "Research first" without asking.
505
511
 
506
512
  Use AskUserQuestion:
513
+
507
514
  - header: "Research"
508
515
  - question: "Research the domain ecosystem before defining requirements?"
509
516
  - options:
@@ -513,6 +520,7 @@ Use AskUserQuestion:
513
520
  **If "Research first":**
514
521
 
515
522
  Display stage banner:
523
+
516
524
  ```
517
525
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
518
526
  GSD ► RESEARCHING
@@ -522,6 +530,7 @@ Researching [domain] ecosystem...
522
530
  ```
523
531
 
524
532
  Create research directory:
533
+
525
534
  ```bash
526
535
  mkdir -p .planning/research
527
536
  ```
@@ -529,10 +538,12 @@ mkdir -p .planning/research
529
538
  **Determine milestone context:**
530
539
 
531
540
  Check if this is greenfield or subsequent milestone:
541
+
532
542
  - If no "Validated" requirements in PROJECT.md → Greenfield (building from scratch)
533
543
  - If "Validated" requirements exist → Subsequent milestone (adding to existing app)
534
544
 
535
545
  Display spawning indicator:
546
+
536
547
  ```
537
548
  ◆ Spawning 4 researchers in parallel...
538
549
  → Stack research
@@ -541,7 +552,7 @@ Display spawning indicator:
541
552
  → Pitfalls research
542
553
  ```
543
554
 
544
- Spawn 4 parallel gsd-project-researcher agents with path references:
555
+ Spawn 4 parallel gsd-project-researcher agents with rich context:
545
556
 
546
557
  ```
547
558
  Task(prompt="First, read ~/.codex/agents/gsd-project-researcher.md for your role and instructions.
@@ -561,9 +572,9 @@ Subsequent: Research what's needed to add [target features] to an existing [doma
561
572
  What's the standard 2025 stack for [domain]?
562
573
  </question>
563
574
 
564
- <files_to_read>
565
- - {project_path} (Project context and goals)
566
- </files_to_read>
575
+ <project_context>
576
+ [PROJECT.md summary - core value, constraints, what they're building]
577
+ </project_context>
567
578
 
568
579
  <downstream_consumer>
569
580
  Your STACK.md feeds into roadmap creation. Be prescriptive:
@@ -601,9 +612,9 @@ Subsequent: How do [target features] typically work? What's expected behavior?
601
612
  What features do [domain] products have? What's table stakes vs differentiating?
602
613
  </question>
603
614
 
604
- <files_to_read>
605
- - {project_path} (Project context)
606
- </files_to_read>
615
+ <project_context>
616
+ [PROJECT.md summary]
617
+ </project_context>
607
618
 
608
619
  <downstream_consumer>
609
620
  Your FEATURES.md feeds into requirements definition. Categorize clearly:
@@ -641,9 +652,9 @@ Subsequent: How do [target features] integrate with existing [domain] architectu
641
652
  How are [domain] systems typically structured? What are major components?
642
653
  </question>
643
654
 
644
- <files_to_read>
645
- - {project_path} (Project context)
646
- </files_to_read>
655
+ <project_context>
656
+ [PROJECT.md summary]
657
+ </project_context>
647
658
 
648
659
  <downstream_consumer>
649
660
  Your ARCHITECTURE.md informs phase structure in roadmap. Include:
@@ -681,9 +692,9 @@ Subsequent: What are common mistakes when adding [target features] to [domain]?
681
692
  What do [domain] projects commonly get wrong? Critical mistakes?
682
693
  </question>
683
694
 
684
- <files_to_read>
685
- - {project_path} (Project context)
686
- </files_to_read>
695
+ <project_context>
696
+ [PROJECT.md summary]
697
+ </project_context>
687
698
 
688
699
  <downstream_consumer>
689
700
  Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
@@ -713,12 +724,13 @@ Task(prompt="
713
724
  Synthesize research outputs into SUMMARY.md.
714
725
  </task>
715
726
 
716
- <files_to_read>
727
+ <research_files>
728
+ Read these files:
717
729
  - .planning/research/STACK.md
718
730
  - .planning/research/FEATURES.md
719
731
  - .planning/research/ARCHITECTURE.md
720
732
  - .planning/research/PITFALLS.md
721
- </files_to_read>
733
+ </research_files>
722
734
 
723
735
  <output>
724
736
  Write to: .planning/research/SUMMARY.md
@@ -729,6 +741,7 @@ Commit after writing.
729
741
  ```
730
742
 
731
743
  Display research complete banner and key findings:
744
+
732
745
  ```
733
746
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
734
747
  GSD ► RESEARCH COMPLETE ✓
@@ -748,6 +761,7 @@ Files: `.planning/research/`
748
761
  ## 7. Define Requirements
749
762
 
750
763
  Display stage banner:
764
+
751
765
  ```
752
766
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
753
767
  GSD ► DEFINING REQUIREMENTS
@@ -757,6 +771,7 @@ Display stage banner:
757
771
  **Load context:**
758
772
 
759
773
  Read PROJECT.md and extract:
774
+
760
775
  - Core value (the ONE thing that must work)
761
776
  - Stated constraints (budget, timeline, tech limitations)
762
777
  - Any explicit scope boundaries
@@ -764,6 +779,7 @@ Read PROJECT.md and extract:
764
779
  **If research exists:** Read research/FEATURES.md and extract feature categories.
765
780
 
766
781
  **If auto mode:**
782
+
767
783
  - Auto-include all table stakes features (users expect these)
768
784
  - Include features explicitly mentioned in provided document
769
785
  - Auto-defer differentiators not mentioned in document
@@ -802,6 +818,7 @@ Here are the features for [domain]:
802
818
  Ask: "What are the main things users need to be able to do?"
803
819
 
804
820
  For each capability mentioned:
821
+
805
822
  - Ask clarifying questions to make it specific
806
823
  - Probe for related capabilities
807
824
  - Group into categories
@@ -820,6 +837,7 @@ For each category, use AskUserQuestion:
820
837
  - "None for v1" — Defer entire category
821
838
 
822
839
  Track responses:
840
+
823
841
  - Selected features → v1 requirements
824
842
  - Unselected table stakes → v2 (users expect these)
825
843
  - Unselected differentiators → out of scope
@@ -827,6 +845,7 @@ Track responses:
827
845
  **Identify gaps:**
828
846
 
829
847
  Use AskUserQuestion:
848
+
830
849
  - header: "Additions"
831
850
  - question: "Any requirements research missed? (Features specific to your vision)"
832
851
  - options:
@@ -840,6 +859,7 @@ Cross-check requirements against Core Value from PROJECT.md. If gaps detected, s
840
859
  **Generate REQUIREMENTS.md:**
841
860
 
842
861
  Create `.planning/REQUIREMENTS.md` with:
862
+
843
863
  - v1 Requirements grouped by category (checkboxes, REQ-IDs)
844
864
  - v2 Requirements (deferred)
845
865
  - Out of Scope (explicit exclusions with reasoning)
@@ -850,12 +870,14 @@ Create `.planning/REQUIREMENTS.md` with:
850
870
  **Requirement quality criteria:**
851
871
 
852
872
  Good requirements are:
873
+
853
874
  - **Specific and testable:** "User can reset password via email link" (not "Handle password reset")
854
875
  - **User-centric:** "User can X" (not "System does Y")
855
876
  - **Atomic:** One capability per requirement (not "User can login and manage profile")
856
877
  - **Independent:** Minimal dependencies on other requirements
857
878
 
858
879
  Reject vague requirements. Push for specificity:
880
+
859
881
  - "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
860
882
  - "Support sharing" → "User can share post via link that opens in recipient's browser"
861
883
 
@@ -893,6 +915,7 @@ node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: define v1 requiremen
893
915
  ## 8. Create Roadmap
894
916
 
895
917
  Display stage banner:
918
+
896
919
  ```
897
920
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
898
921
  GSD ► CREATING ROADMAP
@@ -901,18 +924,23 @@ Display stage banner:
901
924
  ◆ Spawning roadmapper...
902
925
  ```
903
926
 
904
- Spawn gsd-roadmapper agent with path references:
927
+ Spawn gsd-roadmapper agent with context:
905
928
 
906
929
  ```
907
930
  Task(prompt="
908
931
  <planning_context>
909
932
 
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>
933
+ **Project:**
934
+ @.planning/PROJECT.md
935
+
936
+ **Requirements:**
937
+ @.planning/REQUIREMENTS.md
938
+
939
+ **Research (if exists):**
940
+ @.planning/research/SUMMARY.md
941
+
942
+ **Config:**
943
+ @.planning/config.json
916
944
 
917
945
  </planning_context>
918
946
 
@@ -933,6 +961,7 @@ Write files first, then return. This ensures artifacts persist even if context i
933
961
  **Handle roadmapper return:**
934
962
 
935
963
  **If `## ROADMAP BLOCKED`:**
964
+
936
965
  - Present blocker information
937
966
  - Work with user to resolve
938
967
  - Re-spawn when resolved
@@ -982,6 +1011,7 @@ Success criteria:
982
1011
  **CRITICAL: Ask for approval before committing (interactive mode only):**
983
1012
 
984
1013
  Use AskUserQuestion:
1014
+
985
1015
  - header: "Roadmap"
986
1016
  - question: "Does this roadmap structure work for you?"
987
1017
  - options:
@@ -992,23 +1022,24 @@ Use AskUserQuestion:
992
1022
  **If "Approve":** Continue to commit.
993
1023
 
994
1024
  **If "Adjust phases":**
1025
+
995
1026
  - Get user's adjustment notes
996
1027
  - Re-spawn roadmapper with revision context:
1028
+
997
1029
  ```
998
1030
  Task(prompt="
999
1031
  <revision>
1000
1032
  User feedback on roadmap:
1001
1033
  [user's notes]
1002
1034
 
1003
- <files_to_read>
1004
- - .planning/ROADMAP.md (Current roadmap to revise)
1005
- </files_to_read>
1035
+ Current ROADMAP.md: @.planning/ROADMAP.md
1006
1036
 
1007
1037
  Update the roadmap based on feedback. Edit files in place.
1008
1038
  Return ROADMAP REVISED with changes made.
1009
1039
  </revision>
1010
1040
  ", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
1011
1041
  ```
1042
+
1012
1043
  - Present revised roadmap
1013
1044
  - Loop until user approves
1014
1045
 
@@ -9,13 +9,23 @@ Read all files referenced by the invoking prompt's execution_context before star
9
9
  <process>
10
10
 
11
11
  <step name="init_context">
12
- **Load progress context (paths only):**
12
+ **Load progress context (with file contents to avoid redundant reads):**
13
13
 
14
14
  ```bash
15
- INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init progress)
15
+ INIT_RAW=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init progress --include state,roadmap,project,config)
16
+ # Large payloads are written to a tmpfile — output starts with @file:/path
17
+ if [[ "$INIT_RAW" == @file:* ]]; then
18
+ INIT_FILE="${INIT_RAW#@file:}"
19
+ INIT=$(cat "$INIT_FILE")
20
+ rm -f "$INIT_FILE"
21
+ else
22
+ INIT="$INIT_RAW"
23
+ fi
16
24
  ```
17
25
 
18
- Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`, `state_path`, `roadmap_path`, `project_path`, `config_path`.
26
+ Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`.
27
+
28
+ **File contents (from --include):** `state_content`, `roadmap_content`, `project_content`, `config_content`. These are null if files don't exist.
19
29
 
20
30
  If `project_exists` is false (no `.planning/` directory):
21
31
 
@@ -37,13 +47,15 @@ If missing both ROADMAP.md and PROJECT.md: suggest `$gsd-new-project`.
37
47
  </step>
38
48
 
39
49
  <step name="load">
40
- **Use structured extraction from gsd-tools:**
50
+ **Use project context from INIT:**
41
51
 
42
- Instead of reading full files, use targeted tools to get only the data needed for the report:
43
- - `ROADMAP=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap analyze)`
44
- - `STATE=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs state-snapshot)`
52
+ All file contents are already loaded via `--include` in init_context step:
53
+ - `state_content` — living memory (position, decisions, issues)
54
+ - `roadmap_content` phase structure and objectives
55
+ - `project_content` — current state (What This Is, Core Value, Requirements)
56
+ - `config_content` — settings (model_profile, workflow toggles)
45
57
 
46
- This minimizes orchestrator context usage.
58
+ No additional file reads needed.
47
59
  </step>
48
60
 
49
61
  <step name="analyze_roadmap">
@@ -77,8 +89,9 @@ Use this instead of manually reading/parsing ROADMAP.md.
77
89
  <step name="position">
78
90
  **Parse current position from init context and roadmap analysis:**
79
91
 
80
- - Use `current_phase` and `next_phase` from `$ROADMAP`
81
- - Note `paused_at` if work was paused (from `$STATE`)
92
+ - Use `current_phase` and `next_phase` from roadmap analyze
93
+ - Use phase-level `has_context` and `has_research` flags from analyze
94
+ - Note `paused_at` if work was paused (from init context)
82
95
  - Count pending todos: use `init todos` or `list-todos`
83
96
  - Check for active debug sessions: `ls .planning/debug/*.md 2>/dev/null | grep -v resolved | wc -l`
84
97
  </step>
@@ -109,12 +122,11 @@ Plan [M] of [phase-total]: [status]
109
122
  CONTEXT: [✓ if has_context | - if not]
110
123
 
111
124
  ## Key Decisions Made
112
- - [extract from $STATE.decisions[]]
113
- - [e.g. jq -r '.decisions[].decision' from state-snapshot]
125
+ - [decision 1 from STATE.md]
126
+ - [decision 2]
114
127
 
115
128
  ## Blockers/Concerns
116
- - [extract from $STATE.blockers[]]
117
- - [e.g. jq -r '.blockers[].text' from state-snapshot]
129
+ - [any blockers or concerns from STATE.md]
118
130
 
119
131
  ## Pending Todos
120
132
  - [count] pending — $gsd-check-todos to review
@@ -96,12 +96,8 @@ Task(
96
96
  **Directory:** ${QUICK_DIR}
97
97
  **Description:** ${DESCRIPTION}
98
98
 
99
- <files_to_read>
100
- - .planning/STATE.md (Project State)
101
- - ./CODEX.md (if exists — follow project-specific guidelines)
102
- </files_to_read>
103
-
104
- **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
99
+ **Project State:**
100
+ @.planning/STATE.md
105
101
 
106
102
  </planning_context>
107
103
 
@@ -147,6 +143,10 @@ Display banner:
147
143
  ◆ Spawning plan checker...
148
144
  ```
149
145
 
146
+ ```bash
147
+ PLAN_CONTENT=$(cat "${QUICK_DIR}/${next_num}-PLAN.md" 2>/dev/null)
148
+ ```
149
+
150
150
  Checker prompt:
151
151
 
152
152
  ```markdown
@@ -154,9 +154,7 @@ Checker prompt:
154
154
  **Mode:** quick-full
155
155
  **Task Description:** ${DESCRIPTION}
156
156
 
157
- <files_to_read>
158
- - ${QUICK_DIR}/${next_num}-PLAN.md (Plan to verify)
159
- </files_to_read>
157
+ **Plan to verify:** ${PLAN_CONTENT}
160
158
 
161
159
  **Scope:** This is a quick task, not a full phase. Skip checks that require a ROADMAP phase goal.
162
160
  </verification_context>
@@ -199,16 +197,17 @@ Track `iteration_count` (starts at 1 after initial plan + check).
199
197
 
200
198
  Display: `Sending back to planner for revision... (iteration ${N}/2)`
201
199
 
200
+ ```bash
201
+ PLAN_CONTENT=$(cat "${QUICK_DIR}/${next_num}-PLAN.md" 2>/dev/null)
202
+ ```
203
+
202
204
  Revision prompt:
203
205
 
204
206
  ```markdown
205
207
  <revision_context>
206
208
  **Mode:** quick-full (revision)
207
209
 
208
- <files_to_read>
209
- - ${QUICK_DIR}/${next_num}-PLAN.md (Existing plan)
210
- </files_to_read>
211
-
210
+ **Existing plan:** ${PLAN_CONTENT}
212
211
  **Checker issues:** ${structured_issues_from_checker}
213
212
 
214
213
  </revision_context>
@@ -248,12 +247,8 @@ Task(
248
247
  prompt="
249
248
  Execute quick task ${next_num}.
250
249
 
251
- <files_to_read>
252
- - ${QUICK_DIR}/${next_num}-PLAN.md (Plan)
253
- - .planning/STATE.md (Project state)
254
- - ./CODEX.md (Project instructions, if exists)
255
- - .agents/skills/ (Project skills, if exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
256
- </files_to_read>
250
+ Plan: @${QUICK_DIR}/${next_num}-PLAN.md
251
+ Project state: @.planning/STATE.md
257
252
 
258
253
  <constraints>
259
254
  - Execute all tasks in the plan
@@ -299,11 +294,7 @@ Task(
299
294
  prompt="Verify quick task goal achievement.
300
295
  Task directory: ${QUICK_DIR}
301
296
  Task goal: ${DESCRIPTION}
302
-
303
- <files_to_read>
304
- - ${QUICK_DIR}/${next_num}-PLAN.md (Plan)
305
- </files_to_read>
306
-
297
+ Plan: @${QUICK_DIR}/${next_num}-PLAN.md
307
298
  Check must_haves against actual codebase. Create VERIFICATION.md at ${QUICK_DIR}/${next_num}-VERIFICATION.md.",
308
299
  subagent_type="gsd-verifier",
309
300
  model="{verifier_model}",
@@ -17,6 +17,7 @@ if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]:
17
17
  Valid profiles: quality, balanced, budget
18
18
  EXIT
19
19
  ```
20
+
20
21
  </step>
21
22
 
22
23
  <step name="ensure_and_load_config">
@@ -34,6 +35,7 @@ This creates `.planning/config.json` with defaults if missing and loads current
34
35
  Read current config from state load or directly:
35
36
 
36
37
  Update `model_profile` field:
38
+
37
39
  ```json
38
40
  {
39
41
  "model_profile": "$ARGUMENTS.profile"
@@ -54,27 +56,29 @@ Agents will now use:
54
56
  [Show table from MODEL_PROFILES in gsd-tools.cjs for selected profile]
55
57
 
56
58
  Example:
57
- | Agent | Model |
58
- |-------|-------|
59
- | gsd-planner | opus |
60
- | gsd-executor | sonnet |
61
- | gsd-verifier | haiku |
62
- | ... | ... |
59
+ | Agent | Model | Thinking |
60
+ |-------|-------|----------|
61
+ | gsd-planner | gpt-5.3-codex | xhigh |
62
+ | gsd-executor | gpt-5.3-codex | high |
63
+ | gsd-verifier | gpt-5.3-codex | high |
64
+ | ... | ... | ... |
63
65
 
64
66
  Next spawned agents will use the new profile.
65
67
  ```
66
68
 
67
69
  Map profile names:
70
+
68
71
  - quality: use "quality" column from MODEL_PROFILES
69
72
  - balanced: use "balanced" column from MODEL_PROFILES
70
73
  - budget: use "budget" column from MODEL_PROFILES
71
- </step>
74
+ </step>
72
75
 
73
76
  </process>
74
77
 
75
78
  <success_criteria>
79
+
76
80
  - [ ] Argument validated
77
81
  - [ ] Config file ensured
78
82
  - [ ] Config updated with new model_profile
79
83
  - [ ] Confirmation displayed with model table
80
- </success_criteria>
84
+ </success_criteria>