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,6 +1,6 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Display the complete GSD command reference. Output ONLY the reference content. Do NOT add project-specific analysis, git status, next-step suggestions, or any commentary beyond the reference.
|
|
3
|
-
</
|
|
3
|
+
</objective>
|
|
4
4
|
|
|
5
5
|
<reference>
|
|
6
6
|
# GSD Command Reference
|
|
@@ -66,8 +66,11 @@ Help articulate your vision for a phase before planning.
|
|
|
66
66
|
- Captures how you imagine this phase working
|
|
67
67
|
- Creates CONTEXT.md with your vision, essentials, and boundaries
|
|
68
68
|
- Use when you have ideas about how something should look/feel
|
|
69
|
+
- Optional `--batch` asks 2-5 related questions at a time instead of one-by-one
|
|
69
70
|
|
|
70
71
|
Usage: `/gsd-discuss-phase 2`
|
|
72
|
+
Usage: `/gsd-discuss-phase 2 --batch`
|
|
73
|
+
Usage: `/gsd-discuss-phase 2 --batch=3`
|
|
71
74
|
|
|
72
75
|
**`/gsd-research-phase <number>`**
|
|
73
76
|
Comprehensive ecosystem research for niche/complex domains.
|
|
@@ -104,30 +107,67 @@ Result: Creates `.planning/phases/01-foundation/01-01-PLAN.md`
|
|
|
104
107
|
### Execution
|
|
105
108
|
|
|
106
109
|
**`/gsd-execute-phase <phase-number>`**
|
|
107
|
-
Execute all plans in a phase.
|
|
110
|
+
Execute all plans in a phase, or run a specific wave.
|
|
108
111
|
|
|
109
112
|
- Groups plans by wave (from frontmatter), executes waves sequentially
|
|
110
113
|
- Plans within each wave run in parallel via task tool
|
|
114
|
+
- Optional `--wave N` flag executes only Wave `N` and stops unless the phase is now fully complete
|
|
111
115
|
- Verifies phase goal after all plans complete
|
|
112
116
|
- Updates REQUIREMENTS.md, ROADMAP.md, STATE.md
|
|
113
117
|
|
|
114
118
|
Usage: `/gsd-execute-phase 5`
|
|
119
|
+
Usage: `/gsd-execute-phase 5 --wave 2`
|
|
120
|
+
|
|
121
|
+
### Smart Router
|
|
122
|
+
|
|
123
|
+
**`/gsd-do <description>`**
|
|
124
|
+
Route freeform text to the right GSD command automatically.
|
|
125
|
+
|
|
126
|
+
- Analyzes natural language input to find the best matching GSD command
|
|
127
|
+
- Acts as a dispatcher — never does the work itself
|
|
128
|
+
- Resolves ambiguity by asking you to pick between top matches
|
|
129
|
+
- Use when you know what you want but don't know which `/gsd-*` command to run
|
|
130
|
+
|
|
131
|
+
Usage: `/gsd-do fix the login button`
|
|
132
|
+
Usage: `/gsd-do refactor the auth system`
|
|
133
|
+
Usage: `/gsd-do I want to start a new milestone`
|
|
115
134
|
|
|
116
135
|
### Quick Mode
|
|
117
136
|
|
|
118
|
-
**`/gsd-quick`**
|
|
137
|
+
**`/gsd-quick [--full] [--discuss] [--research]`**
|
|
119
138
|
Execute small, ad-hoc tasks with GSD guarantees but skip optional agents.
|
|
120
139
|
|
|
121
140
|
Quick mode uses the same system with a shorter path:
|
|
122
|
-
- Spawns planner + executor (skips researcher, checker, verifier)
|
|
141
|
+
- Spawns planner + executor (skips researcher, checker, verifier by default)
|
|
123
142
|
- Quick tasks live in `.planning/quick/` separate from planned phases
|
|
124
143
|
- Updates STATE.md tracking (not ROADMAP.md)
|
|
125
144
|
|
|
126
|
-
|
|
145
|
+
Flags enable additional quality steps:
|
|
146
|
+
- `--discuss` — Lightweight discussion to surface gray areas before planning
|
|
147
|
+
- `--research` — Focused research agent investigates approaches before planning
|
|
148
|
+
- `--full` — Adds plan-checking (max 2 iterations) and post-execution verification
|
|
149
|
+
|
|
150
|
+
Flags are composable: `--discuss --research --full` gives the complete quality pipeline for a single task.
|
|
127
151
|
|
|
128
152
|
Usage: `/gsd-quick`
|
|
153
|
+
Usage: `/gsd-quick --research --full`
|
|
129
154
|
Result: Creates `.planning/quick/NNN-slug/PLAN.md`, `.planning/quick/NNN-slug/SUMMARY.md`
|
|
130
155
|
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
**`/gsd-fast [description]`**
|
|
159
|
+
Execute a trivial task inline — no subagents, no planning files, no overhead.
|
|
160
|
+
|
|
161
|
+
For tasks too small to justify planning: typo fixes, config changes, forgotten commits, simple additions. Runs in the current context, makes the change, commits, and logs to STATE.md.
|
|
162
|
+
|
|
163
|
+
- No PLAN.md or SUMMARY.md created
|
|
164
|
+
- No subagent spawned (runs inline)
|
|
165
|
+
- ≤ 3 file edits — redirects to `/gsd-quick` if task is non-trivial
|
|
166
|
+
- Atomic commit with conventional message
|
|
167
|
+
|
|
168
|
+
Usage: `/gsd-fast "fix the typo in README"`
|
|
169
|
+
Usage: `/gsd-fast "add .env to gitignore"`
|
|
170
|
+
|
|
131
171
|
### Roadmap Management
|
|
132
172
|
|
|
133
173
|
**`/gsd-add-phase <description>`**
|
|
@@ -169,10 +209,12 @@ Start a new milestone through unified flow.
|
|
|
169
209
|
- Optional domain research (spawns 4 parallel researcher agents)
|
|
170
210
|
- Requirements definition with scoping
|
|
171
211
|
- Roadmap creation with phase breakdown
|
|
212
|
+
- Optional `--reset-phase-numbers` flag restarts numbering at Phase 1 and archives old phase dirs first for safety
|
|
172
213
|
|
|
173
214
|
Mirrors `/gsd-new-project` flow for brownfield projects (existing PROJECT.md).
|
|
174
215
|
|
|
175
216
|
Usage: `/gsd-new-milestone "v2.0 Features"`
|
|
217
|
+
Usage: `/gsd-new-milestone --reset-phase-numbers "v2.0 Features"`
|
|
176
218
|
|
|
177
219
|
**`/gsd-complete-milestone <version>`**
|
|
178
220
|
Archive completed milestone and prepare for next version.
|
|
@@ -232,6 +274,21 @@ Systematic debugging with persistent state across context resets.
|
|
|
232
274
|
Usage: `/gsd-debug "login button doesn't work"`
|
|
233
275
|
Usage: `/gsd-debug` (resume active session)
|
|
234
276
|
|
|
277
|
+
### Quick Notes
|
|
278
|
+
|
|
279
|
+
**`/gsd-note <text>`**
|
|
280
|
+
Zero-friction idea capture — one command, instant save, no questions.
|
|
281
|
+
|
|
282
|
+
- Saves timestamped note to `.planning/notes/` (or `$HOME/.config/opencode/notes/` globally)
|
|
283
|
+
- Three subcommands: append (default), list, promote
|
|
284
|
+
- Promote converts a note into a structured todo
|
|
285
|
+
- Works without a project (falls back to global scope)
|
|
286
|
+
|
|
287
|
+
Usage: `/gsd-note refactor the hook system`
|
|
288
|
+
Usage: `/gsd-note list`
|
|
289
|
+
Usage: `/gsd-note promote 3`
|
|
290
|
+
Usage: `/gsd-note --global cross-project idea`
|
|
291
|
+
|
|
235
292
|
### Todo Management
|
|
236
293
|
|
|
237
294
|
**`/gsd-add-todo [description]`**
|
|
@@ -270,6 +327,65 @@ Validate built features through conversational UAT.
|
|
|
270
327
|
|
|
271
328
|
Usage: `/gsd-verify-work 3`
|
|
272
329
|
|
|
330
|
+
### Ship Work
|
|
331
|
+
|
|
332
|
+
**`/gsd-ship [phase]`**
|
|
333
|
+
Create a PR from completed phase work with an auto-generated body.
|
|
334
|
+
|
|
335
|
+
- Pushes branch to remote
|
|
336
|
+
- Creates PR with summary from SUMMARY.md, VERIFICATION.md, REQUIREMENTS.md
|
|
337
|
+
- Optionally requests code review
|
|
338
|
+
- Updates STATE.md with shipping status
|
|
339
|
+
|
|
340
|
+
Prerequisites: Phase verified, `gh` CLI installed and authenticated.
|
|
341
|
+
|
|
342
|
+
Usage: `/gsd-ship 4` or `/gsd-ship 4 --draft`
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
**`/gsd-review --phase N [--gemini] [--OpenCode] [--codex] [--all]`**
|
|
347
|
+
Cross-AI peer review — invoke external AI CLIs to independently review phase plans.
|
|
348
|
+
|
|
349
|
+
- Detects available CLIs (gemini, OpenCode, codex)
|
|
350
|
+
- Each CLI reviews plans independently with the same structured prompt
|
|
351
|
+
- Produces REVIEWS.md with per-reviewer feedback and consensus summary
|
|
352
|
+
- Feed reviews back into planning: `/gsd-plan-phase N --reviews`
|
|
353
|
+
|
|
354
|
+
Usage: `/gsd-review --phase 3 --all`
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
**`/gsd-pr-branch [target]`**
|
|
359
|
+
Create a clean branch for pull requests by filtering out .planning/ commits.
|
|
360
|
+
|
|
361
|
+
- Classifies commits: code-only (include), planning-only (exclude), mixed (include sans .planning/)
|
|
362
|
+
- Cherry-picks code commits onto a clean branch
|
|
363
|
+
- Reviewers see only code changes, no GSD artifacts
|
|
364
|
+
|
|
365
|
+
Usage: `/gsd-pr-branch` or `/gsd-pr-branch main`
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
**`/gsd-plant-seed [idea]`**
|
|
370
|
+
Capture a forward-looking idea with trigger conditions for automatic surfacing.
|
|
371
|
+
|
|
372
|
+
- Seeds preserve WHY, WHEN to surface, and breadcrumbs to related code
|
|
373
|
+
- Auto-surfaces during `/gsd-new-milestone` when trigger conditions match
|
|
374
|
+
- Better than deferred items — triggers are checked, not forgotten
|
|
375
|
+
|
|
376
|
+
Usage: `/gsd-plant-seed "add real-time notifications when we build the events system"`
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
**`/gsd-audit-uat`**
|
|
381
|
+
Cross-phase audit of all outstanding UAT and verification items.
|
|
382
|
+
- Scans every phase for pending, skipped, blocked, and human_needed items
|
|
383
|
+
- Cross-references against codebase to detect stale documentation
|
|
384
|
+
- Produces prioritized human test plan grouped by testability
|
|
385
|
+
- Use before starting a new milestone to clear verification debt
|
|
386
|
+
|
|
387
|
+
Usage: `/gsd-audit-uat`
|
|
388
|
+
|
|
273
389
|
### Milestone Auditing
|
|
274
390
|
|
|
275
391
|
**`/gsd-audit-milestone [version]`**
|
|
@@ -298,7 +414,7 @@ Usage: `/gsd-plan-milestone-gaps`
|
|
|
298
414
|
Configure workflow toggles and model profile interactively.
|
|
299
415
|
|
|
300
416
|
- Toggle researcher, plan checker, verifier agents
|
|
301
|
-
- Select model profile (simple/smart/genius)
|
|
417
|
+
- Select model profile (simple/smart/genius/inherit)
|
|
302
418
|
- Updates `.planning/config.json`
|
|
303
419
|
|
|
304
420
|
Usage: `/gsd-settings`
|
|
@@ -309,6 +425,7 @@ Quick switch model profile for GSD agents.
|
|
|
309
425
|
- `quality` — Opus everywhere except verification
|
|
310
426
|
- `balanced` — Opus for planning, Sonnet for execution (default)
|
|
311
427
|
- `budget` — Sonnet for writing, Haiku for research/verification
|
|
428
|
+
- `inherit` — Use current session model for all agents (OpenCode `/model`)
|
|
312
429
|
|
|
313
430
|
Usage: `/gsd-set-profile budget`
|
|
314
431
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Insert a decimal phase for urgent work discovered mid-milestone between existing integer phases. Uses decimal numbering (72.1, 72.2, etc.) to preserve the logical sequence of planned phases while accommodating urgent insertions without renumbering the entire roadmap.
|
|
3
|
-
</
|
|
3
|
+
</objective>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
6
6
|
read all files referenced by the invoking prompt's execution_context before starting.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Surface OpenCode's assumptions about a phase before planning, enabling users to correct misconceptions early.
|
|
3
3
|
|
|
4
4
|
Key difference from discuss-phase: This is ANALYSIS of what OpenCode thinks, not INTAKE of what user knows. No file output - purely conversational to prompt discussion.
|
|
5
|
-
</
|
|
5
|
+
</objective>
|
|
6
6
|
|
|
7
7
|
<process>
|
|
8
8
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<objective>
|
|
2
|
+
List all GSD workspaces found in ~/gsd-workspaces/ with their status.
|
|
3
|
+
</objective>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
## 1. Setup
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init list-workspaces)
|
|
15
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Parse JSON for: `workspace_base`, `workspaces`, `workspace_count`.
|
|
19
|
+
|
|
20
|
+
## 2. Display
|
|
21
|
+
|
|
22
|
+
**If `workspace_count` is 0:**
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
No workspaces found in ~/gsd-workspaces/
|
|
26
|
+
|
|
27
|
+
Create one with:
|
|
28
|
+
/gsd-new-workspace --name my-workspace --repos repo1,repo2
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Done.
|
|
32
|
+
|
|
33
|
+
**If workspaces exist:**
|
|
34
|
+
|
|
35
|
+
Display a table:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
GSD Workspaces (~/gsd-workspaces/)
|
|
39
|
+
|
|
40
|
+
| Name | Repos | Strategy | GSD Project |
|
|
41
|
+
|------|-------|----------|-------------|
|
|
42
|
+
| feature-a | 3 | worktree | Yes |
|
|
43
|
+
| feature-b | 2 | clone | No |
|
|
44
|
+
|
|
45
|
+
Manage:
|
|
46
|
+
cd ~/gsd-workspaces/<name> # Enter a workspace
|
|
47
|
+
/gsd-remove-workspace <name> # Remove a workspace
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For each workspace, show:
|
|
51
|
+
- **Name** — directory name
|
|
52
|
+
- **Repos** — count from init data
|
|
53
|
+
- **Strategy** — from WORKSPACE.md
|
|
54
|
+
- **GSD Project** — whether `.planning/PROJECT.md` exists (Yes/No)
|
|
55
|
+
|
|
56
|
+
</process>
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
<objective>
|
|
2
|
+
|
|
3
|
+
Interactive command center for managing a milestone from a single terminal. Shows a dashboard of all phases with visual status, dispatches discuss inline and plan/execute as background agents, and loops back to the dashboard after each action. Enables parallel phase work from one terminal.
|
|
4
|
+
|
|
5
|
+
</objective>
|
|
6
|
+
|
|
7
|
+
<required_reading>
|
|
8
|
+
|
|
9
|
+
read all files referenced by the invoking prompt's execution_context before starting.
|
|
10
|
+
|
|
11
|
+
</required_reading>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
<step name="initialize" priority="first">
|
|
16
|
+
|
|
17
|
+
## 1. Initialize
|
|
18
|
+
|
|
19
|
+
Bootstrap via manager init:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init manager)
|
|
23
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Parse JSON for: `milestone_version`, `milestone_name`, `phase_count`, `completed_count`, `in_progress_count`, `phases`, `recommended_actions`, `all_complete`, `waiting_signal`.
|
|
27
|
+
|
|
28
|
+
**If error:** Display the error message and exit.
|
|
29
|
+
|
|
30
|
+
Display startup banner:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
34
|
+
GSD ► MANAGER
|
|
35
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
+
|
|
37
|
+
{milestone_version} — {milestone_name}
|
|
38
|
+
{phase_count} phases · {completed_count} complete
|
|
39
|
+
|
|
40
|
+
✓ Discuss → inline ◆ Plan/Execute → background
|
|
41
|
+
Dashboard auto-refreshes when background work is active.
|
|
42
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Proceed to dashboard step.
|
|
46
|
+
|
|
47
|
+
</step>
|
|
48
|
+
|
|
49
|
+
<step name="dashboard">
|
|
50
|
+
|
|
51
|
+
## 2. Dashboard (Refresh Point)
|
|
52
|
+
|
|
53
|
+
**Every time this step is reached**, re-read state from disk to pick up changes from background agents:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init manager)
|
|
57
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Parse the full JSON. Build the dashboard display.
|
|
61
|
+
|
|
62
|
+
Build dashboard from JSON. Symbols: `✓` done, `◆` active, `○` pending, `·` queued. Progress bar: 20-char `█░`.
|
|
63
|
+
|
|
64
|
+
**Status mapping** (disk_status → D P E Status):
|
|
65
|
+
|
|
66
|
+
- `complete` → `✓ ✓ ✓` `✓ Complete`
|
|
67
|
+
- `partial` → `✓ ✓ ◆` `◆ Executing...`
|
|
68
|
+
- `planned` → `✓ ✓ ○` `○ Ready to execute`
|
|
69
|
+
- `discussed` → `✓ ○ ·` `○ Ready to plan`
|
|
70
|
+
- `researched` → `◆ · ·` `○ Ready to plan`
|
|
71
|
+
- `empty`/`no_directory` + `is_next_to_discuss` → `○ · ·` `○ Ready to discuss`
|
|
72
|
+
- `empty`/`no_directory` otherwise → `· · ·` `· Up next`
|
|
73
|
+
- If `is_active`, replace status icon with `◆` and append `(active)`
|
|
74
|
+
|
|
75
|
+
If any `is_active` phases, show: `◆ Background: {action} Phase {N}, ...` above grid.
|
|
76
|
+
|
|
77
|
+
Use `display_name` (not `name`) for the Phase column — it's pre-truncated to 20 chars with `…` if clipped. Pad all phase names to the same width for alignment.
|
|
78
|
+
|
|
79
|
+
Use `deps_display` from init JSON for the Deps column — shows which phases this phase depends on (e.g. `1,3`) or `—` for none.
|
|
80
|
+
|
|
81
|
+
Example output:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
85
|
+
GSD ► DASHBOARD
|
|
86
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
87
|
+
████████████░░░░░░░░ 60% (3/5 phases)
|
|
88
|
+
◆ Background: Planning Phase 4
|
|
89
|
+
| # | Phase | Deps | D | P | E | Status |
|
|
90
|
+
|---|----------------------|------|---|---|---|---------------------|
|
|
91
|
+
| 1 | Foundation | — | ✓ | ✓ | ✓ | ✓ Complete |
|
|
92
|
+
| 2 | API Layer | 1 | ✓ | ✓ | ◆ | ◆ Executing (active)|
|
|
93
|
+
| 3 | Auth System | 1 | ✓ | ✓ | ○ | ○ Ready to execute |
|
|
94
|
+
| 4 | Dashboard UI & Set… | 1,2 | ✓ | ◆ | · | ◆ Planning (active) |
|
|
95
|
+
| 5 | Notifications | — | ○ | · | · | ○ Ready to discuss |
|
|
96
|
+
| 6 | Polish & Final Mail… | 1-5 | · | · | · | · Up next |
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Recommendations section:**
|
|
100
|
+
|
|
101
|
+
If `all_complete` is true:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
105
|
+
║ MILESTONE COMPLETE ║
|
|
106
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
107
|
+
|
|
108
|
+
All {phase_count} phases done. Ready for final steps:
|
|
109
|
+
→ /gsd-verify-work — run acceptance testing
|
|
110
|
+
→ /gsd-complete-milestone — archive and wrap up
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Ask user via question:
|
|
114
|
+
- **question:** "All phases complete. What next?"
|
|
115
|
+
- **options:** "Verify work" / "Complete milestone" / "Exit manager"
|
|
116
|
+
|
|
117
|
+
Handle responses:
|
|
118
|
+
- "Verify work": `skill(skill="gsd-verify-work")` then loop to dashboard.
|
|
119
|
+
- "Complete milestone": `skill(skill="gsd-complete-milestone")` then exit.
|
|
120
|
+
- "Exit manager": Go to exit step.
|
|
121
|
+
|
|
122
|
+
**If NOT all_complete**, build compound options from `recommended_actions`:
|
|
123
|
+
|
|
124
|
+
**Compound option logic:** Group background actions (plan/execute) together, and pair them with the single inline action (discuss) when one exists. The goal is to present the fewest options possible — one option can dispatch multiple background agents plus one inline action.
|
|
125
|
+
|
|
126
|
+
**Building options:**
|
|
127
|
+
|
|
128
|
+
1. Collect all background actions (execute and plan recommendations) — there can be multiple of each.
|
|
129
|
+
2. Collect the inline action (discuss recommendation, if any — there will be at most one since discuss is sequential).
|
|
130
|
+
3. Build compound options:
|
|
131
|
+
|
|
132
|
+
**If there are ANY recommended actions (background, inline, or both):**
|
|
133
|
+
Create ONE primary "Continue" option that dispatches ALL of them together:
|
|
134
|
+
- Label: `"Continue"` — always this exact word
|
|
135
|
+
- Below the label, list every action that will happen. Enumerate ALL recommended actions — do not cap or truncate:
|
|
136
|
+
```
|
|
137
|
+
Continue:
|
|
138
|
+
→ Execute Phase 32 (background)
|
|
139
|
+
→ Plan Phase 34 (background)
|
|
140
|
+
→ Discuss Phase 35 (inline)
|
|
141
|
+
```
|
|
142
|
+
- This dispatches all background agents first, then runs the inline discuss (if any).
|
|
143
|
+
- If there is no inline discuss, the dashboard refreshes after spawning background agents.
|
|
144
|
+
|
|
145
|
+
**Important:** The Continue option must include EVERY action from `recommended_actions` — not just 2. If there are 3 actions, list 3. If there are 5, list 5.
|
|
146
|
+
|
|
147
|
+
4. Always add:
|
|
148
|
+
- `"Refresh dashboard"`
|
|
149
|
+
- `"Exit manager"`
|
|
150
|
+
|
|
151
|
+
Display recommendations compactly:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
───────────────────────────────────────────────────────────────
|
|
155
|
+
▶ Next Steps
|
|
156
|
+
───────────────────────────────────────────────────────────────
|
|
157
|
+
|
|
158
|
+
Continue:
|
|
159
|
+
→ Execute Phase 32 (background)
|
|
160
|
+
→ Plan Phase 34 (background)
|
|
161
|
+
→ Discuss Phase 35 (inline)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Auto-refresh:** If background agents are running (`is_active` is true for any phase), set a 60-second auto-refresh cycle. After presenting the action menu, if no user input is received within 60 seconds, automatically refresh the dashboard. This interval is configurable via `manager_refresh_interval` in GSD config (default: 60 seconds, set to 0 to disable).
|
|
165
|
+
|
|
166
|
+
Present via question:
|
|
167
|
+
- **question:** "What would you like to do?"
|
|
168
|
+
- **options:** (compound options as built above + refresh + exit, question auto-adds "Other")
|
|
169
|
+
|
|
170
|
+
**On "Other" (free text):** Parse intent — if it mentions a phase number and action, dispatch accordingly. If unclear, display available actions and loop to action_menu.
|
|
171
|
+
|
|
172
|
+
Proceed to handle_action step with the selected action.
|
|
173
|
+
|
|
174
|
+
</step>
|
|
175
|
+
|
|
176
|
+
<step name="handle_action">
|
|
177
|
+
|
|
178
|
+
## 4. Handle Action
|
|
179
|
+
|
|
180
|
+
### Refresh Dashboard
|
|
181
|
+
|
|
182
|
+
Loop back to dashboard step.
|
|
183
|
+
|
|
184
|
+
### Exit Manager
|
|
185
|
+
|
|
186
|
+
Go to exit step.
|
|
187
|
+
|
|
188
|
+
### Compound Action (background + inline)
|
|
189
|
+
|
|
190
|
+
When the user selects a compound option:
|
|
191
|
+
|
|
192
|
+
1. **Spawn all background agents first** (plan/execute) — dispatch them in parallel using the Plan Phase N / Execute Phase N handlers below.
|
|
193
|
+
2. **Then run the inline discuss:**
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
skill(skill="gsd-discuss-phase", args="{PHASE_NUM}")
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
After discuss completes, loop back to dashboard step (background agents continue running).
|
|
200
|
+
|
|
201
|
+
### Discuss Phase N
|
|
202
|
+
|
|
203
|
+
Discussion is interactive — needs user input. Run inline:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
skill(skill="gsd-discuss-phase", args="{PHASE_NUM}")
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
After discuss completes, loop back to dashboard step.
|
|
210
|
+
|
|
211
|
+
### Plan Phase N
|
|
212
|
+
|
|
213
|
+
Planning runs autonomously. Spawn a background agent:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
task(
|
|
217
|
+
description="Plan phase {N}: {phase_name}",
|
|
218
|
+
run_in_background=true,
|
|
219
|
+
prompt="You are running the GSD plan-phase workflow for phase {N} of the project.
|
|
220
|
+
|
|
221
|
+
Working directory: {cwd}
|
|
222
|
+
Phase: {N} — {phase_name}
|
|
223
|
+
Goal: {goal}
|
|
224
|
+
|
|
225
|
+
Steps:
|
|
226
|
+
1. read the plan-phase workflow: cat $HOME/.config/opencode/get-shit-done/workflows/plan-phase.md
|
|
227
|
+
2. Run: node \"$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs\" init plan-phase {N}
|
|
228
|
+
3. Follow the workflow steps to produce PLAN.md files for this phase.
|
|
229
|
+
4. If research is enabled in config, run the research step first.
|
|
230
|
+
5. Spawn a gsd-planner subagent via task() to create the plans.
|
|
231
|
+
6. If plan-checker is enabled, spawn a gsd-plan-checker subagent to verify.
|
|
232
|
+
7. Commit plan files when complete.
|
|
233
|
+
|
|
234
|
+
Important: You are running in the background. Do NOT use question — make autonomous decisions based on project context. If you hit a blocker, write it to STATE.md as a blocker and stop. Do NOT silently work around permission or file access errors — let them fail so the manager can surface them with resolution hints."
|
|
235
|
+
)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Display:
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
◆ Spawning planner for Phase {N}: {phase_name}...
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Loop back to dashboard step.
|
|
245
|
+
|
|
246
|
+
### Execute Phase N
|
|
247
|
+
|
|
248
|
+
Execution runs autonomously. Spawn a background agent:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
task(
|
|
252
|
+
description="Execute phase {N}: {phase_name}",
|
|
253
|
+
run_in_background=true,
|
|
254
|
+
prompt="You are running the GSD execute-phase workflow for phase {N} of the project.
|
|
255
|
+
|
|
256
|
+
Working directory: {cwd}
|
|
257
|
+
Phase: {N} — {phase_name}
|
|
258
|
+
Goal: {goal}
|
|
259
|
+
|
|
260
|
+
Steps:
|
|
261
|
+
1. read the execute-phase workflow: cat $HOME/.config/opencode/get-shit-done/workflows/execute-phase.md
|
|
262
|
+
2. Run: node \"$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs\" init execute-phase {N}
|
|
263
|
+
3. Follow the workflow steps: discover plans, analyze dependencies, group into waves.
|
|
264
|
+
4. For each wave, spawn gsd-executor subagents via task() to execute plans in parallel.
|
|
265
|
+
5. After all waves complete, spawn a gsd-verifier subagent if verifier is enabled.
|
|
266
|
+
6. Update ROADMAP.md and STATE.md with progress.
|
|
267
|
+
7. Commit all changes.
|
|
268
|
+
|
|
269
|
+
Important: You are running in the background. Do NOT use question — make autonomous decisions. Use --no-verify on git commits. If you hit a permission error, file lock, or any access issue, do NOT work around it — let it fail and write the error to STATE.md as a blocker so the manager can surface it with resolution guidance."
|
|
270
|
+
)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Display:
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
◆ Spawning executor for Phase {N}: {phase_name}...
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Loop back to dashboard step.
|
|
280
|
+
|
|
281
|
+
</step>
|
|
282
|
+
|
|
283
|
+
<step name="background_completion">
|
|
284
|
+
|
|
285
|
+
## 5. Background Agent Completion
|
|
286
|
+
|
|
287
|
+
When notified that a background agent completed:
|
|
288
|
+
|
|
289
|
+
1. read the result message from the agent.
|
|
290
|
+
2. Display a brief notification:
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
✓ {description}
|
|
294
|
+
{brief summary from agent result}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
3. Loop back to dashboard step.
|
|
298
|
+
|
|
299
|
+
**If the agent reported an error or blocker:**
|
|
300
|
+
|
|
301
|
+
Classify the error:
|
|
302
|
+
|
|
303
|
+
**Permission / tool access error** (e.g. tool not allowed, permission denied, sandbox restriction):
|
|
304
|
+
- Parse the error to identify which tool or command was blocked.
|
|
305
|
+
- Display the error clearly, then offer to fix it:
|
|
306
|
+
- **question:** "Phase {N} failed — permission denied for `{tool_or_command}`. Want me to add it to settings.local.json so it's allowed?"
|
|
307
|
+
- **options:** "Add permission and retry" / "Run this phase inline instead" / "Skip and continue"
|
|
308
|
+
- "Add permission and retry": Use `skill(skill="update-config")` to add the permission to `settings.local.json`, then re-spawn the background agent. Loop to dashboard.
|
|
309
|
+
- "Run this phase inline instead": Dispatch the same action (plan/execute) inline via `skill()` instead of a background task. Loop to dashboard after.
|
|
310
|
+
- "Skip and continue": Loop to dashboard (phase stays in current state).
|
|
311
|
+
|
|
312
|
+
**Other errors** (git lock, file conflict, logic error, etc.):
|
|
313
|
+
- Display the error, then offer options via question:
|
|
314
|
+
- **question:** "Background agent for Phase {N} encountered an issue: {error}. What next?"
|
|
315
|
+
- **options:** "Retry" / "Run inline instead" / "Skip and continue" / "View details"
|
|
316
|
+
- "Retry": Re-spawn the same background agent. Loop to dashboard.
|
|
317
|
+
- "Run inline instead": Dispatch the action inline via `skill()`. Loop to dashboard after.
|
|
318
|
+
- "Skip and continue": Loop to dashboard (phase stays in current state).
|
|
319
|
+
- "View details": read STATE.md blockers section, display, then re-present options.
|
|
320
|
+
|
|
321
|
+
</step>
|
|
322
|
+
|
|
323
|
+
<step name="exit">
|
|
324
|
+
|
|
325
|
+
## 6. Exit
|
|
326
|
+
|
|
327
|
+
Display final status with progress bar:
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
331
|
+
GSD ► SESSION END
|
|
332
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
333
|
+
|
|
334
|
+
{milestone_version} — {milestone_name}
|
|
335
|
+
{PROGRESS_BAR} {progress_pct}% ({completed_count}/{phase_count} phases)
|
|
336
|
+
|
|
337
|
+
Resume anytime: /gsd-manager
|
|
338
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
**Note:** Any background agents still running will continue to completion. Their results will be visible on next `/gsd-manager` or `/gsd-progress` invocation.
|
|
342
|
+
|
|
343
|
+
</step>
|
|
344
|
+
|
|
345
|
+
</process>
|
|
346
|
+
|
|
347
|
+
<success_criteria>
|
|
348
|
+
- [ ] Dashboard displays all phases with correct status indicators (D/P/E/V columns)
|
|
349
|
+
- [ ] Progress bar shows accurate completion percentage
|
|
350
|
+
- [ ] Dependency resolution: blocked phases show which deps are missing
|
|
351
|
+
- [ ] Recommendations prioritize: execute > plan > discuss
|
|
352
|
+
- [ ] Discuss phases run inline via skill() — interactive questions work
|
|
353
|
+
- [ ] Plan phases spawn background task agents — return to dashboard immediately
|
|
354
|
+
- [ ] Execute phases spawn background task agents — return to dashboard immediately
|
|
355
|
+
- [ ] Dashboard refreshes pick up changes from background agents via disk state
|
|
356
|
+
- [ ] Background agent completion triggers notification and dashboard refresh
|
|
357
|
+
- [ ] Background agent errors present retry/skip options
|
|
358
|
+
- [ ] All-complete state offers verify-work and complete-milestone
|
|
359
|
+
- [ ] Exit shows final status with resume instructions
|
|
360
|
+
- [ ] "Other" free-text input parsed for phase number and action
|
|
361
|
+
- [ ] Manager loop continues until user exits or milestone completes
|
|
362
|
+
</success_criteria>
|