gsd-opencode 1.10.2 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/agents/gsd-codebase-mapper.md +29 -3
  2. package/agents/gsd-debugger.md +19 -21
  3. package/agents/gsd-executor.md +213 -528
  4. package/agents/gsd-integration-checker.md +20 -0
  5. package/agents/gsd-phase-researcher.md +189 -267
  6. package/agents/gsd-plan-checker.md +278 -279
  7. package/agents/gsd-planner.md +299 -490
  8. package/agents/gsd-project-researcher.md +103 -345
  9. package/agents/gsd-research-synthesizer.md +5 -22
  10. package/agents/gsd-roadmapper.md +43 -6
  11. package/agents/gsd-verifier.md +158 -377
  12. package/{lib → bin/dm/lib}/constants.js +10 -3
  13. package/{src → bin/dm/src}/commands/install.js +5 -4
  14. package/{src → bin/dm/src}/commands/uninstall.js +3 -1
  15. package/{src → bin/dm/src}/services/backup-manager.js +1 -1
  16. package/{src → bin/dm/src}/services/config.js +1 -1
  17. package/{src → bin/dm/src}/services/file-ops.js +20 -4
  18. package/{src → bin/dm/src}/services/health-checker.js +3 -1
  19. package/{src → bin/dm/src}/services/repair-service.js +3 -1
  20. package/{src → bin/dm/src}/services/settings.js +1 -1
  21. package/{src → bin/dm/src}/services/update-service.js +2 -2
  22. package/bin/gsd-install.js +0 -0
  23. package/bin/gsd.js +9 -9
  24. package/commands/gsd/gsd-add-phase.md +43 -0
  25. package/commands/gsd/gsd-add-todo.md +47 -0
  26. package/commands/gsd/gsd-audit-milestone.md +36 -0
  27. package/commands/gsd/gsd-check-todos.md +45 -0
  28. package/commands/gsd/gsd-cleanup.md +18 -0
  29. package/commands/gsd/{complete-milestone.md → gsd-complete-milestone.md} +1 -1
  30. package/commands/gsd/{debug.md → gsd-debug.md} +16 -21
  31. package/commands/gsd/{discuss-phase.md → gsd-discuss-phase.md} +6 -9
  32. package/commands/gsd/gsd-execute-phase.md +41 -0
  33. package/commands/gsd/gsd-health.md +22 -0
  34. package/commands/gsd/gsd-help.md +22 -0
  35. package/commands/gsd/gsd-insert-phase.md +32 -0
  36. package/commands/gsd/gsd-join-discord.md +18 -0
  37. package/commands/gsd/{list-phase-assumptions.md → gsd-list-phase-assumptions.md} +3 -7
  38. package/commands/gsd/{map-codebase.md → gsd-map-codebase.md} +3 -3
  39. package/commands/gsd/gsd-new-milestone.md +44 -0
  40. package/commands/gsd/gsd-new-project.md +42 -0
  41. package/commands/gsd/gsd-pause-work.md +38 -0
  42. package/commands/gsd/gsd-plan-milestone-gaps.md +34 -0
  43. package/commands/gsd/gsd-plan-phase.md +44 -0
  44. package/commands/gsd/gsd-progress.md +24 -0
  45. package/commands/gsd/gsd-quick.md +41 -0
  46. package/commands/gsd/gsd-reapply-patches.md +119 -0
  47. package/commands/gsd/gsd-remove-phase.md +31 -0
  48. package/commands/gsd/{research-phase.md → gsd-research-phase.md} +38 -49
  49. package/commands/gsd/{resume-work.md → gsd-resume-work.md} +2 -2
  50. package/commands/gsd/gsd-set-profile.md +34 -0
  51. package/commands/gsd/gsd-settings.md +36 -0
  52. package/commands/gsd/gsd-update.md +37 -0
  53. package/commands/gsd/gsd-verify-work.md +38 -0
  54. package/get-shit-done/bin/gsd-tools.cjs +553 -0
  55. package/get-shit-done/bin/gsd-tools.test.cjs +2346 -0
  56. package/get-shit-done/bin/lib/commands.cjs +556 -0
  57. package/get-shit-done/bin/lib/config.cjs +162 -0
  58. package/get-shit-done/bin/lib/core.cjs +377 -0
  59. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  60. package/get-shit-done/bin/lib/init.cjs +694 -0
  61. package/get-shit-done/bin/lib/milestone.cjs +215 -0
  62. package/get-shit-done/bin/lib/phase.cjs +877 -0
  63. package/get-shit-done/bin/lib/roadmap.cjs +298 -0
  64. package/get-shit-done/bin/lib/state.cjs +490 -0
  65. package/get-shit-done/bin/lib/template.cjs +222 -0
  66. package/get-shit-done/bin/lib/verify.cjs +772 -0
  67. package/get-shit-done/references/checkpoints.md +62 -364
  68. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  69. package/get-shit-done/references/git-integration.md +10 -16
  70. package/get-shit-done/references/git-planning-commit.md +38 -0
  71. package/get-shit-done/references/model-profile-resolution.md +34 -0
  72. package/get-shit-done/references/model-profiles.md +54 -66
  73. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  74. package/get-shit-done/references/planning-config.md +112 -10
  75. package/get-shit-done/references/questioning.md +4 -0
  76. package/get-shit-done/references/ui-brand.md +1 -1
  77. package/get-shit-done/templates/UAT.md +1 -1
  78. package/get-shit-done/templates/VALIDATION.md +104 -0
  79. package/get-shit-done/templates/codebase/structure.md +6 -6
  80. package/get-shit-done/templates/config.json +37 -0
  81. package/get-shit-done/templates/context.md +2 -10
  82. package/get-shit-done/templates/continue-here.md +6 -6
  83. package/get-shit-done/templates/debug-subagent-prompt.md +2 -2
  84. package/get-shit-done/templates/discovery.md +6 -6
  85. package/get-shit-done/templates/milestone-archive.md +3 -3
  86. package/get-shit-done/templates/phase-prompt.md +9 -7
  87. package/get-shit-done/templates/planner-subagent-prompt.md +6 -6
  88. package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
  89. package/get-shit-done/templates/research.md +29 -6
  90. package/get-shit-done/templates/roadmap.md +1 -1
  91. package/get-shit-done/templates/state.md +0 -30
  92. package/get-shit-done/templates/summary-complex.md +59 -0
  93. package/get-shit-done/templates/summary-minimal.md +41 -0
  94. package/get-shit-done/templates/summary-standard.md +48 -0
  95. package/get-shit-done/templates/summary.md +16 -37
  96. package/get-shit-done/templates/user-setup.md +1 -13
  97. package/get-shit-done/templates/verification-report.md +5 -5
  98. package/get-shit-done/workflows/add-phase.md +111 -0
  99. package/{commands/gsd → get-shit-done/workflows}/add-todo.md +24 -60
  100. package/{commands/gsd → get-shit-done/workflows}/audit-milestone.md +83 -63
  101. package/{commands/gsd → get-shit-done/workflows}/check-todos.md +21 -73
  102. package/get-shit-done/workflows/cleanup.md +152 -0
  103. package/get-shit-done/workflows/complete-milestone.md +251 -312
  104. package/get-shit-done/workflows/diagnose-issues.md +6 -31
  105. package/get-shit-done/workflows/discovery-phase.md +11 -11
  106. package/get-shit-done/workflows/discuss-phase.md +156 -49
  107. package/get-shit-done/workflows/execute-phase.md +238 -396
  108. package/get-shit-done/workflows/execute-plan.md +180 -1609
  109. package/get-shit-done/workflows/health.md +156 -0
  110. package/{commands/gsd → get-shit-done/workflows}/help.md +33 -35
  111. package/get-shit-done/workflows/insert-phase.md +129 -0
  112. package/get-shit-done/workflows/list-phase-assumptions.md +3 -3
  113. package/get-shit-done/workflows/map-codebase.md +73 -80
  114. package/get-shit-done/workflows/new-milestone.md +382 -0
  115. package/{commands/gsd → get-shit-done/workflows}/new-project.md +281 -234
  116. package/get-shit-done/workflows/oc-set-profile.md +320 -0
  117. package/{commands/gsd → get-shit-done/workflows}/pause-work.md +31 -43
  118. package/{commands/gsd → get-shit-done/workflows}/plan-milestone-gaps.md +29 -50
  119. package/get-shit-done/workflows/plan-phase.md +478 -0
  120. package/{commands/gsd → get-shit-done/workflows}/progress.md +64 -47
  121. package/get-shit-done/workflows/quick.md +453 -0
  122. package/get-shit-done/workflows/remove-phase.md +154 -0
  123. package/get-shit-done/workflows/research-phase.md +73 -0
  124. package/get-shit-done/workflows/resume-project.md +17 -26
  125. package/get-shit-done/workflows/set-profile.md +80 -0
  126. package/get-shit-done/workflows/settings.md +213 -0
  127. package/get-shit-done/workflows/transition.md +84 -104
  128. package/{commands/gsd → get-shit-done/workflows}/update.md +70 -28
  129. package/get-shit-done/workflows/verify-phase.md +106 -492
  130. package/get-shit-done/workflows/verify-work.md +26 -53
  131. package/package.json +7 -4
  132. package/rules/gsd-oc-work-hard.md +36 -0
  133. package/skills/gsd-oc-select-model/SKILL.md +348 -0
  134. package/skills/gsd-oc-select-model/scripts/select-models.cjs +268 -0
  135. package/agents/gsd-set-model.md +0 -287
  136. package/agents/gsd-set-profile.md +0 -239
  137. package/agents/gsd-settings.md +0 -749
  138. package/bin/install.js +0 -323
  139. package/commands/gsd/add-phase.md +0 -207
  140. package/commands/gsd/execute-phase.md +0 -339
  141. package/commands/gsd/insert-phase.md +0 -227
  142. package/commands/gsd/new-milestone.md +0 -721
  143. package/commands/gsd/plan-phase.md +0 -525
  144. package/commands/gsd/quick.md +0 -309
  145. package/commands/gsd/remove-phase.md +0 -349
  146. package/commands/gsd/set-model.md +0 -77
  147. package/commands/gsd/set-profile.md +0 -46
  148. package/commands/gsd/settings.md +0 -33
  149. package/commands/gsd/verify-work.md +0 -219
  150. package/commands/gsd/whats-new.md +0 -124
  151. /package/{src → bin/dm/src}/commands/check.js +0 -0
  152. /package/{src → bin/dm/src}/commands/config.js +0 -0
  153. /package/{src → bin/dm/src}/commands/list.js +0 -0
  154. /package/{src → bin/dm/src}/commands/repair.js +0 -0
  155. /package/{src → bin/dm/src}/commands/update.js +0 -0
  156. /package/{src → bin/dm/src}/services/manifest-manager.js +0 -0
  157. /package/{src → bin/dm/src}/services/migration-service.js +0 -0
  158. /package/{src → bin/dm/src}/services/scope-manager.js +0 -0
  159. /package/{src → bin/dm/src}/services/structure-detector.js +0 -0
  160. /package/{src → bin/dm/src}/utils/hash.js +0 -0
  161. /package/{src → bin/dm/src}/utils/interactive.js +0 -0
  162. /package/{src → bin/dm/src}/utils/logger.js +0 -0
  163. /package/{src → bin/dm/src}/utils/npm-registry.js +0 -0
  164. /package/{src → bin/dm/src}/utils/path-resolver.js +0 -0
@@ -1,81 +1,71 @@
1
- ---
2
- name: gsd-new-project
3
- description: Initialize a new project with deep context gathering and PROJECT.md
4
- tools:
5
- - read
6
- - bash
7
- - write
8
-
9
- - question
10
- ---
1
+ <purpose>
2
+ Initialize a new project through unified flow: questioning, research (optional), requirements, roadmap. This is the most leveraged moment in any project — deep questioning here means better plans, better execution, better outcomes. One workflow takes you from idea to ready-for-planning.
3
+ </purpose>
11
4
 
12
- <objective>
5
+ <required_reading>
6
+ read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
13
8
 
14
- Initialize a new project through unified flow: questioning → research (optional) → requirements → roadmap.
9
+ <auto_mode>
10
+ ## Auto Mode Detection
15
11
 
16
- This is the most leveraged moment in any project. Deep questioning here means better plans, better execution, better outcomes. One command takes you from idea to ready-for-planning.
12
+ Check if `--auto` flag is present in $ARGUMENTS.
17
13
 
18
- **Creates:**
19
- - `.planning/PROJECT.md` project context
20
- - `.planning/config.json` workflow preferences
21
- - `.planning/research/` domain research (optional)
22
- - `.planning/REQUIREMENTS.md` scoped requirements
23
- - `.planning/ROADMAP.md` phase structure
24
- - `.planning/STATE.md` project memory
14
+ **If auto mode:**
15
+ - Skip brownfield mapping offer (assume greenfield)
16
+ - Skip deep questioning (extract context from provided document)
17
+ - Config: YOLO mode is implicit (skip that question), but ask depth/git/agents FIRST (Step 2a)
18
+ - After config: run Steps 6-9 automatically with smart defaults:
19
+ - Research: Always yes
20
+ - Requirements: Include all table stakes + features from provided document
21
+ - Requirements approval: Auto-approve
22
+ - Roadmap approval: Auto-approve
25
23
 
26
- **After this command:** Run `/gsd-plan-phase 1` to start execution.
24
+ **Document requirement:**
25
+ Auto mode requires an idea document — either:
26
+ - File reference: `/gsd-new-project --auto @prd.md`
27
+ - Pasted/written text in the prompt
27
28
 
28
- </objective>
29
+ If no document content provided, error:
29
30
 
30
- <execution_context>
31
+ ```
32
+ Error: --auto requires an idea document.
31
33
 
32
- @~/.config/opencode/get-shit-done/references/questioning.md
33
- @~/.config/opencode/get-shit-done/references/ui-brand.md
34
- @~/.config/opencode/get-shit-done/templates/project.md
35
- @~/.config/opencode/get-shit-done/templates/requirements.md
34
+ Usage:
35
+ /gsd-new-project --auto @your-idea.md
36
+ /gsd-new-project --auto [paste or write your idea here]
36
37
 
37
- </execution_context>
38
+ The document should describe what you want to build.
39
+ ```
40
+ </auto_mode>
38
41
 
39
42
  <process>
40
43
 
41
- ## Phase 1: Setup
44
+ ## 1. Setup
42
45
 
43
46
  **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
44
47
 
45
- 1. **Abort if project exists:**
46
- ```bash
47
- [ -f .planning/PROJECT.md ] && echo "ERROR: Project already initialized. Use /gsd-progress" && exit 1
48
- ```
48
+ ```bash
49
+ INIT=$(node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs init new-project)
50
+ ```
49
51
 
50
- 2. **Initialize git repo in THIS directory** (required even if inside a parent repo):
51
- ```bash
52
- if [ -d .git ] || [ -f .git ]; then
53
- echo "Git repo exists in current directory"
54
- else
55
- git init
56
- echo "Initialized new git repo"
57
- fi
58
- ```
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`.
59
53
 
60
- 3. **Detect existing code (brownfield detection):**
61
- ```bash
62
- CODE_FILES=$(find . -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.swift" -o -name "*.java" 2>/dev/null | grep -v node_modules | grep -v .git | head -20)
63
- HAS_PACKAGE=$([ -f package.json ] || [ -f requirements.txt ] || [ -f Cargo.toml ] || [ -f go.mod ] || [ -f Package.swift ] && echo "yes")
64
- HAS_CODEBASE_MAP=$([ -d .planning/codebase ] && echo "yes")
65
- ```
54
+ **If `project_exists` is true:** Error — project already initialized. Use `/gsd-progress`.
66
55
 
67
- **You MUST run all bash commands above using the bash tool before proceeding.**
56
+ **If `has_git` is false:** Initialize git:
57
+ ```bash
58
+ git init
59
+ ```
68
60
 
69
- ## Phase 2: Brownfield Offer
61
+ ## 2. Brownfield Offer
70
62
 
71
- **If existing code detected and .planning/codebase/ doesn't exist:**
63
+ **If auto mode:** Skip to Step 4 (assume greenfield, synthesize PROJECT.md from provided document).
72
64
 
73
- Check the results from setup step:
74
- - If `CODE_FILES` is non-empty OR `HAS_PACKAGE` is "yes"
75
- - AND `HAS_CODEBASE_MAP` is NOT "yes"
65
+ **If `needs_codebase_map` is true** (from init — existing code detected but no codebase map):
76
66
 
77
67
  Use question:
78
- - header: "Existing Code"
68
+ - header: "Codebase"
79
69
  - question: "I detected existing code in this directory. Would you like to map the codebase first?"
80
70
  - options:
81
71
  - "Map codebase first" — Run /gsd-map-codebase to understand existing architecture (Recommended)
@@ -87,11 +77,131 @@ Run `/gsd-map-codebase` first, then return to `/gsd-new-project`
87
77
  ```
88
78
  Exit command.
89
79
 
90
- **If "Skip mapping":** Continue to Phase 3.
80
+ **If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
81
+
82
+ ## 2a. Auto Mode Config (auto mode only)
83
+
84
+ **If auto mode:** Collect config settings upfront before processing the idea document.
85
+
86
+ YOLO mode is implicit (auto = YOLO). Ask remaining config questions:
87
+
88
+ **Round 1 — Core settings (3 questions, no Mode question):**
89
+
90
+ ```
91
+ question([
92
+ {
93
+ header: "Depth",
94
+ question: "How thorough should planning be?",
95
+ multiSelect: false,
96
+ options: [
97
+ { label: "Quick (Recommended)", description: "Ship fast (3-5 phases, 1-3 plans each)" },
98
+ { label: "Standard", description: "Balanced scope and speed (5-8 phases, 3-5 plans each)" },
99
+ { label: "Comprehensive", description: "Thorough coverage (8-12 phases, 5-10 plans each)" }
100
+ ]
101
+ },
102
+ {
103
+ header: "Execution",
104
+ question: "Run plans in parallel?",
105
+ multiSelect: false,
106
+ options: [
107
+ { label: "Parallel (Recommended)", description: "Independent plans run simultaneously" },
108
+ { label: "Sequential", description: "One plan at a time" }
109
+ ]
110
+ },
111
+ {
112
+ header: "Git Tracking",
113
+ question: "Commit planning docs to git?",
114
+ multiSelect: false,
115
+ options: [
116
+ { label: "Yes (Recommended)", description: "Planning docs tracked in version control" },
117
+ { label: "No", description: "Keep .planning/ local-only (add to .gitignore)" }
118
+ ]
119
+ }
120
+ ])
121
+ ```
122
+
123
+ **Round 2 — Workflow agents (same as Step 5):**
124
+
125
+ ```
126
+ question([
127
+ {
128
+ header: "Research",
129
+ question: "Research before planning each phase? (adds tokens/time)",
130
+ multiSelect: false,
131
+ options: [
132
+ { label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
133
+ { label: "No", description: "Plan directly from requirements" }
134
+ ]
135
+ },
136
+ {
137
+ header: "Plan Check",
138
+ question: "Verify plans will achieve their goals? (adds tokens/time)",
139
+ multiSelect: false,
140
+ options: [
141
+ { label: "Yes (Recommended)", description: "Catch gaps before execution starts" },
142
+ { label: "No", description: "Execute plans without verification" }
143
+ ]
144
+ },
145
+ {
146
+ header: "Verifier",
147
+ question: "Verify work satisfies requirements after each phase? (adds tokens/time)",
148
+ multiSelect: false,
149
+ options: [
150
+ { label: "Yes (Recommended)", description: "Confirm deliverables match phase goals" },
151
+ { label: "No", description: "Trust execution, skip verification" }
152
+ ]
153
+ },
154
+ {
155
+ header: "AI Models",
156
+ question: "Which AI models for planning agents?",
157
+ multiSelect: false,
158
+ options: [
159
+ { label: "Smart (Recommended)", description: "Two models: one for reseach and planing, other for execution and verification" },
160
+ { label: "Simple", description: Description: "One model for all agents (not flexible)" },
161
+ { label: "Custom (most flexible)", description: "Three models: different for every stage" }
162
+ ]
163
+ }
164
+ ])
165
+ ```
166
+
167
+ Create `.planning/config.json` with mode set to "yolo":
168
+
169
+ ```json
170
+ {
171
+ "mode": "yolo",
172
+ "depth": "[selected]",
173
+ "parallelization": true|false,
174
+ "commit_docs": true|false,
175
+ "model_profile": "simple|smart|custom",
176
+ "workflow": {
177
+ "research": true|false,
178
+ "plan_check": true|false,
179
+ "verifier": true|false,
180
+ "auto_advance": true
181
+ }
182
+ }
183
+ ```
184
+
185
+ **If commit_docs = No:** Add `.planning/` to `.gitignore`.
186
+
187
+ **Commit config.json:**
188
+
189
+ ```bash
190
+ mkdir -p .planning
191
+ node ~/.config/opencode/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):**
91
195
 
92
- **If no existing code detected OR codebase already mapped:** Continue to Phase 3.
196
+ ```bash
197
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs config-set workflow.auto_advance true
198
+ ```
199
+
200
+ Proceed to Step 4 (skip Steps 3 and 5).
93
201
 
94
- ## Phase 3: Deep Questioning
202
+ ## 3. Deep Questioning
203
+
204
+ **If auto mode:** Skip (already handled in Step 2a). Extract project context from provided document instead and proceed to Step 4.
95
205
 
96
206
  **Display stage banner:**
97
207
 
@@ -145,7 +255,9 @@ If "Keep exploring" — ask what they want to add, or identify gaps and probe na
145
255
 
146
256
  Loop until "Create PROJECT.md" selected.
147
257
 
148
- ## Phase 4: write PROJECT.md
258
+ ## 4. write PROJECT.md
259
+
260
+ **If auto mode:** Synthesize from provided document. No "Ready?" gate was shown — proceed directly to commit.
149
261
 
150
262
  Synthesize all context into `.planning/PROJECT.md` using the template from `templates/project.md`.
151
263
 
@@ -226,16 +338,32 @@ Do not compress. Capture everything gathered.
226
338
 
227
339
  ```bash
228
340
  mkdir -p .planning
229
- git add .planning/PROJECT.md
230
- git commit -m "$(cat <<'EOF'
231
- docs: initialize project
341
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs commit "docs: initialize project" --files .planning/PROJECT.md
342
+ ```
343
+
344
+ ## 5. Workflow Preferences
345
+
346
+ **If auto mode:** Skip — config was collected in Step 2a. Proceed to Step 5.5.
232
347
 
233
- [One-liner from PROJECT.md What This Is section]
234
- EOF
235
- )"
348
+ **Check for global defaults** at `~/.gsd/defaults.json`. If the file exists, offer to use saved defaults:
349
+
350
+ ```
351
+ question([
352
+ {
353
+ question: "Use your saved default settings? (from ~/.gsd/defaults.json)",
354
+ header: "Defaults",
355
+ multiSelect: false,
356
+ options: [
357
+ { label: "Yes (Recommended)", description: "Use saved defaults, skip settings questions" },
358
+ { label: "No", description: "Configure settings manually" }
359
+ ]
360
+ }
361
+ ])
236
362
  ```
237
363
 
238
- ## Phase 5: Workflow Preferences
364
+ If "Yes": read `~/.gsd/defaults.json`, use those values for config.json, and skip directly to **Commit config.json** below.
365
+
366
+ If "No" or `~/.gsd/defaults.json` doesn't exist: proceed with the questions below.
239
367
 
240
368
  **Round 1 — Core workflow settings (4 questions):**
241
369
 
@@ -323,13 +451,13 @@ questions: [
323
451
  ]
324
452
  },
325
453
  {
326
- header: "Model Profile",
454
+ header: "AI Models",
327
455
  question: "Which AI models for planning agents?",
328
456
  multiSelect: false,
329
457
  options: [
330
- { label: "Balanced", description: "planning/verifier: opencode/glm-4.7-free, execution: opencode/minimax-m2.1-free" },
331
- { label: "Quality", description: "All stages: opencode/glm-4.7-free" },
332
- { label: "Budget", description: "planning/verifier: opencode/minimax-m2.1-free, execution: opencode/grok-code" }
458
+ { label: "Smart (Recommended)", description: "Two models: one for reseach and planing, other for execution and verification" },
459
+ { label: "Simple", description: Description: "One model for all agents (not flexible)" },
460
+ { label: "Custom (most flexible)", description: "Three models: different for every stage" }
333
461
  ]
334
462
  }
335
463
  ]
@@ -343,32 +471,7 @@ Create `.planning/config.json` with all settings:
343
471
  "depth": "quick|standard|comprehensive",
344
472
  "parallelization": true|false,
345
473
  "commit_docs": true|false,
346
- "model_profile": "quality|balanced|budget",
347
- "profiles": {
348
- "active_profile": "balanced",
349
- "presets": {
350
- "quality": {
351
- "planning": "opencode/glm-4.7-free",
352
- "execution": "opencode/glm-4.7-free",
353
- "verification": "opencode/glm-4.7-free"
354
- },
355
- "balanced": {
356
- "planning": "opencode/glm-4.7-free",
357
- "execution": "opencode/minimax-m2.1-free",
358
- "verification": "opencode/glm-4.7-free"
359
- },
360
- "budget": {
361
- "planning": "opencode/minimax-m2.1-free",
362
- "execution": "opencode/grok-code",
363
- "verification": "opencode/minimax-m2.1-free"
364
- }
365
- },
366
- "custom_overrides": {
367
- "quality": {},
368
- "balanced": {},
369
- "budget": {}
370
- }
371
- },
474
+ "model_profile": "simple|smart|custom",
372
475
  "workflow": {
373
476
  "research": true|false,
374
477
  "plan_check": true|false,
@@ -387,81 +490,18 @@ Create `.planning/config.json` with all settings:
387
490
  **Commit config.json:**
388
491
 
389
492
  ```bash
390
- git add .planning/config.json
391
- git commit -m "$(cat <<'EOF'
392
- chore: add project config
393
-
394
- Mode: [chosen mode]
395
- Depth: [chosen depth]
396
- Parallelization: [enabled/disabled]
397
- Workflow agents: research=[on/off], plan_check=[on/off], verifier=[on/off]
398
- EOF
399
- )"
493
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json
400
494
  ```
401
495
 
402
- **Generate opencode.json from active profile:**
403
-
404
- Create `opencode.json` in the project root. This is a derived config that assigns a model to each GSD agent.
405
-
406
- Use the effective stage models from `.planning/config.json`:
407
-
408
- - planning model = `profiles.presets.{active_profile}.planning` (unless overridden)
409
- - execution model = `profiles.presets.{active_profile}.execution` (unless overridden)
410
- - verification model = `profiles.presets.{active_profile}.verification` (unless overridden)
411
-
412
- Write `opencode.json`:
413
-
414
- ```json
415
- {
416
- "$schema": "https://opencode.ai/config.json",
417
- "agent": {
418
- "gsd-planner": { "model": "{planning model}" },
419
- "gsd-plan-checker": { "model": "{planning model}" },
420
- "gsd-phase-researcher": { "model": "{planning model}" },
421
- "gsd-roadmapper": { "model": "{planning model}" },
422
- "gsd-project-researcher": { "model": "{planning model}" },
423
- "gsd-research-synthesizer": { "model": "{planning model}" },
424
- "gsd-codebase-mapper": { "model": "{planning model}" },
425
- "gsd-executor": { "model": "{execution model}" },
426
- "gsd-debugger": { "model": "{execution model}" },
427
- "gsd-verifier": { "model": "{verification model}" },
428
- "gsd-integration-checker": { "model": "{verification model}" }
429
- }
430
- }
431
- ```
432
-
433
- **Commit opencode.json:**
434
-
435
- ```bash
436
- git add opencode.json
437
- git commit -m "chore: configure opencode agent models"
438
- ```
439
-
440
- **Important:** OpenCode loads `opencode.json` at session start and does not hot-reload. If you change profiles later via `/gsd-set-profile` or `/gsd-settings`, run `/new` (or restart OpenCode) for it to take effect.
441
-
442
496
  **Note:** Run `/gsd-settings` anytime to update these preferences.
443
497
 
444
- ## Phase 5.5: Resolve Model Profile
445
-
446
- read model profile for agent spawning:
447
-
448
- ```bash
449
- MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
450
- ```
451
-
452
- Default to "balanced" if not set.
498
+ ## 5.5. Resolve Model Profile
453
499
 
454
- **Model lookup table:**
500
+ Use models from init: `researcher_model`, `synthesizer_model`, `roadmapper_model`.
455
501
 
456
- | Agent | quality | balanced | budget |
457
- |-------|---------|----------|--------|
458
- | gsd-project-researcher | opus | sonnet | haiku |
459
- | gsd-research-synthesizer | sonnet | sonnet | haiku |
460
- | gsd-roadmapper | opus | sonnet | sonnet |
502
+ ## 6. Research Decision
461
503
 
462
- Store resolved models for use in Task calls below.
463
-
464
- ## Phase 6: Research Decision
504
+ **If auto mode:** Default to "Research first" without asking.
465
505
 
466
506
  Use question:
467
507
  - header: "Research"
@@ -501,10 +541,11 @@ Display spawning indicator:
501
541
  → Pitfalls research
502
542
  ```
503
543
 
504
- Spawn 4 parallel gsd-project-researcher agents with rich context:
544
+ Spawn 4 parallel gsd-project-researcher agents with path references:
505
545
 
506
546
  ```
507
- Task(prompt="
547
+ task(prompt="First, read ~/.config/opencode/agents/gsd-project-researcher.md for your role and instructions.
548
+
508
549
  <research_type>
509
550
  Project Research — Stack dimension for [domain].
510
551
  </research_type>
@@ -520,9 +561,9 @@ Subsequent: Research what's needed to add [target features] to an existing [doma
520
561
  What's the standard 2025 stack for [domain]?
521
562
  </question>
522
563
 
523
- <project_context>
524
- [PROJECT.md summary - core value, constraints, what they're building]
525
- </project_context>
564
+ <files_to_read>
565
+ - {project_path} (Project context and goals)
566
+ </files_to_read>
526
567
 
527
568
  <downstream_consumer>
528
569
  Your STACK.md feeds into roadmap creation. Be prescriptive:
@@ -541,9 +582,10 @@ Your STACK.md feeds into roadmap creation. Be prescriptive:
541
582
  write to: .planning/research/STACK.md
542
583
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/STACK.md
543
584
  </output>
544
- ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Stack research")
585
+ ", subagent_type="task", model="{researcher_model}", description="Stack research")
586
+
587
+ task(prompt="First, read ~/.config/opencode/agents/gsd-project-researcher.md for your role and instructions.
545
588
 
546
- Task(prompt="
547
589
  <research_type>
548
590
  Project Research — Features dimension for [domain].
549
591
  </research_type>
@@ -559,9 +601,9 @@ Subsequent: How do [target features] typically work? What's expected behavior?
559
601
  What features do [domain] products have? What's table stakes vs differentiating?
560
602
  </question>
561
603
 
562
- <project_context>
563
- [PROJECT.md summary]
564
- </project_context>
604
+ <files_to_read>
605
+ - {project_path} (Project context)
606
+ </files_to_read>
565
607
 
566
608
  <downstream_consumer>
567
609
  Your FEATURES.md feeds into requirements definition. Categorize clearly:
@@ -580,9 +622,10 @@ Your FEATURES.md feeds into requirements definition. Categorize clearly:
580
622
  write to: .planning/research/FEATURES.md
581
623
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/FEATURES.md
582
624
  </output>
583
- ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Features research")
625
+ ", subagent_type="task", model="{researcher_model}", description="Features research")
626
+
627
+ task(prompt="First, read ~/.config/opencode/agents/gsd-project-researcher.md for your role and instructions.
584
628
 
585
- Task(prompt="
586
629
  <research_type>
587
630
  Project Research — Architecture dimension for [domain].
588
631
  </research_type>
@@ -598,9 +641,9 @@ Subsequent: How do [target features] integrate with existing [domain] architectu
598
641
  How are [domain] systems typically structured? What are major components?
599
642
  </question>
600
643
 
601
- <project_context>
602
- [PROJECT.md summary]
603
- </project_context>
644
+ <files_to_read>
645
+ - {project_path} (Project context)
646
+ </files_to_read>
604
647
 
605
648
  <downstream_consumer>
606
649
  Your ARCHITECTURE.md informs phase structure in roadmap. Include:
@@ -619,9 +662,10 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
619
662
  write to: .planning/research/ARCHITECTURE.md
620
663
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/ARCHITECTURE.md
621
664
  </output>
622
- ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Architecture research")
665
+ ", subagent_type="task", model="{researcher_model}", description="Architecture research")
666
+
667
+ task(prompt="First, read ~/.config/opencode/agents/gsd-project-researcher.md for your role and instructions.
623
668
 
624
- Task(prompt="
625
669
  <research_type>
626
670
  Project Research — Pitfalls dimension for [domain].
627
671
  </research_type>
@@ -637,9 +681,9 @@ Subsequent: What are common mistakes when adding [target features] to [domain]?
637
681
  What do [domain] projects commonly get wrong? Critical mistakes?
638
682
  </question>
639
683
 
640
- <project_context>
641
- [PROJECT.md summary]
642
- </project_context>
684
+ <files_to_read>
685
+ - {project_path} (Project context)
686
+ </files_to_read>
643
687
 
644
688
  <downstream_consumer>
645
689
  Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
@@ -658,24 +702,23 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
658
702
  write to: .planning/research/PITFALLS.md
659
703
  Use template: ~/.config/opencode/get-shit-done/templates/research-project/PITFALLS.md
660
704
  </output>
661
- ", subagent_type="gsd-project-researcher", model="{researcher_model}", description="Pitfalls research")
705
+ ", subagent_type="task", model="{researcher_model}", description="Pitfalls research")
662
706
  ```
663
707
 
664
708
  After all 4 agents complete, spawn synthesizer to create SUMMARY.md:
665
709
 
666
710
  ```
667
- Task(prompt="
711
+ task(prompt="
668
712
  <task>
669
713
  Synthesize research outputs into SUMMARY.md.
670
714
  </task>
671
715
 
672
- <research_files>
673
- read these files:
716
+ <files_to_read>
674
717
  - .planning/research/STACK.md
675
718
  - .planning/research/FEATURES.md
676
719
  - .planning/research/ARCHITECTURE.md
677
720
  - .planning/research/PITFALLS.md
678
- </research_files>
721
+ </files_to_read>
679
722
 
680
723
  <output>
681
724
  write to: .planning/research/SUMMARY.md
@@ -700,9 +743,9 @@ Display research complete banner and key findings:
700
743
  Files: `.planning/research/`
701
744
  ```
702
745
 
703
- **If "Skip research":** Continue to Phase 7.
746
+ **If "Skip research":** Continue to Step 7.
704
747
 
705
- ## Phase 7: Define Requirements
748
+ ## 7. Define Requirements
706
749
 
707
750
  Display stage banner:
708
751
  ```
@@ -720,7 +763,16 @@ read PROJECT.md and extract:
720
763
 
721
764
  **If research exists:** read research/FEATURES.md and extract feature categories.
722
765
 
723
- **Present features by category:**
766
+ **If auto mode:**
767
+ - Auto-include all table stakes features (users expect these)
768
+ - Include features explicitly mentioned in provided document
769
+ - Auto-defer differentiators not mentioned in document
770
+ - Skip per-category question loops
771
+ - Skip "Any additions?" question
772
+ - Skip requirements approval gate
773
+ - Generate REQUIREMENTS.md and commit directly
774
+
775
+ **Present features by category (interactive mode only):**
724
776
 
725
777
  ```
726
778
  Here are the features for [domain]:
@@ -758,7 +810,7 @@ For each capability mentioned:
758
810
 
759
811
  For each category, use question:
760
812
 
761
- - header: "[Category name]"
813
+ - header: "[Category]" (max 12 chars)
762
814
  - question: "Which [category] features are in v1?"
763
815
  - multiSelect: true
764
816
  - options:
@@ -807,7 +859,7 @@ Reject vague requirements. Push for specificity:
807
859
  - "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
808
860
  - "Support sharing" → "User can share post via link that opens in recipient's browser"
809
861
 
810
- **Present full requirements list:**
862
+ **Present full requirements list (interactive mode only):**
811
863
 
812
864
  Show every requirement (not counts) for user confirmation:
813
865
 
@@ -835,17 +887,10 @@ If "adjust": Return to scoping.
835
887
  **Commit requirements:**
836
888
 
837
889
  ```bash
838
- git add .planning/REQUIREMENTS.md
839
- git commit -m "$(cat <<'EOF'
840
- docs: define v1 requirements
841
-
842
- [X] requirements across [N] categories
843
- [Y] requirements deferred to v2
844
- EOF
845
- )"
890
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md
846
891
  ```
847
892
 
848
- ## Phase 8: Create Roadmap
893
+ ## 8. Create Roadmap
849
894
 
850
895
  Display stage banner:
851
896
  ```
@@ -856,23 +901,18 @@ Display stage banner:
856
901
  ◆ Spawning roadmapper...
857
902
  ```
858
903
 
859
- Spawn gsd-roadmapper agent with context:
904
+ Spawn gsd-roadmapper agent with path references:
860
905
 
861
906
  ```
862
- Task(prompt="
907
+ task(prompt="
863
908
  <planning_context>
864
909
 
865
- **Project:**
866
- @.planning/PROJECT.md
867
-
868
- **Requirements:**
869
- @.planning/REQUIREMENTS.md
870
-
871
- **Research (if exists):**
872
- @.planning/research/SUMMARY.md
873
-
874
- **Config:**
875
- @.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>
876
916
 
877
917
  </planning_context>
878
918
 
@@ -937,7 +977,9 @@ Success criteria:
937
977
  ---
938
978
  ```
939
979
 
940
- **CRITICAL: Ask for approval before committing:**
980
+ **If auto mode:** Skip approval gate — auto-approve and commit directly.
981
+
982
+ **CRITICAL: Ask for approval before committing (interactive mode only):**
941
983
 
942
984
  Use question:
943
985
  - header: "Roadmap"
@@ -953,12 +995,14 @@ Use question:
953
995
  - Get user's adjustment notes
954
996
  - Re-spawn roadmapper with revision context:
955
997
  ```
956
- Task(prompt="
998
+ task(prompt="
957
999
  <revision>
958
1000
  User feedback on roadmap:
959
1001
  [user's notes]
960
1002
 
961
- Current ROADMAP.md: @.planning/ROADMAP.md
1003
+ <files_to_read>
1004
+ - .planning/ROADMAP.md (Current roadmap to revise)
1005
+ </files_to_read>
962
1006
 
963
1007
  Update the roadmap based on feedback. edit files in place.
964
1008
  Return ROADMAP REVISED with changes made.
@@ -970,26 +1014,15 @@ Use question:
970
1014
 
971
1015
  **If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
972
1016
 
973
- **Commit roadmap (after approval):**
1017
+ **Commit roadmap (after approval or auto mode):**
974
1018
 
975
1019
  ```bash
976
- git add .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
977
- git commit -m "$(cat <<'EOF'
978
- docs: create roadmap ([N] phases)
979
-
980
- Phases:
981
- 1. [phase-name]: [requirements covered]
982
- 2. [phase-name]: [requirements covered]
983
- ...
984
-
985
- All v1 requirements mapped to phases.
986
- EOF
987
- )"
1020
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
988
1021
  ```
989
1022
 
990
- ## Phase 10: Done
1023
+ ## 9. Done
991
1024
 
992
- Present completion with next steps:
1025
+ Present completion summary:
993
1026
 
994
1027
  ```
995
1028
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -1007,7 +1040,21 @@ Present completion with next steps:
1007
1040
  | Roadmap | `.planning/ROADMAP.md` |
1008
1041
 
1009
1042
  **[N] phases** | **[X] requirements** | Ready to build ✓
1043
+ ```
1044
+
1045
+ **If auto mode:**
1010
1046
 
1047
+ ```
1048
+ ╔══════════════════════════════════════════╗
1049
+ ║ AUTO-ADVANCING → DISCUSS PHASE 1 ║
1050
+ ╚══════════════════════════════════════════╝
1051
+ ```
1052
+
1053
+ Exit skill and invoke command("/gsd-discuss-phase 1 --auto")
1054
+
1055
+ **If interactive mode:**
1056
+
1057
+ ```
1011
1058
  ───────────────────────────────────────────────────────────────
1012
1059
 
1013
1060
  ## ▶ Next Up