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,11 +1,16 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Audit Nyquist validation gaps for a completed phase. Generate missing tests. Update VALIDATION.md.
|
|
3
|
-
</
|
|
3
|
+
</objective>
|
|
4
4
|
|
|
5
5
|
<required_reading>
|
|
6
6
|
@$HOME/.config/opencode/get-shit-done/references/ui-brand.md
|
|
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-nyquist-auditor — Validates verification coverage
|
|
12
|
+
</available_agent_types>
|
|
13
|
+
|
|
9
14
|
<process>
|
|
10
15
|
|
|
11
16
|
## 0. Initialize
|
|
@@ -13,13 +18,14 @@ Audit Nyquist validation gaps for a completed phase. Generate missing tests. Upd
|
|
|
13
18
|
```bash
|
|
14
19
|
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init phase-op "${PHASE_ARG}")
|
|
15
20
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
21
|
+
AGENT_SKILLS_AUDITOR=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-nyquist-auditor 2>/dev/null)
|
|
16
22
|
```
|
|
17
23
|
|
|
18
24
|
Parse: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`.
|
|
19
25
|
|
|
20
26
|
```bash
|
|
21
27
|
AUDITOR_MODEL=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" resolve-model gsd-nyquist-auditor --raw)
|
|
22
|
-
NYQUIST_CFG=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config
|
|
28
|
+
NYQUIST_CFG=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-get workflow.nyquist_validation --raw)
|
|
23
29
|
```
|
|
24
30
|
|
|
25
31
|
If `NYQUIST_CFG` is `false`: exit with "Nyquist validation is disabled. Enable via /gsd-settings."
|
|
@@ -35,7 +41,7 @@ SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
|
|
|
35
41
|
|
|
36
42
|
- **State A** (`VALIDATION_FILE` non-empty): Audit existing
|
|
37
43
|
- **State B** (`VALIDATION_FILE` empty, `SUMMARY_FILES` non-empty): Reconstruct from artifacts
|
|
38
|
-
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} first."
|
|
44
|
+
- **State C** (`SUMMARY_FILES` empty): Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} ${GSD_WS} first."
|
|
39
45
|
|
|
40
46
|
## 2. Discovery
|
|
41
47
|
|
|
@@ -90,7 +96,8 @@ task(
|
|
|
90
96
|
"<files_to_read>{PLAN, SUMMARY, impl files, VALIDATION.md}</files_to_read>" +
|
|
91
97
|
"<gaps>{gap list}</gaps>" +
|
|
92
98
|
"<test_infrastructure>{framework, config, commands}</test_infrastructure>" +
|
|
93
|
-
"<constraints>Never modify impl files. Max 3 debug iterations. Escalate impl bugs.</constraints>"
|
|
99
|
+
"<constraints>Never modify impl files. Max 3 debug iterations. Escalate impl bugs.</constraints>" +
|
|
100
|
+
"${AGENT_SKILLS_AUDITOR}",
|
|
94
101
|
subagent_type="gsd-nyquist-auditor",
|
|
95
102
|
model="{AUDITOR_MODEL}",
|
|
96
103
|
description="Fill validation gaps for Phase {N}"
|
|
@@ -128,7 +135,7 @@ Handle return:
|
|
|
128
135
|
git add {test_files}
|
|
129
136
|
git commit -m "test(phase-${PHASE}): add Nyquist validation tests"
|
|
130
137
|
|
|
131
|
-
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit
|
|
138
|
+
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "docs(phase-${PHASE}): add/update validation strategy"
|
|
132
139
|
```
|
|
133
140
|
|
|
134
141
|
## 8. Results + Routing
|
|
@@ -137,14 +144,14 @@ node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit-docs "docs(
|
|
|
137
144
|
```
|
|
138
145
|
GSD > PHASE {N} IS NYQUIST-COMPLIANT
|
|
139
146
|
All requirements have automated verification.
|
|
140
|
-
▶ Next: /gsd-audit-milestone
|
|
147
|
+
▶ Next: /gsd-audit-milestone ${GSD_WS}
|
|
141
148
|
```
|
|
142
149
|
|
|
143
150
|
**Partial:**
|
|
144
151
|
```
|
|
145
152
|
GSD > PHASE {N} VALIDATED (PARTIAL)
|
|
146
153
|
{M} automated, {K} manual-only.
|
|
147
|
-
▶ Retry: /gsd-validate-phase {N}
|
|
154
|
+
▶ Retry: /gsd-validate-phase {N} ${GSD_WS}
|
|
148
155
|
```
|
|
149
156
|
|
|
150
157
|
Display `/new` reminder.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Verify phase goal achievement through goal-backward analysis. Check that the codebase delivers what the phase promised, not just that tasks completed.
|
|
3
3
|
|
|
4
4
|
Executed by a verification subagent spawned from execute-phase.md.
|
|
5
|
-
</
|
|
5
|
+
</objective>
|
|
6
6
|
|
|
7
7
|
<core_principle>
|
|
8
8
|
**task completion ≠ Goal achievement**
|
|
@@ -37,8 +37,8 @@ Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `has_plans`,
|
|
|
37
37
|
Then load phase details and list plans/summaries:
|
|
38
38
|
```bash
|
|
39
39
|
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${phase_number}"
|
|
40
|
-
grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null
|
|
41
|
-
ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null
|
|
40
|
+
grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
41
|
+
ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null || true
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Extract **phase goal** from ROADMAP.md (the outcome to verify, not tasks) and **requirements** from REQUIREMENTS.md if it exists.
|
|
@@ -126,6 +126,17 @@ WIRED = imported AND used. ORPHANED = exists but not imported/used.
|
|
|
126
126
|
| ✓ | ✓ | ✗ | ⚠️ ORPHANED |
|
|
127
127
|
| ✓ | ✗ | - | ✗ STUB |
|
|
128
128
|
| ✗ | - | - | ✗ MISSING |
|
|
129
|
+
|
|
130
|
+
**Export-level spot check (WARNING severity):**
|
|
131
|
+
|
|
132
|
+
For artifacts that pass Level 3, spot-check individual exports:
|
|
133
|
+
- Extract key exported symbols (functions, constants, classes — skip types/interfaces)
|
|
134
|
+
- For each, grep for usage outside the defining file
|
|
135
|
+
- Flag exports with zero external call sites as "exported but unused"
|
|
136
|
+
|
|
137
|
+
This catches dead stores like `setPlan()` that exist in a wired file but are
|
|
138
|
+
never actually called. Report as WARNING — may indicate incomplete cross-plan
|
|
139
|
+
wiring or leftover code from plan revisions.
|
|
129
140
|
</step>
|
|
130
141
|
|
|
131
142
|
<step name="verify_wiring">
|
|
@@ -160,7 +171,7 @@ Record status and evidence for each key link.
|
|
|
160
171
|
<step name="verify_requirements">
|
|
161
172
|
If REQUIREMENTS.md exists:
|
|
162
173
|
```bash
|
|
163
|
-
grep -E "Phase ${PHASE_NUM}" .planning/REQUIREMENTS.md 2>/dev/null
|
|
174
|
+
grep -E "Phase ${PHASE_NUM}" .planning/REQUIREMENTS.md 2>/dev/null || true
|
|
164
175
|
```
|
|
165
176
|
|
|
166
177
|
For each requirement: parse description → identify supporting truths/artifacts → status: ✓ SATISFIED / ✗ BLOCKED / ? NEEDS HUMAN.
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Validate built features through conversational testing with persistent state. Creates UAT.md that tracks test progress, survives /new, and feeds gaps into /gsd-plan-phase --gaps.
|
|
3
3
|
|
|
4
4
|
User tests, OpenCode records. One test at a time. Plain text responses.
|
|
5
|
-
</
|
|
5
|
+
</objective>
|
|
6
|
+
|
|
7
|
+
<available_agent_types>
|
|
8
|
+
Valid GSD subagent types (use exact names — do not fall back to 'general'):
|
|
9
|
+
- gsd-planner — Creates detailed plans from phase scope
|
|
10
|
+
- gsd-plan-checker — Reviews plan quality before execution
|
|
11
|
+
</available_agent_types>
|
|
6
12
|
|
|
7
13
|
<philosophy>
|
|
8
14
|
**Show expected, ask if reality matches.**
|
|
@@ -26,16 +32,18 @@ If $ARGUMENTS contains a phase number, load context:
|
|
|
26
32
|
```bash
|
|
27
33
|
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init verify-work "${PHASE_ARG}")
|
|
28
34
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
35
|
+
AGENT_SKILLS_PLANNER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-planner 2>/dev/null)
|
|
36
|
+
AGENT_SKILLS_CHECKER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-checker 2>/dev/null)
|
|
29
37
|
```
|
|
30
38
|
|
|
31
|
-
Parse JSON for: `planner_model`, `checker_model`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `has_verification`.
|
|
39
|
+
Parse JSON for: `planner_model`, `checker_model`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `has_verification`, `uat_path`.
|
|
32
40
|
</step>
|
|
33
41
|
|
|
34
42
|
<step name="check_active_session">
|
|
35
43
|
**First: Check for active UAT sessions**
|
|
36
44
|
|
|
37
45
|
```bash
|
|
38
|
-
find .planning/phases -name "*-UAT.md" -type f 2>/dev/null | head -5
|
|
46
|
+
(find .planning/phases -name "*-UAT.md" -type f 2>/dev/null || true) | head -5
|
|
39
47
|
```
|
|
40
48
|
|
|
41
49
|
**If active sessions exist AND no $ARGUMENTS provided:**
|
|
@@ -84,7 +92,7 @@ Continue to `create_uat_file`.
|
|
|
84
92
|
Use `phase_dir` from init (or run init if not already done).
|
|
85
93
|
|
|
86
94
|
```bash
|
|
87
|
-
ls "$phase_dir"/*-SUMMARY.md 2>/dev/null
|
|
95
|
+
ls "$phase_dir"/*-SUMMARY.md 2>/dev/null || true
|
|
88
96
|
```
|
|
89
97
|
|
|
90
98
|
read each SUMMARY.md to extract testable deliverables.
|
|
@@ -186,23 +194,23 @@ Proceed to `present_test`.
|
|
|
186
194
|
<step name="present_test">
|
|
187
195
|
**Present current test to user:**
|
|
188
196
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
Display using checkpoint box format:
|
|
197
|
+
Render the checkpoint from the structured UAT file instead of composing it freehand:
|
|
192
198
|
|
|
199
|
+
```bash
|
|
200
|
+
CHECKPOINT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" uat render-checkpoint --file "$uat_path" --raw)
|
|
201
|
+
if [[ "$CHECKPOINT" == @file:* ]]; then CHECKPOINT=$(cat "${CHECKPOINT#@file:}"); fi
|
|
193
202
|
```
|
|
194
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
195
|
-
║ CHECKPOINT: Verification Required ║
|
|
196
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
197
203
|
|
|
198
|
-
|
|
204
|
+
Display the returned checkpoint EXACTLY as-is:
|
|
199
205
|
|
|
200
|
-
{expected}
|
|
201
|
-
|
|
202
|
-
──────────────────────────────────────────────────────────────
|
|
203
|
-
→ Type "pass" or describe what's wrong
|
|
204
|
-
──────────────────────────────────────────────────────────────
|
|
205
206
|
```
|
|
207
|
+
{CHECKPOINT}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Critical response hygiene:**
|
|
211
|
+
- Your entire response MUST equal `{CHECKPOINT}` byte-for-byte.
|
|
212
|
+
- Do NOT add commentary before or after the block.
|
|
213
|
+
- If you notice protocol/meta markers such as `to=all:`, role-routing text, XML system tags, hidden instruction markers, ad copy, or any unrelated suffix, discard the draft and output `{CHECKPOINT}` only.
|
|
206
214
|
|
|
207
215
|
Wait for user response (plain text, no question).
|
|
208
216
|
</step>
|
|
@@ -231,6 +239,29 @@ result: skipped
|
|
|
231
239
|
reason: [user's reason if provided]
|
|
232
240
|
```
|
|
233
241
|
|
|
242
|
+
**If response indicates blocked:**
|
|
243
|
+
- "blocked", "can't test - server not running", "need physical device", "need release build"
|
|
244
|
+
- Or any response containing: "server", "blocked", "not running", "physical device", "release build"
|
|
245
|
+
|
|
246
|
+
Infer blocked_by tag from response:
|
|
247
|
+
- Contains: server, not running, gateway, API → `server`
|
|
248
|
+
- Contains: physical, device, hardware, real phone → `physical-device`
|
|
249
|
+
- Contains: release, preview, build, EAS → `release-build`
|
|
250
|
+
- Contains: stripe, twilio, third-party, configure → `third-party`
|
|
251
|
+
- Contains: depends on, prior phase, prerequisite → `prior-phase`
|
|
252
|
+
- Default: `other`
|
|
253
|
+
|
|
254
|
+
Update Tests section:
|
|
255
|
+
```
|
|
256
|
+
### {N}. {name}
|
|
257
|
+
expected: {expected}
|
|
258
|
+
result: blocked
|
|
259
|
+
blocked_by: {inferred tag}
|
|
260
|
+
reason: "{verbatim user response}"
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Note: Blocked tests do NOT go into the Gaps section (they aren't code issues — they're prerequisite gates).
|
|
264
|
+
|
|
234
265
|
**If response is anything else:**
|
|
235
266
|
- Treat as issue description
|
|
236
267
|
|
|
@@ -293,8 +324,24 @@ Proceed to `present_test`.
|
|
|
293
324
|
<step name="complete_session">
|
|
294
325
|
**Complete testing and commit:**
|
|
295
326
|
|
|
327
|
+
**Determine final status:**
|
|
328
|
+
|
|
329
|
+
Count results:
|
|
330
|
+
- `pending_count`: tests with `result: [pending]`
|
|
331
|
+
- `blocked_count`: tests with `result: blocked`
|
|
332
|
+
- `skipped_no_reason`: tests with `result: skipped` and no `reason` field
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
if pending_count > 0 OR blocked_count > 0 OR skipped_no_reason > 0:
|
|
336
|
+
status: partial
|
|
337
|
+
# Session ended but not all tests resolved
|
|
338
|
+
else:
|
|
339
|
+
status: complete
|
|
340
|
+
# All tests have a definitive result (pass, issue, or skipped-with-reason)
|
|
341
|
+
```
|
|
342
|
+
|
|
296
343
|
Update frontmatter:
|
|
297
|
-
- status:
|
|
344
|
+
- status: {computed status}
|
|
298
345
|
- updated: [now]
|
|
299
346
|
|
|
300
347
|
Clear Current Test section:
|
|
@@ -333,6 +380,7 @@ All tests passed. Ready to continue.
|
|
|
333
380
|
|
|
334
381
|
- `/gsd-plan-phase {next}` — Plan next phase
|
|
335
382
|
- `/gsd-execute-phase {next}` — Execute next phase
|
|
383
|
+
- `/gsd-ui-review {phase}` — visual quality audit (if frontend files were modified)
|
|
336
384
|
```
|
|
337
385
|
</step>
|
|
338
386
|
|
|
@@ -385,6 +433,8 @@ task(
|
|
|
385
433
|
- .planning/ROADMAP.md (Roadmap)
|
|
386
434
|
</files_to_read>
|
|
387
435
|
|
|
436
|
+
${AGENT_SKILLS_PLANNER}
|
|
437
|
+
|
|
388
438
|
</planning_context>
|
|
389
439
|
|
|
390
440
|
<downstream_consumer>
|
|
@@ -431,6 +481,8 @@ task(
|
|
|
431
481
|
- {phase_dir}/*-PLAN.md (Plans to verify)
|
|
432
482
|
</files_to_read>
|
|
433
483
|
|
|
484
|
+
${AGENT_SKILLS_CHECKER}
|
|
485
|
+
|
|
434
486
|
</verification_context>
|
|
435
487
|
|
|
436
488
|
<expected_output>
|
|
@@ -471,6 +523,8 @@ task(
|
|
|
471
523
|
- {phase_dir}/*-PLAN.md (Existing plans)
|
|
472
524
|
</files_to_read>
|
|
473
525
|
|
|
526
|
+
${AGENT_SKILLS_PLANNER}
|
|
527
|
+
|
|
474
528
|
**Checker issues:**
|
|
475
529
|
{structured_issues_from_checker}
|
|
476
530
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-audit-milestone
|
|
3
|
+
description: Implementation of gsd-audit-milestone command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Verify milestone achieved its definition of done. Check requirements coverage, cross-phase integration, and end-to-end flows.
|
|
8
|
+
|
|
9
|
+
**This command IS the orchestrator.** Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring.
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<execution_context>
|
|
13
|
+
@$HOME/.config/opencode/get-shit-done/workflows/audit-milestone.md
|
|
14
|
+
</execution_context>
|
|
15
|
+
|
|
16
|
+
<context>
|
|
17
|
+
Version: $ARGUMENTS (optional — defaults to current milestone)
|
|
18
|
+
|
|
19
|
+
Core planning files are resolved in-workflow (`init milestone-op`) and loaded only as needed.
|
|
20
|
+
|
|
21
|
+
**Completed Work:**
|
|
22
|
+
glob: .planning/phases/*/*-SUMMARY.md
|
|
23
|
+
glob: .planning/phases/*/*-VERIFICATION.md
|
|
24
|
+
</context>
|
|
25
|
+
|
|
26
|
+
<process>
|
|
27
|
+
Execute the audit-milestone workflow from @$HOME/.config/opencode/get-shit-done/workflows/audit-milestone.md end-to-end.
|
|
28
|
+
Preserve all workflow gates (scope determination, verification reading, integration check, requirements coverage, routing).
|
|
29
|
+
</process>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cleanup
|
|
3
|
+
description: Implementation of gsd-cleanup command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Archive phase directories from completed milestones into `.planning/milestones/v{X.Y}-phases/`.
|
|
8
|
+
|
|
9
|
+
Use when `.planning/phases/` has accumulated directories from past milestones.
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<execution_context>
|
|
13
|
+
@$HOME/.config/opencode/get-shit-done/workflows/cleanup.md
|
|
14
|
+
</execution_context>
|
|
15
|
+
|
|
16
|
+
<process>
|
|
17
|
+
Follow the cleanup workflow at @$HOME/.config/opencode/get-shit-done/workflows/cleanup.md.
|
|
18
|
+
Identify completed milestones, show a dry-run summary, and archive on confirmation.
|
|
19
|
+
</process>
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-complete-milestone
|
|
3
|
+
description: Implementation of gsd-complete-milestone command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Mark milestone {{version}} complete, archive to milestones/, and update ROADMAP.md and REQUIREMENTS.md.
|
|
9
|
+
|
|
10
|
+
Purpose: Create historical record of shipped version, archive milestone artifacts (roadmap + requirements), and prepare for next milestone.
|
|
11
|
+
Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tagged.
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
**Load these files NOW (before proceeding):**
|
|
16
|
+
|
|
17
|
+
- @$HOME/.config/opencode/get-shit-done/workflows/complete-milestone.md (main workflow)
|
|
18
|
+
- @$HOME/.config/opencode/get-shit-done/templates/milestone-archive.md (archive template)
|
|
19
|
+
</execution_context>
|
|
20
|
+
|
|
21
|
+
<context>
|
|
22
|
+
**Project files:**
|
|
23
|
+
- `.planning/ROADMAP.md`
|
|
24
|
+
- `.planning/REQUIREMENTS.md`
|
|
25
|
+
- `.planning/STATE.md`
|
|
26
|
+
- `.planning/PROJECT.md`
|
|
27
|
+
|
|
28
|
+
**User input:**
|
|
29
|
+
|
|
30
|
+
- Version: {{version}} (e.g., "1.0", "1.1", "2.0")
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
|
|
35
|
+
**Follow complete-milestone.md workflow:**
|
|
36
|
+
|
|
37
|
+
0. **Check for audit:**
|
|
38
|
+
|
|
39
|
+
- Look for `.planning/v{{version}}-MILESTONE-AUDIT.md`
|
|
40
|
+
- If missing or stale: recommend `/gsd-audit-milestone` first
|
|
41
|
+
- If audit status is `gaps_found`: recommend `/gsd-plan-milestone-gaps` first
|
|
42
|
+
- If audit status is `passed`: proceed to step 1
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
## Pre-flight Check
|
|
46
|
+
|
|
47
|
+
{If no v{{version}}-MILESTONE-AUDIT.md:}
|
|
48
|
+
⚠ No milestone audit found. Run `/gsd-audit-milestone` first to verify
|
|
49
|
+
requirements coverage, cross-phase integration, and E2E flows.
|
|
50
|
+
|
|
51
|
+
{If audit has gaps:}
|
|
52
|
+
⚠ Milestone audit found gaps. Run `/gsd-plan-milestone-gaps` to create
|
|
53
|
+
phases that close the gaps, or proceed anyway to accept as tech debt.
|
|
54
|
+
|
|
55
|
+
{If audit passed:}
|
|
56
|
+
✓ Milestone audit passed. Proceeding with completion.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
1. **Verify readiness:**
|
|
60
|
+
|
|
61
|
+
- Check all phases in milestone have completed plans (SUMMARY.md exists)
|
|
62
|
+
- Present milestone scope and stats
|
|
63
|
+
- Wait for confirmation
|
|
64
|
+
|
|
65
|
+
2. **Gather stats:**
|
|
66
|
+
|
|
67
|
+
- Count phases, plans, tasks
|
|
68
|
+
- Calculate git range, file changes, LOC
|
|
69
|
+
- Extract timeline from git log
|
|
70
|
+
- Present summary, confirm
|
|
71
|
+
|
|
72
|
+
3. **Extract accomplishments:**
|
|
73
|
+
|
|
74
|
+
- read all phase SUMMARY.md files in milestone range
|
|
75
|
+
- Extract 4-6 key accomplishments
|
|
76
|
+
- Present for approval
|
|
77
|
+
|
|
78
|
+
4. **Archive milestone:**
|
|
79
|
+
|
|
80
|
+
- Create `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
81
|
+
- Extract full phase details from ROADMAP.md
|
|
82
|
+
- Fill milestone-archive.md template
|
|
83
|
+
- Update ROADMAP.md to one-line summary with link
|
|
84
|
+
|
|
85
|
+
5. **Archive requirements:**
|
|
86
|
+
|
|
87
|
+
- Create `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
88
|
+
- Mark all v1 requirements as complete (checkboxes checked)
|
|
89
|
+
- Note requirement outcomes (validated, adjusted, dropped)
|
|
90
|
+
- Delete `.planning/REQUIREMENTS.md` (fresh one created for next milestone)
|
|
91
|
+
|
|
92
|
+
6. **Update PROJECT.md:**
|
|
93
|
+
|
|
94
|
+
- Add "Current State" section with shipped version
|
|
95
|
+
- Add "Next Milestone Goals" section
|
|
96
|
+
- Archive previous content in `<details>` (if v1.1+)
|
|
97
|
+
|
|
98
|
+
7. **Commit and tag:**
|
|
99
|
+
|
|
100
|
+
- Stage: MILESTONES.md, PROJECT.md, ROADMAP.md, STATE.md, archive files
|
|
101
|
+
- Commit: `chore: archive v{{version}} milestone`
|
|
102
|
+
- Tag: `git tag -a v{{version}} -m "[milestone summary]"`
|
|
103
|
+
- Ask about pushing tag
|
|
104
|
+
|
|
105
|
+
8. **Offer next steps:**
|
|
106
|
+
- `/gsd-new-milestone` — start next milestone (questioning → research → requirements → roadmap)
|
|
107
|
+
|
|
108
|
+
</process>
|
|
109
|
+
|
|
110
|
+
<success_criteria>
|
|
111
|
+
|
|
112
|
+
- Milestone archived to `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
113
|
+
- Requirements archived to `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
114
|
+
- `.planning/REQUIREMENTS.md` deleted (fresh for next milestone)
|
|
115
|
+
- ROADMAP.md collapsed to one-line entry
|
|
116
|
+
- PROJECT.md updated with current state
|
|
117
|
+
- Git tag v{{version}} created
|
|
118
|
+
- Commit successful
|
|
119
|
+
- User knows next steps (including need for fresh requirements)
|
|
120
|
+
</success_criteria>
|
|
121
|
+
|
|
122
|
+
<critical_rules>
|
|
123
|
+
|
|
124
|
+
- **Load workflow first:** read complete-milestone.md before executing
|
|
125
|
+
- **Verify completion:** All phases must have SUMMARY.md files
|
|
126
|
+
- **User confirmation:** Wait for approval at verification gates
|
|
127
|
+
- **Archive before deleting:** Always create archive files before updating/deleting originals
|
|
128
|
+
- **One-line summary:** Collapsed milestone in ROADMAP.md should be single line with link
|
|
129
|
+
- **Context efficiency:** Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone
|
|
130
|
+
- **Fresh requirements:** Next milestone starts with `/gsd-new-milestone` which includes requirements definition
|
|
131
|
+
</critical_rules>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-discuss-phase
|
|
3
|
+
description: Implementation of gsd-discuss-phase command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Extract implementation decisions that downstream agents need — researcher and planner will use CONTEXT.md to know what to investigate and what choices are locked.
|
|
9
|
+
|
|
10
|
+
**How it works:**
|
|
11
|
+
1. Load prior context (PROJECT.md, REQUIREMENTS.md, STATE.md, prior CONTEXT.md files)
|
|
12
|
+
2. Scout codebase for reusable assets and patterns
|
|
13
|
+
3. Analyze phase — skip gray areas already decided in prior phases
|
|
14
|
+
4. Present remaining gray areas — user selects which to discuss
|
|
15
|
+
5. Deep-dive each selected area until satisfied
|
|
16
|
+
6. Create CONTEXT.md with decisions that guide research and planning
|
|
17
|
+
|
|
18
|
+
**Output:** `{phase_num}-CONTEXT.md` — decisions clear enough that downstream agents can act without asking the user again
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@$HOME/.config/opencode/get-shit-done/workflows/discuss-phase.md
|
|
23
|
+
@$HOME/.config/opencode/get-shit-done/workflows/discuss-phase-assumptions.md
|
|
24
|
+
@$HOME/.config/opencode/get-shit-done/templates/context.md
|
|
25
|
+
</execution_context>
|
|
26
|
+
|
|
27
|
+
<context>
|
|
28
|
+
Phase number: $ARGUMENTS (required)
|
|
29
|
+
|
|
30
|
+
Context files are resolved in-workflow using `init phase-op` and roadmap/state tool calls.
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
**Mode routing:**
|
|
35
|
+
```bash
|
|
36
|
+
DISCUSS_MODE=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-get workflow.discuss_mode 2>/dev/null || echo "discuss")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
If `DISCUSS_MODE` is `"assumptions"`: read and execute @$HOME/.config/opencode/get-shit-done/workflows/discuss-phase-assumptions.md end-to-end.
|
|
40
|
+
|
|
41
|
+
If `DISCUSS_MODE` is `"discuss"` (or unset, or any other value): read and execute @$HOME/.config/opencode/get-shit-done/workflows/discuss-phase.md end-to-end.
|
|
42
|
+
|
|
43
|
+
**MANDATORY:** The execution_context files listed above ARE the instructions. read the workflow file BEFORE taking any action. The objective and success_criteria sections in this command file are summaries — the workflow file contains the complete step-by-step process with all required behaviors, config checks, and interaction patterns. Do not improvise from the summary.
|
|
44
|
+
</process>
|
|
45
|
+
|
|
46
|
+
<success_criteria>
|
|
47
|
+
- Prior context loaded and applied (no re-asking decided questions)
|
|
48
|
+
- Gray areas identified through intelligent analysis
|
|
49
|
+
- User chose which areas to discuss
|
|
50
|
+
- Each selected area explored until satisfied
|
|
51
|
+
- Scope creep redirected to deferred ideas
|
|
52
|
+
- CONTEXT.md captures decisions, not vague vision
|
|
53
|
+
- User knows next steps
|
|
54
|
+
</success_criteria>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-execute-phase
|
|
3
|
+
description: Implementation of gsd-execute-phase command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Execute all plans in a phase using wave-based parallel execution.
|
|
8
|
+
|
|
9
|
+
Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.
|
|
10
|
+
|
|
11
|
+
Optional wave filter:
|
|
12
|
+
- `--wave N` executes only Wave `N` for pacing, quota management, or staged rollout
|
|
13
|
+
- phase verification/completion still only happens when no incomplete plans remain after the selected wave finishes
|
|
14
|
+
|
|
15
|
+
Flag handling rule:
|
|
16
|
+
- The optional flags documented below are available behaviors, not implied active behaviors
|
|
17
|
+
- A flag is active only when its literal token appears in `$ARGUMENTS`
|
|
18
|
+
- If a documented flag is absent from `$ARGUMENTS`, treat it as inactive
|
|
19
|
+
|
|
20
|
+
Context budget: ~15% orchestrator, 100% fresh per subagent.
|
|
21
|
+
</objective>
|
|
22
|
+
|
|
23
|
+
<execution_context>
|
|
24
|
+
@$HOME/.config/opencode/get-shit-done/workflows/execute-phase.md
|
|
25
|
+
@$HOME/.config/opencode/get-shit-done/references/ui-brand.md
|
|
26
|
+
</execution_context>
|
|
27
|
+
|
|
28
|
+
<context>
|
|
29
|
+
Phase: $ARGUMENTS
|
|
30
|
+
|
|
31
|
+
**Available optional flags (documentation only — not automatically active):**
|
|
32
|
+
- `--wave N` — Execute only Wave `N` in the phase. Use when you want to pace execution or stay inside usage limits.
|
|
33
|
+
- `--gaps-only` — Execute only gap closure plans (plans with `gap_closure: true` in frontmatter). Use after verify-work creates fix plans.
|
|
34
|
+
- `--interactive` — Execute plans sequentially inline (no subagents) with user checkpoints between tasks. Lower token usage, pair-programming style. Best for small phases, bug fixes, and verification gaps.
|
|
35
|
+
|
|
36
|
+
**Active flags must be derived from `$ARGUMENTS`:**
|
|
37
|
+
- `--wave N` is active only if the literal `--wave` token is present in `$ARGUMENTS`
|
|
38
|
+
- `--gaps-only` is active only if the literal `--gaps-only` token is present in `$ARGUMENTS`
|
|
39
|
+
- `--interactive` is active only if the literal `--interactive` token is present in `$ARGUMENTS`
|
|
40
|
+
- If none of these tokens appear, run the standard full-phase execution flow with no flag-specific filtering
|
|
41
|
+
- Do not infer that a flag is active just because it is documented in this prompt
|
|
42
|
+
|
|
43
|
+
Context files are resolved inside the workflow via `gsd-tools init execute-phase` and per-subagent `<files_to_read>` blocks.
|
|
44
|
+
</context>
|
|
45
|
+
|
|
46
|
+
<process>
|
|
47
|
+
Execute the execute-phase workflow from @$HOME/.config/opencode/get-shit-done/workflows/execute-phase.md end-to-end.
|
|
48
|
+
Preserve all workflow gates (wave execution, checkpoint handling, verification, state updates, routing).
|
|
49
|
+
</process>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-plan-phase
|
|
3
|
+
description: Implementation of gsd-plan-phase command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Create executable phase prompts (PLAN.md files) for a roadmap phase with integrated research and verification.
|
|
8
|
+
|
|
9
|
+
**Default flow:** Research (if needed) → Plan → Verify → Done
|
|
10
|
+
|
|
11
|
+
**Orchestrator role:** Parse arguments, validate phase, research domain (unless skipped), spawn gsd-planner, verify with gsd-plan-checker, iterate until pass or max iterations, present results.
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
@$HOME/.config/opencode/get-shit-done/workflows/plan-phase.md
|
|
16
|
+
@$HOME/.config/opencode/get-shit-done/references/ui-brand.md
|
|
17
|
+
</execution_context>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omitted)
|
|
21
|
+
|
|
22
|
+
**Flags:**
|
|
23
|
+
- `--research` — Force re-research even if RESEARCH.md exists
|
|
24
|
+
- `--skip-research` — Skip research, go straight to planning
|
|
25
|
+
- `--gaps` — Gap closure mode (reads VERIFICATION.md, skips research)
|
|
26
|
+
- `--skip-verify` — Skip verification loop
|
|
27
|
+
- `--prd <file>` — Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely.
|
|
28
|
+
- `--reviews` — Replan incorporating cross-AI review feedback from REVIEWS.md (produced by `/gsd-review`)
|
|
29
|
+
- `--text` — Use plain-text numbered lists instead of TUI menus (required for `/rc` remote sessions)
|
|
30
|
+
|
|
31
|
+
Normalize phase input in step 2 before any directory lookups.
|
|
32
|
+
</context>
|
|
33
|
+
|
|
34
|
+
<process>
|
|
35
|
+
Execute the plan-phase workflow from @$HOME/.config/opencode/get-shit-done/workflows/plan-phase.md end-to-end.
|
|
36
|
+
Preserve all workflow gates (validation, research, planning, verification loop, routing).
|
|
37
|
+
</process>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-ui-phase
|
|
3
|
+
description: Implementation of gsd-ui-phase command
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Create a UI design contract (UI-SPEC.md) for a frontend phase.
|
|
8
|
+
Orchestrates gsd-ui-researcher and gsd-ui-checker.
|
|
9
|
+
Flow: Validate → Research UI → Verify UI-SPEC → Done
|
|
10
|
+
</objective>
|
|
11
|
+
|
|
12
|
+
<execution_context>
|
|
13
|
+
@$HOME/.config/opencode/get-shit-done/workflows/ui-phase.md
|
|
14
|
+
@$HOME/.config/opencode/get-shit-done/references/ui-brand.md
|
|
15
|
+
</execution_context>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
Phase number: $ARGUMENTS — optional, auto-detects next unplanned phase if omitted.
|
|
19
|
+
</context>
|
|
20
|
+
|
|
21
|
+
<process>
|
|
22
|
+
Execute @$HOME/.config/opencode/get-shit-done/workflows/ui-phase.md end-to-end.
|
|
23
|
+
Preserve all workflow gates.
|
|
24
|
+
</process>
|