gsd-opencode 1.22.0 → 1.30.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.
- package/agents/gsd-advisor-researcher.md +112 -0
- package/agents/gsd-assumptions-analyzer.md +110 -0
- package/agents/gsd-codebase-mapper.md +1 -2
- package/agents/gsd-debugger.md +119 -2
- package/agents/gsd-executor.md +25 -4
- package/agents/gsd-integration-checker.md +1 -2
- package/agents/gsd-nyquist-auditor.md +1 -2
- package/agents/gsd-phase-researcher.md +151 -5
- package/agents/gsd-plan-checker.md +71 -5
- package/agents/gsd-planner.md +50 -4
- package/agents/gsd-project-researcher.md +29 -3
- package/agents/gsd-research-synthesizer.md +1 -2
- package/agents/gsd-roadmapper.md +30 -2
- package/agents/gsd-ui-auditor.md +445 -0
- package/agents/gsd-ui-checker.md +305 -0
- package/agents/gsd-ui-researcher.md +368 -0
- package/agents/gsd-user-profiler.md +173 -0
- package/agents/gsd-verifier.md +124 -4
- package/commands/gsd/gsd-add-backlog.md +76 -0
- package/commands/gsd/gsd-audit-uat.md +24 -0
- package/commands/gsd/gsd-autonomous.md +41 -0
- package/commands/gsd/gsd-debug.md +5 -0
- package/commands/gsd/gsd-discuss-phase.md +10 -36
- package/commands/gsd/gsd-do.md +30 -0
- package/commands/gsd/gsd-execute-phase.md +20 -2
- package/commands/gsd/gsd-fast.md +30 -0
- package/commands/gsd/gsd-forensics.md +56 -0
- package/commands/gsd/gsd-list-workspaces.md +19 -0
- package/commands/gsd/gsd-manager.md +39 -0
- package/commands/gsd/gsd-milestone-summary.md +51 -0
- package/commands/gsd/gsd-new-workspace.md +44 -0
- package/commands/gsd/gsd-next.md +24 -0
- package/commands/gsd/gsd-note.md +34 -0
- package/commands/gsd/gsd-plan-phase.md +3 -1
- package/commands/gsd/gsd-plant-seed.md +28 -0
- package/commands/gsd/gsd-pr-branch.md +25 -0
- package/commands/gsd/gsd-profile-user.md +46 -0
- package/commands/gsd/gsd-quick.md +4 -2
- package/commands/gsd/gsd-reapply-patches.md +10 -6
- package/commands/gsd/gsd-remove-workspace.md +26 -0
- package/commands/gsd/gsd-research-phase.md +5 -0
- package/commands/gsd/gsd-resume-work.md +1 -1
- package/commands/gsd/gsd-review-backlog.md +61 -0
- package/commands/gsd/gsd-review.md +37 -0
- package/commands/gsd/gsd-session-report.md +19 -0
- package/commands/gsd/gsd-set-profile.md +24 -23
- package/commands/gsd/gsd-ship.md +23 -0
- package/commands/gsd/gsd-stats.md +18 -0
- package/commands/gsd/gsd-thread.md +127 -0
- package/commands/gsd/gsd-ui-phase.md +34 -0
- package/commands/gsd/gsd-ui-review.md +32 -0
- package/commands/gsd/gsd-workstreams.md +66 -0
- package/get-shit-done/bin/gsd-tools.cjs +410 -84
- package/get-shit-done/bin/lib/commands.cjs +429 -18
- package/get-shit-done/bin/lib/config.cjs +318 -45
- package/get-shit-done/bin/lib/core.cjs +822 -84
- package/get-shit-done/bin/lib/frontmatter.cjs +78 -41
- package/get-shit-done/bin/lib/init.cjs +836 -104
- package/get-shit-done/bin/lib/milestone.cjs +44 -33
- package/get-shit-done/bin/lib/model-profiles.cjs +68 -0
- package/get-shit-done/bin/lib/phase.cjs +293 -306
- package/get-shit-done/bin/lib/profile-output.cjs +952 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/roadmap.cjs +55 -24
- package/get-shit-done/bin/lib/security.cjs +382 -0
- package/get-shit-done/bin/lib/state.cjs +363 -53
- package/get-shit-done/bin/lib/template.cjs +2 -2
- package/get-shit-done/bin/lib/uat.cjs +282 -0
- package/get-shit-done/bin/lib/verify.cjs +104 -36
- package/get-shit-done/bin/lib/workstream.cjs +491 -0
- package/get-shit-done/references/checkpoints.md +12 -10
- package/get-shit-done/references/decimal-phase-calculation.md +2 -3
- package/get-shit-done/references/git-integration.md +47 -0
- package/get-shit-done/references/model-profile-resolution.md +2 -0
- package/get-shit-done/references/model-profiles.md +62 -16
- package/get-shit-done/references/phase-argument-parsing.md +2 -2
- package/get-shit-done/references/planning-config.md +3 -1
- package/get-shit-done/references/user-profiling.md +681 -0
- package/get-shit-done/references/workstream-flag.md +58 -0
- package/get-shit-done/templates/UAT.md +21 -3
- package/get-shit-done/templates/UI-SPEC.md +100 -0
- package/get-shit-done/templates/claude-md.md +122 -0
- package/get-shit-done/templates/config.json +10 -3
- package/get-shit-done/templates/context.md +61 -6
- package/get-shit-done/templates/dev-preferences.md +21 -0
- package/get-shit-done/templates/discussion-log.md +63 -0
- package/get-shit-done/templates/phase-prompt.md +46 -5
- package/get-shit-done/templates/project.md +2 -0
- package/get-shit-done/templates/state.md +2 -2
- package/get-shit-done/templates/user-profile.md +146 -0
- package/get-shit-done/workflows/add-phase.md +2 -2
- package/get-shit-done/workflows/add-tests.md +4 -4
- package/get-shit-done/workflows/add-todo.md +3 -3
- package/get-shit-done/workflows/audit-milestone.md +13 -5
- package/get-shit-done/workflows/audit-uat.md +109 -0
- package/get-shit-done/workflows/autonomous.md +891 -0
- package/get-shit-done/workflows/check-todos.md +2 -2
- package/get-shit-done/workflows/cleanup.md +4 -4
- package/get-shit-done/workflows/complete-milestone.md +9 -6
- package/get-shit-done/workflows/diagnose-issues.md +15 -3
- package/get-shit-done/workflows/discovery-phase.md +2 -2
- package/get-shit-done/workflows/discuss-phase-assumptions.md +653 -0
- package/get-shit-done/workflows/discuss-phase.md +411 -38
- package/get-shit-done/workflows/do.md +104 -0
- package/get-shit-done/workflows/execute-phase.md +405 -18
- package/get-shit-done/workflows/execute-plan.md +77 -12
- package/get-shit-done/workflows/fast.md +105 -0
- package/get-shit-done/workflows/forensics.md +265 -0
- package/get-shit-done/workflows/health.md +28 -6
- package/get-shit-done/workflows/help.md +124 -7
- package/get-shit-done/workflows/insert-phase.md +2 -2
- package/get-shit-done/workflows/list-phase-assumptions.md +2 -2
- package/get-shit-done/workflows/list-workspaces.md +56 -0
- package/get-shit-done/workflows/manager.md +362 -0
- package/get-shit-done/workflows/map-codebase.md +74 -13
- package/get-shit-done/workflows/milestone-summary.md +223 -0
- package/get-shit-done/workflows/new-milestone.md +120 -18
- package/get-shit-done/workflows/new-project.md +178 -39
- package/get-shit-done/workflows/new-workspace.md +237 -0
- package/get-shit-done/workflows/next.md +97 -0
- package/get-shit-done/workflows/node-repair.md +92 -0
- package/get-shit-done/workflows/note.md +156 -0
- package/get-shit-done/workflows/pause-work.md +62 -8
- package/get-shit-done/workflows/plan-milestone-gaps.md +4 -5
- package/get-shit-done/workflows/plan-phase.md +332 -33
- package/get-shit-done/workflows/plant-seed.md +169 -0
- package/get-shit-done/workflows/pr-branch.md +129 -0
- package/get-shit-done/workflows/profile-user.md +450 -0
- package/get-shit-done/workflows/progress.md +145 -20
- package/get-shit-done/workflows/quick.md +205 -49
- package/get-shit-done/workflows/remove-phase.md +2 -2
- package/get-shit-done/workflows/remove-workspace.md +90 -0
- package/get-shit-done/workflows/research-phase.md +11 -3
- package/get-shit-done/workflows/resume-project.md +35 -16
- package/get-shit-done/workflows/review.md +228 -0
- package/get-shit-done/workflows/session-report.md +146 -0
- package/get-shit-done/workflows/set-profile.md +2 -2
- package/get-shit-done/workflows/settings.md +80 -11
- package/get-shit-done/workflows/ship.md +228 -0
- package/get-shit-done/workflows/stats.md +60 -0
- package/get-shit-done/workflows/transition.md +147 -20
- package/get-shit-done/workflows/ui-phase.md +302 -0
- package/get-shit-done/workflows/ui-review.md +165 -0
- package/get-shit-done/workflows/update.md +108 -25
- package/get-shit-done/workflows/validate-phase.md +15 -8
- package/get-shit-done/workflows/verify-phase.md +16 -5
- package/get-shit-done/workflows/verify-work.md +72 -18
- package/package.json +1 -1
- package/skills/gsd-audit-milestone/SKILL.md +29 -0
- package/skills/gsd-cleanup/SKILL.md +19 -0
- package/skills/gsd-complete-milestone/SKILL.md +131 -0
- package/skills/gsd-discuss-phase/SKILL.md +54 -0
- package/skills/gsd-execute-phase/SKILL.md +49 -0
- package/skills/gsd-plan-phase/SKILL.md +37 -0
- package/skills/gsd-ui-phase/SKILL.md +24 -0
- package/skills/gsd-ui-review/SKILL.md +24 -0
- package/skills/gsd-verify-work/SKILL.md +30 -0
|
@@ -1,17 +1,26 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
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
|
-
</
|
|
3
|
+
</objective>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
6
6
|
read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
7
|
</required_reading>
|
|
8
8
|
|
|
9
|
+
<available_agent_types>
|
|
10
|
+
Valid GSD subagent types (use exact names — do not fall back to 'general'):
|
|
11
|
+
- gsd-project-researcher — Researches project-level technical decisions
|
|
12
|
+
- gsd-research-synthesizer — Synthesizes findings from parallel research agents
|
|
13
|
+
- gsd-roadmapper — Creates phased execution roadmaps
|
|
14
|
+
</available_agent_types>
|
|
15
|
+
|
|
9
16
|
<auto_mode>
|
|
17
|
+
|
|
10
18
|
## Auto Mode Detection
|
|
11
19
|
|
|
12
20
|
Check if `--auto` flag is present in $ARGUMENTS.
|
|
13
21
|
|
|
14
22
|
**If auto mode:**
|
|
23
|
+
|
|
15
24
|
- Skip brownfield mapping offer (assume greenfield)
|
|
16
25
|
- Skip deep questioning (extract context from provided document)
|
|
17
26
|
- Config: YOLO mode is implicit (skip that question), but ask granularity/git/agents FIRST (Step 2a)
|
|
@@ -23,6 +32,7 @@ Check if `--auto` flag is present in $ARGUMENTS.
|
|
|
23
32
|
|
|
24
33
|
**Document requirement:**
|
|
25
34
|
Auto mode requires an idea document — either:
|
|
35
|
+
|
|
26
36
|
- File reference: `/gsd-new-project --auto @prd.md`
|
|
27
37
|
- Pasted/written text in the prompt
|
|
28
38
|
|
|
@@ -37,6 +47,7 @@ Usage:
|
|
|
37
47
|
|
|
38
48
|
The document should describe what you want to build.
|
|
39
49
|
```
|
|
50
|
+
|
|
40
51
|
</auto_mode>
|
|
41
52
|
|
|
42
53
|
<process>
|
|
@@ -48,6 +59,9 @@ The document should describe what you want to build.
|
|
|
48
59
|
```bash
|
|
49
60
|
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init new-project)
|
|
50
61
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
62
|
+
AGENT_SKILLS_RESEARCHER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-project-researcher 2>/dev/null)
|
|
63
|
+
AGENT_SKILLS_SYNTHESIZER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-synthesizer 2>/dev/null)
|
|
64
|
+
AGENT_SKILLS_ROADMAPPER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-roadmapper 2>/dev/null)
|
|
51
65
|
```
|
|
52
66
|
|
|
53
67
|
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`.
|
|
@@ -55,6 +69,7 @@ Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `co
|
|
|
55
69
|
**If `project_exists` is true:** Error — project already initialized. Use `/gsd-progress`.
|
|
56
70
|
|
|
57
71
|
**If `has_git` is false:** Initialize git:
|
|
72
|
+
|
|
58
73
|
```bash
|
|
59
74
|
git init
|
|
60
75
|
```
|
|
@@ -66,6 +81,7 @@ git init
|
|
|
66
81
|
**If `needs_codebase_map` is true** (from init — existing code detected but no codebase map):
|
|
67
82
|
|
|
68
83
|
Use question:
|
|
84
|
+
|
|
69
85
|
- header: "Codebase"
|
|
70
86
|
- question: "I detected existing code in this directory. Would you like to map the codebase first?"
|
|
71
87
|
- options:
|
|
@@ -73,9 +89,11 @@ Use question:
|
|
|
73
89
|
- "Skip mapping" — Proceed with project initialization
|
|
74
90
|
|
|
75
91
|
**If "Map codebase first":**
|
|
92
|
+
|
|
76
93
|
```
|
|
77
94
|
Run `/gsd-map-codebase` first, then return to `/gsd-new-project`
|
|
78
95
|
```
|
|
96
|
+
|
|
79
97
|
Exit command.
|
|
80
98
|
|
|
81
99
|
**If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
|
|
@@ -159,29 +177,18 @@ question([
|
|
|
159
177
|
options: [
|
|
160
178
|
{ label: "Smart (Recommended)", description: "Two models: one for reseach and planing, other for execution and verification" },
|
|
161
179
|
{ label: "Simple", description: Description: "One model for all agents (not flexible)" },
|
|
162
|
-
{ label: "Genius (most flexible)", description: "Three models: different for every stage" }
|
|
180
|
+
{ label: "Genius (most flexible)", description: "Three models: different for every stage" },
|
|
181
|
+
{ label: "Inherit", description: "Use the current session model for all agents (OpenCode /model)" }
|
|
163
182
|
]
|
|
164
183
|
}
|
|
165
184
|
])
|
|
166
185
|
```
|
|
167
186
|
|
|
168
|
-
Create `.planning/config.json` with
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
"granularity": "[selected]",
|
|
174
|
-
"parallelization": true|false,
|
|
175
|
-
"commit_docs": true|false,
|
|
176
|
-
"model_profile": "simple|smart|genius",
|
|
177
|
-
"workflow": {
|
|
178
|
-
"research": true|false,
|
|
179
|
-
"plan_check": true|false,
|
|
180
|
-
"verifier": true|false,
|
|
181
|
-
"nyquist_validation": depth !== "quick",
|
|
182
|
-
"auto_advance": true
|
|
183
|
-
}
|
|
184
|
-
}
|
|
187
|
+
Create `.planning/config.json` with all settings (CLI fills in remaining defaults automatically):
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
mkdir -p .planning
|
|
191
|
+
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-new-project '{"mode":"yolo","granularity":"[selected]","parallelization":true|false,"commit_docs":true|false,"model_profile":"simple|smart|genius|inherit","workflow":{"research":true|false,"plan_check":true|false,"verifier":true|false,"nyquist_validation":true|false,"auto_advance":true}}'
|
|
185
192
|
```
|
|
186
193
|
|
|
187
194
|
**If commit_docs = No:** Add `.planning/` to `.gitignore`.
|
|
@@ -221,11 +228,20 @@ Ask inline (freeform, NOT question):
|
|
|
221
228
|
|
|
222
229
|
Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
|
|
223
230
|
|
|
231
|
+
**Research-before-questions mode:** Check if `workflow.research_before_questions` is enabled in `.planning/config.json` (or the config from init context). When enabled, before asking follow-up questions about a topic area:
|
|
232
|
+
|
|
233
|
+
1. Do a brief web search for best practices related to what the user described
|
|
234
|
+
2. Mention key findings naturally as you ask questions (e.g., "Most projects like this use X — is that what you're thinking, or something different?")
|
|
235
|
+
3. This makes questions more informed without changing the conversational flow
|
|
236
|
+
|
|
237
|
+
When disabled (default), ask questions directly as before.
|
|
238
|
+
|
|
224
239
|
**Follow the thread:**
|
|
225
240
|
|
|
226
241
|
Based on what they said, ask follow-up questions that dig into their response. Use question with options that probe what they mentioned — interpretations, clarifications, concrete examples.
|
|
227
242
|
|
|
228
243
|
Keep following threads. Each answer opens new threads to explore. Ask about:
|
|
244
|
+
|
|
229
245
|
- What excited them
|
|
230
246
|
- What problem sparked this
|
|
231
247
|
- What they mean by vague terms
|
|
@@ -233,6 +249,7 @@ Keep following threads. Each answer opens new threads to explore. Ask about:
|
|
|
233
249
|
- What's already decided
|
|
234
250
|
|
|
235
251
|
Consult `questioning.md` for techniques:
|
|
252
|
+
|
|
236
253
|
- Challenge vagueness
|
|
237
254
|
- Make abstract concrete
|
|
238
255
|
- Surface assumptions
|
|
@@ -334,6 +351,27 @@ Initialize with any decisions made during questioning:
|
|
|
334
351
|
*Last updated: [date] after initialization*
|
|
335
352
|
```
|
|
336
353
|
|
|
354
|
+
**Evolution section** (include at the end of PROJECT.md, before the footer):
|
|
355
|
+
|
|
356
|
+
```markdown
|
|
357
|
+
## Evolution
|
|
358
|
+
|
|
359
|
+
This document evolves at phase transitions and milestone boundaries.
|
|
360
|
+
|
|
361
|
+
**After each phase transition** (via `/gsd-transition`):
|
|
362
|
+
1. Requirements invalidated? → Move to Out of Scope with reason
|
|
363
|
+
2. Requirements validated? → Move to Validated with phase reference
|
|
364
|
+
3. New requirements emerged? → Add to Active
|
|
365
|
+
4. Decisions to log? → Add to Key Decisions
|
|
366
|
+
5. "What This Is" still accurate? → Update if drifted
|
|
367
|
+
|
|
368
|
+
**After each milestone** (via `/gsd-complete-milestone`):
|
|
369
|
+
1. Full review of all sections
|
|
370
|
+
2. Core Value check — still the right priority?
|
|
371
|
+
3. Audit Out of Scope — reasons still valid?
|
|
372
|
+
4. Update Context with current state
|
|
373
|
+
```
|
|
374
|
+
|
|
337
375
|
Do not compress. Capture everything gathered.
|
|
338
376
|
|
|
339
377
|
**Commit PROJECT.md:**
|
|
@@ -459,35 +497,29 @@ questions: [
|
|
|
459
497
|
options: [
|
|
460
498
|
{ label: "Smart (Recommended)", description: "Two models: one for reseach and planing, other for execution and verification" },
|
|
461
499
|
{ label: "Simple", description: Description: "One model for all agents (not flexible)" },
|
|
462
|
-
{ label: "Genius (most flexible)", description: "Three models: different for every stage" }
|
|
500
|
+
{ label: "Genius (most flexible)", description: "Three models: different for every stage" },
|
|
501
|
+
{ label: "Inherit", description: "Use the current session model for all agents (OpenCode /model)" }
|
|
463
502
|
]
|
|
464
503
|
}
|
|
465
504
|
]
|
|
466
505
|
```
|
|
467
506
|
|
|
468
|
-
Create `.planning/config.json` with all settings:
|
|
469
|
-
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
"granularity": "coarse|standard|fine",
|
|
474
|
-
"parallelization": true|false,
|
|
475
|
-
"commit_docs": true|false,
|
|
476
|
-
"model_profile": "simple|smart|genius",
|
|
477
|
-
"workflow": {
|
|
478
|
-
"research": true|false,
|
|
479
|
-
"plan_check": true|false,
|
|
480
|
-
"verifier": true|false,
|
|
481
|
-
"nyquist_validation": depth !== "quick"
|
|
482
|
-
}
|
|
483
|
-
}
|
|
507
|
+
Create `.planning/config.json` with all settings (CLI fills in remaining defaults automatically):
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
mkdir -p .planning
|
|
511
|
+
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-new-project '{"mode":"[yolo|interactive]","granularity":"[selected]","parallelization":true|false,"commit_docs":true|false,"model_profile":"simple|smart|genius|inherit","workflow":{"research":true|false,"plan_check":true|false,"verifier":true|false,"nyquist_validation":[false if granularity=coarse, true otherwise]}}'
|
|
484
512
|
```
|
|
485
513
|
|
|
514
|
+
**Note:** Run `/gsd-settings` anytime to update model profile, workflow agents, branching strategy, and other preferences.
|
|
515
|
+
|
|
486
516
|
**If commit_docs = No:**
|
|
517
|
+
|
|
487
518
|
- Set `commit_docs: false` in config.json
|
|
488
519
|
- Add `.planning/` to `.gitignore` (create if needed)
|
|
489
520
|
|
|
490
521
|
**If commit_docs = Yes:**
|
|
522
|
+
|
|
491
523
|
- No additional gitignore entries needed
|
|
492
524
|
|
|
493
525
|
**Commit config.json:**
|
|
@@ -496,7 +528,37 @@ Create `.planning/config.json` with all settings:
|
|
|
496
528
|
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "chore: add project config" --files .planning/config.json
|
|
497
529
|
```
|
|
498
530
|
|
|
499
|
-
|
|
531
|
+
## 5.1. Sub-Repo Detection
|
|
532
|
+
|
|
533
|
+
**Detect multi-repo workspace:**
|
|
534
|
+
|
|
535
|
+
Check for directories with their own `.git` folders (separate repos within the workspace):
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
find . -maxdepth 1 -type d -not -name ".*" -not -name "node_modules" -exec test -d "{}/.git" \; -print
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**If sub-repos found:**
|
|
542
|
+
|
|
543
|
+
Strip the `./` prefix to get directory names (e.g., `./backend` → `backend`).
|
|
544
|
+
|
|
545
|
+
Use question:
|
|
546
|
+
|
|
547
|
+
- header: "Multi-Repo Workspace"
|
|
548
|
+
- question: "I detected separate git repos in this workspace. Which directories contain code that GSD should commit to?"
|
|
549
|
+
- multiSelect: true
|
|
550
|
+
- options: one option per detected directory
|
|
551
|
+
- "[directory name]" — Separate git repo
|
|
552
|
+
|
|
553
|
+
**If user selects one or more directories:**
|
|
554
|
+
|
|
555
|
+
- Set `planning.sub_repos` in config.json to the selected directory names array (e.g., `["backend", "frontend"]`)
|
|
556
|
+
- Auto-set `planning.commit_docs` to `false` (planning docs stay local in multi-repo workspaces)
|
|
557
|
+
- Add `.planning/` to `.gitignore` if not already present
|
|
558
|
+
|
|
559
|
+
Config changes are saved locally — no commit needed since `commit_docs` is `false` in multi-repo mode.
|
|
560
|
+
|
|
561
|
+
**If no sub-repos found or user selects none:** Continue with no changes to config.
|
|
500
562
|
|
|
501
563
|
## 5.5. Resolve Model Profile
|
|
502
564
|
|
|
@@ -507,6 +569,7 @@ Use models from init: `researcher_model`, `synthesizer_model`, `roadmapper_model
|
|
|
507
569
|
**If auto mode:** Default to "Research first" without asking.
|
|
508
570
|
|
|
509
571
|
Use question:
|
|
572
|
+
|
|
510
573
|
- header: "Research"
|
|
511
574
|
- question: "Research the domain ecosystem before defining requirements?"
|
|
512
575
|
- options:
|
|
@@ -516,6 +579,7 @@ Use question:
|
|
|
516
579
|
**If "Research first":**
|
|
517
580
|
|
|
518
581
|
Display stage banner:
|
|
582
|
+
|
|
519
583
|
```
|
|
520
584
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
521
585
|
GSD ► RESEARCHING
|
|
@@ -525,6 +589,7 @@ Researching [domain] ecosystem...
|
|
|
525
589
|
```
|
|
526
590
|
|
|
527
591
|
Create research directory:
|
|
592
|
+
|
|
528
593
|
```bash
|
|
529
594
|
mkdir -p .planning/research
|
|
530
595
|
```
|
|
@@ -532,10 +597,12 @@ mkdir -p .planning/research
|
|
|
532
597
|
**Determine milestone context:**
|
|
533
598
|
|
|
534
599
|
Check if this is greenfield or subsequent milestone:
|
|
600
|
+
|
|
535
601
|
- If no "Validated" requirements in PROJECT.md → Greenfield (building from scratch)
|
|
536
602
|
- If "Validated" requirements exist → Subsequent milestone (adding to existing app)
|
|
537
603
|
|
|
538
604
|
Display spawning indicator:
|
|
605
|
+
|
|
539
606
|
```
|
|
540
607
|
◆ Spawning 4 researchers in parallel...
|
|
541
608
|
→ Stack research
|
|
@@ -566,6 +633,8 @@ What's the standard 2025 stack for [domain]?
|
|
|
566
633
|
- {project_path} (Project context and goals)
|
|
567
634
|
</files_to_read>
|
|
568
635
|
|
|
636
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
637
|
+
|
|
569
638
|
<downstream_consumer>
|
|
570
639
|
Your STACK.md feeds into roadmap creation. Be prescriptive:
|
|
571
640
|
- Specific libraries with versions
|
|
@@ -604,6 +673,8 @@ What features do [domain] products have? What's table stakes vs differentiating?
|
|
|
604
673
|
- {project_path} (Project context)
|
|
605
674
|
</files_to_read>
|
|
606
675
|
|
|
676
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
677
|
+
|
|
607
678
|
<downstream_consumer>
|
|
608
679
|
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
609
680
|
- Table stakes (must have or users leave)
|
|
@@ -642,6 +713,8 @@ How are [domain] systems typically structured? What are major components?
|
|
|
642
713
|
- {project_path} (Project context)
|
|
643
714
|
</files_to_read>
|
|
644
715
|
|
|
716
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
717
|
+
|
|
645
718
|
<downstream_consumer>
|
|
646
719
|
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
647
720
|
- Component boundaries (what talks to what)
|
|
@@ -680,6 +753,8 @@ What do [domain] projects commonly get wrong? Critical mistakes?
|
|
|
680
753
|
- {project_path} (Project context)
|
|
681
754
|
</files_to_read>
|
|
682
755
|
|
|
756
|
+
${AGENT_SKILLS_RESEARCHER}
|
|
757
|
+
|
|
683
758
|
<downstream_consumer>
|
|
684
759
|
Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
685
760
|
- Warning signs (how to detect early)
|
|
@@ -715,6 +790,8 @@ Synthesize research outputs into SUMMARY.md.
|
|
|
715
790
|
- .planning/research/PITFALLS.md
|
|
716
791
|
</files_to_read>
|
|
717
792
|
|
|
793
|
+
${AGENT_SKILLS_SYNTHESIZER}
|
|
794
|
+
|
|
718
795
|
<output>
|
|
719
796
|
write to: .planning/research/SUMMARY.md
|
|
720
797
|
Use template: $HOME/.config/opencode/get-shit-done/templates/research-project/SUMMARY.md
|
|
@@ -724,6 +801,7 @@ Commit after writing.
|
|
|
724
801
|
```
|
|
725
802
|
|
|
726
803
|
Display research complete banner and key findings:
|
|
804
|
+
|
|
727
805
|
```
|
|
728
806
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
729
807
|
GSD ► RESEARCH COMPLETE ✓
|
|
@@ -743,6 +821,7 @@ Files: `.planning/research/`
|
|
|
743
821
|
## 7. Define Requirements
|
|
744
822
|
|
|
745
823
|
Display stage banner:
|
|
824
|
+
|
|
746
825
|
```
|
|
747
826
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
748
827
|
GSD ► DEFINING REQUIREMENTS
|
|
@@ -752,6 +831,7 @@ Display stage banner:
|
|
|
752
831
|
**Load context:**
|
|
753
832
|
|
|
754
833
|
read PROJECT.md and extract:
|
|
834
|
+
|
|
755
835
|
- Core value (the ONE thing that must work)
|
|
756
836
|
- Stated constraints (budget, timeline, tech limitations)
|
|
757
837
|
- Any explicit scope boundaries
|
|
@@ -759,6 +839,7 @@ read PROJECT.md and extract:
|
|
|
759
839
|
**If research exists:** read research/FEATURES.md and extract feature categories.
|
|
760
840
|
|
|
761
841
|
**If auto mode:**
|
|
842
|
+
|
|
762
843
|
- Auto-include all table stakes features (users expect these)
|
|
763
844
|
- Include features explicitly mentioned in provided document
|
|
764
845
|
- Auto-defer differentiators not mentioned in document
|
|
@@ -797,6 +878,7 @@ Here are the features for [domain]:
|
|
|
797
878
|
Ask: "What are the main things users need to be able to do?"
|
|
798
879
|
|
|
799
880
|
For each capability mentioned:
|
|
881
|
+
|
|
800
882
|
- Ask clarifying questions to make it specific
|
|
801
883
|
- Probe for related capabilities
|
|
802
884
|
- Group into categories
|
|
@@ -815,6 +897,7 @@ For each category, use question:
|
|
|
815
897
|
- "None for v1" — Defer entire category
|
|
816
898
|
|
|
817
899
|
Track responses:
|
|
900
|
+
|
|
818
901
|
- Selected features → v1 requirements
|
|
819
902
|
- Unselected table stakes → v2 (users expect these)
|
|
820
903
|
- Unselected differentiators → out of scope
|
|
@@ -822,6 +905,7 @@ Track responses:
|
|
|
822
905
|
**Identify gaps:**
|
|
823
906
|
|
|
824
907
|
Use question:
|
|
908
|
+
|
|
825
909
|
- header: "Additions"
|
|
826
910
|
- question: "Any requirements research missed? (Features specific to your vision)"
|
|
827
911
|
- options:
|
|
@@ -835,6 +919,7 @@ Cross-check requirements against Core Value from PROJECT.md. If gaps detected, s
|
|
|
835
919
|
**Generate REQUIREMENTS.md:**
|
|
836
920
|
|
|
837
921
|
Create `.planning/REQUIREMENTS.md` with:
|
|
922
|
+
|
|
838
923
|
- v1 Requirements grouped by category (checkboxes, REQ-IDs)
|
|
839
924
|
- v2 Requirements (deferred)
|
|
840
925
|
- Out of Scope (explicit exclusions with reasoning)
|
|
@@ -845,12 +930,14 @@ Create `.planning/REQUIREMENTS.md` with:
|
|
|
845
930
|
**Requirement quality criteria:**
|
|
846
931
|
|
|
847
932
|
Good requirements are:
|
|
933
|
+
|
|
848
934
|
- **Specific and testable:** "User can reset password via email link" (not "Handle password reset")
|
|
849
935
|
- **User-centric:** "User can X" (not "System does Y")
|
|
850
936
|
- **Atomic:** One capability per requirement (not "User can login and manage profile")
|
|
851
937
|
- **Independent:** Minimal dependencies on other requirements
|
|
852
938
|
|
|
853
939
|
Reject vague requirements. Push for specificity:
|
|
940
|
+
|
|
854
941
|
- "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
|
|
855
942
|
- "Support sharing" → "User can share post via link that opens in recipient's browser"
|
|
856
943
|
|
|
@@ -888,6 +975,7 @@ node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "docs: defi
|
|
|
888
975
|
## 8. Create Roadmap
|
|
889
976
|
|
|
890
977
|
Display stage banner:
|
|
978
|
+
|
|
891
979
|
```
|
|
892
980
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
893
981
|
GSD ► CREATING ROADMAP
|
|
@@ -909,6 +997,8 @@ task(prompt="
|
|
|
909
997
|
- .planning/config.json (Granularity and mode settings)
|
|
910
998
|
</files_to_read>
|
|
911
999
|
|
|
1000
|
+
${AGENT_SKILLS_ROADMAPPER}
|
|
1001
|
+
|
|
912
1002
|
</planning_context>
|
|
913
1003
|
|
|
914
1004
|
<instructions>
|
|
@@ -928,6 +1018,7 @@ write files first, then return. This ensures artifacts persist even if context i
|
|
|
928
1018
|
**Handle roadmapper return:**
|
|
929
1019
|
|
|
930
1020
|
**If `## ROADMAP BLOCKED`:**
|
|
1021
|
+
|
|
931
1022
|
- Present blocker information
|
|
932
1023
|
- Work with user to resolve
|
|
933
1024
|
- Re-spawn when resolved
|
|
@@ -977,6 +1068,7 @@ Success criteria:
|
|
|
977
1068
|
**CRITICAL: Ask for approval before committing (interactive mode only):**
|
|
978
1069
|
|
|
979
1070
|
Use question:
|
|
1071
|
+
|
|
980
1072
|
- header: "Roadmap"
|
|
981
1073
|
- question: "Does this roadmap structure work for you?"
|
|
982
1074
|
- options:
|
|
@@ -987,8 +1079,10 @@ Use question:
|
|
|
987
1079
|
**If "Approve":** Continue to commit.
|
|
988
1080
|
|
|
989
1081
|
**If "Adjust phases":**
|
|
1082
|
+
|
|
990
1083
|
- Get user's adjustment notes
|
|
991
1084
|
- Re-spawn roadmapper with revision context:
|
|
1085
|
+
|
|
992
1086
|
```
|
|
993
1087
|
task(prompt="
|
|
994
1088
|
<revision>
|
|
@@ -999,20 +1093,31 @@ Use question:
|
|
|
999
1093
|
- .planning/ROADMAP.md (Current roadmap to revise)
|
|
1000
1094
|
</files_to_read>
|
|
1001
1095
|
|
|
1096
|
+
${AGENT_SKILLS_ROADMAPPER}
|
|
1097
|
+
|
|
1002
1098
|
Update the roadmap based on feedback. edit files in place.
|
|
1003
1099
|
Return ROADMAP REVISED with changes made.
|
|
1004
1100
|
</revision>
|
|
1005
1101
|
", subagent_type="gsd-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
|
|
1006
1102
|
```
|
|
1103
|
+
|
|
1007
1104
|
- Present revised roadmap
|
|
1008
1105
|
- Loop until user approves
|
|
1009
1106
|
|
|
1010
1107
|
**If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
|
|
1011
1108
|
|
|
1109
|
+
**Generate or refresh project AGENTS.md before final commit:**
|
|
1110
|
+
|
|
1111
|
+
```bash
|
|
1112
|
+
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" generate-OpenCode-md
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
This ensures new projects get the default GSD workflow-enforcement guidance and current project context in `AGENTS.md`.
|
|
1116
|
+
|
|
1012
1117
|
**Commit roadmap (after approval or auto mode):**
|
|
1013
1118
|
|
|
1014
1119
|
```bash
|
|
1015
|
-
node "$HOME/.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
|
|
1120
|
+
node "$HOME/.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 AGENTS.md
|
|
1016
1121
|
```
|
|
1017
1122
|
|
|
1018
1123
|
## 9. Done
|
|
@@ -1033,6 +1138,7 @@ Present completion summary:
|
|
|
1033
1138
|
| Research | `.planning/research/` |
|
|
1034
1139
|
| Requirements | `.planning/REQUIREMENTS.md` |
|
|
1035
1140
|
| Roadmap | `.planning/ROADMAP.md` |
|
|
1141
|
+
| Project guide | `AGENTS.md` |
|
|
1036
1142
|
|
|
1037
1143
|
**[N] phases** | **[X] requirements** | Ready to build ✓
|
|
1038
1144
|
```
|
|
@@ -1049,6 +1155,37 @@ Exit skill and invoke command("/gsd-discuss-phase 1 --auto")
|
|
|
1049
1155
|
|
|
1050
1156
|
**If interactive mode:**
|
|
1051
1157
|
|
|
1158
|
+
Check if Phase 1 has UI indicators (look for `**UI hint**: yes` in Phase 1 detail section of ROADMAP.md):
|
|
1159
|
+
|
|
1160
|
+
```bash
|
|
1161
|
+
PHASE1_SECTION=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase 1 2>/dev/null)
|
|
1162
|
+
PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true" || echo "false")
|
|
1163
|
+
```
|
|
1164
|
+
|
|
1165
|
+
**If Phase 1 has UI (`PHASE1_HAS_UI` is `true`):**
|
|
1166
|
+
|
|
1167
|
+
```
|
|
1168
|
+
───────────────────────────────────────────────────────────────
|
|
1169
|
+
|
|
1170
|
+
## ▶ Next Up
|
|
1171
|
+
|
|
1172
|
+
**Phase 1: [Phase Name]** — [Goal from ROADMAP.md]
|
|
1173
|
+
|
|
1174
|
+
/gsd-discuss-phase 1 — gather context and clarify approach
|
|
1175
|
+
|
|
1176
|
+
*/new first → fresh context window*
|
|
1177
|
+
|
|
1178
|
+
---
|
|
1179
|
+
|
|
1180
|
+
**Also available:**
|
|
1181
|
+
- /gsd-ui-phase 1 — generate UI design contract (recommended for frontend phases)
|
|
1182
|
+
- /gsd-plan-phase 1 — skip discussion, plan directly
|
|
1183
|
+
|
|
1184
|
+
───────────────────────────────────────────────────────────────
|
|
1185
|
+
```
|
|
1186
|
+
|
|
1187
|
+
**If Phase 1 has no UI:**
|
|
1188
|
+
|
|
1052
1189
|
```
|
|
1053
1190
|
───────────────────────────────────────────────────────────────
|
|
1054
1191
|
|
|
@@ -1083,6 +1220,7 @@ Exit skill and invoke command("/gsd-discuss-phase 1 --auto")
|
|
|
1083
1220
|
- `.planning/REQUIREMENTS.md`
|
|
1084
1221
|
- `.planning/ROADMAP.md`
|
|
1085
1222
|
- `.planning/STATE.md`
|
|
1223
|
+
- `AGENTS.md`
|
|
1086
1224
|
|
|
1087
1225
|
</output>
|
|
1088
1226
|
|
|
@@ -1104,6 +1242,7 @@ Exit skill and invoke command("/gsd-discuss-phase 1 --auto")
|
|
|
1104
1242
|
- [ ] ROADMAP.md created with phases, requirement mappings, success criteria
|
|
1105
1243
|
- [ ] STATE.md initialized
|
|
1106
1244
|
- [ ] REQUIREMENTS.md traceability updated
|
|
1245
|
+
- [ ] AGENTS.md generated with GSD workflow guidance
|
|
1107
1246
|
- [ ] User knows next step is `/gsd-discuss-phase 1`
|
|
1108
1247
|
|
|
1109
1248
|
**Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.
|