gsd-opencode 1.22.1 → 1.33.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 +0 -2
- package/agents/gsd-debugger.md +117 -2
- package/agents/gsd-doc-verifier.md +207 -0
- package/agents/gsd-doc-writer.md +608 -0
- package/agents/gsd-executor.md +45 -4
- package/agents/gsd-integration-checker.md +0 -2
- package/agents/gsd-nyquist-auditor.md +0 -2
- package/agents/gsd-phase-researcher.md +191 -5
- package/agents/gsd-plan-checker.md +152 -5
- package/agents/gsd-planner.md +131 -157
- package/agents/gsd-project-researcher.md +28 -3
- package/agents/gsd-research-synthesizer.md +0 -2
- package/agents/gsd-roadmapper.md +29 -2
- package/agents/gsd-security-auditor.md +129 -0
- package/agents/gsd-ui-auditor.md +485 -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 +207 -22
- package/commands/gsd/gsd-add-backlog.md +76 -0
- package/commands/gsd/gsd-analyze-dependencies.md +34 -0
- package/commands/gsd/gsd-audit-uat.md +24 -0
- package/commands/gsd/gsd-autonomous.md +45 -0
- package/commands/gsd/gsd-cleanup.md +5 -0
- package/commands/gsd/gsd-debug.md +29 -21
- package/commands/gsd/gsd-discuss-phase.md +15 -36
- package/commands/gsd/gsd-do.md +30 -0
- package/commands/gsd/gsd-docs-update.md +48 -0
- package/commands/gsd/gsd-execute-phase.md +24 -2
- package/commands/gsd/gsd-fast.md +30 -0
- package/commands/gsd/gsd-forensics.md +56 -0
- package/commands/gsd/gsd-help.md +2 -0
- package/commands/gsd/gsd-join-discord.md +2 -1
- package/commands/gsd/gsd-list-workspaces.md +19 -0
- package/commands/gsd/gsd-manager.md +40 -0
- package/commands/gsd/gsd-milestone-summary.md +51 -0
- package/commands/gsd/gsd-new-project.md +4 -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 +8 -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 +7 -3
- package/commands/gsd/gsd-reapply-patches.md +178 -45
- package/commands/gsd/gsd-remove-workspace.md +26 -0
- package/commands/gsd/gsd-research-phase.md +7 -12
- package/commands/gsd/gsd-review-backlog.md +62 -0
- package/commands/gsd/gsd-review.md +38 -0
- package/commands/gsd/gsd-secure-phase.md +35 -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 +71 -0
- package/get-shit-done/bin/gsd-tools.cjs +450 -90
- package/get-shit-done/bin/lib/commands.cjs +489 -24
- package/get-shit-done/bin/lib/config.cjs +329 -48
- package/get-shit-done/bin/lib/core.cjs +1143 -102
- package/get-shit-done/bin/lib/docs.cjs +267 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +125 -43
- package/get-shit-done/bin/lib/init.cjs +918 -106
- package/get-shit-done/bin/lib/milestone.cjs +65 -33
- package/get-shit-done/bin/lib/model-profiles.cjs +70 -0
- package/get-shit-done/bin/lib/phase.cjs +434 -404
- package/get-shit-done/bin/lib/profile-output.cjs +1048 -0
- package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
- package/get-shit-done/bin/lib/roadmap.cjs +156 -101
- package/get-shit-done/bin/lib/schema-detect.cjs +238 -0
- package/get-shit-done/bin/lib/security.cjs +384 -0
- package/get-shit-done/bin/lib/state.cjs +711 -79
- 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 +254 -42
- package/get-shit-done/bin/lib/workstream.cjs +495 -0
- package/get-shit-done/references/agent-contracts.md +79 -0
- package/get-shit-done/references/artifact-types.md +113 -0
- package/get-shit-done/references/checkpoints.md +12 -10
- package/get-shit-done/references/context-budget.md +49 -0
- package/get-shit-done/references/continuation-format.md +15 -15
- package/get-shit-done/references/decimal-phase-calculation.md +2 -3
- package/get-shit-done/references/domain-probes.md +125 -0
- package/get-shit-done/references/gate-prompts.md +100 -0
- 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/planner-gap-closure.md +62 -0
- package/get-shit-done/references/planner-reviews.md +39 -0
- package/get-shit-done/references/planner-revision.md +87 -0
- package/get-shit-done/references/planning-config.md +18 -1
- package/get-shit-done/references/revision-loop.md +97 -0
- package/get-shit-done/references/ui-brand.md +2 -2
- package/get-shit-done/references/universal-anti-patterns.md +58 -0
- package/get-shit-done/references/user-profiling.md +681 -0
- package/get-shit-done/references/workstream-flag.md +111 -0
- package/get-shit-done/templates/SECURITY.md +61 -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/VALIDATION.md +3 -3
- package/get-shit-done/templates/claude-md.md +145 -0
- package/get-shit-done/templates/config.json +14 -3
- package/get-shit-done/templates/context.md +61 -6
- package/get-shit-done/templates/debug-subagent-prompt.md +2 -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/planner-subagent-prompt.md +2 -10
- 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 +4 -4
- package/get-shit-done/workflows/add-tests.md +4 -4
- package/get-shit-done/workflows/add-todo.md +4 -4
- package/get-shit-done/workflows/analyze-dependencies.md +96 -0
- package/get-shit-done/workflows/audit-milestone.md +20 -16
- package/get-shit-done/workflows/audit-uat.md +109 -0
- package/get-shit-done/workflows/autonomous.md +1036 -0
- package/get-shit-done/workflows/check-todos.md +4 -4
- package/get-shit-done/workflows/cleanup.md +4 -4
- package/get-shit-done/workflows/complete-milestone.md +22 -10
- package/get-shit-done/workflows/diagnose-issues.md +21 -7
- package/get-shit-done/workflows/discovery-phase.md +2 -2
- package/get-shit-done/workflows/discuss-phase-assumptions.md +671 -0
- package/get-shit-done/workflows/discuss-phase-power.md +291 -0
- package/get-shit-done/workflows/discuss-phase.md +558 -47
- package/get-shit-done/workflows/do.md +104 -0
- package/get-shit-done/workflows/docs-update.md +1093 -0
- package/get-shit-done/workflows/execute-phase.md +741 -58
- 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 +127 -7
- package/get-shit-done/workflows/insert-phase.md +4 -4
- 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 +363 -0
- package/get-shit-done/workflows/map-codebase.md +83 -44
- package/get-shit-done/workflows/milestone-summary.md +223 -0
- package/get-shit-done/workflows/new-milestone.md +133 -25
- package/get-shit-done/workflows/new-project.md +216 -54
- 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 +132 -15
- package/get-shit-done/workflows/plan-milestone-gaps.md +6 -7
- package/get-shit-done/workflows/plan-phase.md +513 -62
- 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 +154 -29
- package/get-shit-done/workflows/quick.md +285 -111
- 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 +13 -9
- package/get-shit-done/workflows/resume-project.md +37 -18
- package/get-shit-done/workflows/review.md +281 -0
- package/get-shit-done/workflows/secure-phase.md +154 -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 +91 -11
- package/get-shit-done/workflows/ship.md +237 -0
- package/get-shit-done/workflows/stats.md +60 -0
- package/get-shit-done/workflows/transition.md +150 -23
- package/get-shit-done/workflows/ui-phase.md +292 -0
- package/get-shit-done/workflows/ui-review.md +183 -0
- package/get-shit-done/workflows/update.md +262 -30
- package/get-shit-done/workflows/validate-phase.md +14 -17
- package/get-shit-done/workflows/verify-phase.md +143 -11
- package/get-shit-done/workflows/verify-work.md +141 -39
- 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,23 +1,38 @@
|
|
|
1
|
-
<
|
|
1
|
+
<objective>
|
|
2
2
|
Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking). Quick mode spawns gsd-planner (quick mode) + gsd-executor(s), tracks tasks in `.planning/quick/`, and updates STATE.md's "Quick Tasks Completed" table.
|
|
3
3
|
|
|
4
|
+
With `--full` flag: enables the complete quality pipeline — discussion + research + plan-checking + verification. One flag for everything.
|
|
5
|
+
|
|
6
|
+
With `--validate` flag: enables plan-checking (max 2 iterations) and post-execution verification only. Use when you want quality guarantees without discussion or research.
|
|
7
|
+
|
|
4
8
|
With `--discuss` flag: lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md so the planner treats them as locked.
|
|
5
9
|
|
|
6
|
-
With `--
|
|
10
|
+
With `--research` flag: spawns a focused research agent before planning. Investigates implementation approaches, library options, and pitfalls. Use when you're unsure how to approach a task.
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
</
|
|
12
|
+
Granular flags are composable: `--discuss --research --validate` gives the same result as `--full`.
|
|
13
|
+
</objective>
|
|
10
14
|
|
|
11
15
|
<required_reading>
|
|
12
16
|
read all files referenced by the invoking prompt's execution_context before starting.
|
|
13
17
|
</required_reading>
|
|
14
18
|
|
|
19
|
+
<available_agent_types>
|
|
20
|
+
Valid GSD subagent types (use exact names — do not fall back to 'general'):
|
|
21
|
+
- gsd-phase-researcher — Researches technical approaches for a phase
|
|
22
|
+
- gsd-planner — Creates detailed plans from phase scope
|
|
23
|
+
- gsd-plan-checker — Reviews plan quality before execution
|
|
24
|
+
- gsd-executor — Executes plan tasks, commits, creates SUMMARY.md
|
|
25
|
+
- gsd-verifier — Verifies phase completion, checks quality gates
|
|
26
|
+
</available_agent_types>
|
|
27
|
+
|
|
15
28
|
<process>
|
|
16
29
|
**Step 1: Parse arguments and get task description**
|
|
17
30
|
|
|
18
31
|
Parse `$ARGUMENTS` for:
|
|
19
|
-
- `--full` flag → store
|
|
20
|
-
- `--
|
|
32
|
+
- `--full` flag → store `$FULL_MODE=true`, `$DISCUSS_MODE=true`, `$RESEARCH_MODE=true`, `$VALIDATE_MODE=true`
|
|
33
|
+
- `--validate` flag → store `$VALIDATE_MODE=true`
|
|
34
|
+
- `--discuss` flag → store `$DISCUSS_MODE=true`
|
|
35
|
+
- `--research` flag → store `$RESEARCH_MODE=true`
|
|
21
36
|
- Remaining text → use as `$DESCRIPTION` if non-empty
|
|
22
37
|
|
|
23
38
|
If `$DESCRIPTION` is empty after parsing, prompt user interactively:
|
|
@@ -36,15 +51,51 @@ If still empty, re-prompt: "Please provide a task description."
|
|
|
36
51
|
|
|
37
52
|
Display banner based on active flags:
|
|
38
53
|
|
|
39
|
-
If `$
|
|
54
|
+
If `$FULL_MODE` (all phases enabled — `--full` or all granular flags):
|
|
55
|
+
```
|
|
56
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
57
|
+
GSD ► QUICK TASK (FULL)
|
|
58
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
59
|
+
|
|
60
|
+
◆ Discussion + research + plan checking + verification enabled
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
If `$DISCUSS_MODE` and `$RESEARCH_MODE` and `$VALIDATE_MODE` (no `$FULL_MODE` — composed granularly):
|
|
40
64
|
```
|
|
41
65
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
42
|
-
GSD ► QUICK TASK (DISCUSS +
|
|
66
|
+
GSD ► QUICK TASK (DISCUSS + RESEARCH + VALIDATE)
|
|
67
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
68
|
+
|
|
69
|
+
◆ Discussion + research + plan checking + verification enabled
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If `$DISCUSS_MODE` and `$VALIDATE_MODE` (no research):
|
|
73
|
+
```
|
|
74
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
75
|
+
GSD ► QUICK TASK (DISCUSS + VALIDATE)
|
|
43
76
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
44
77
|
|
|
45
78
|
◆ Discussion + plan checking + verification enabled
|
|
46
79
|
```
|
|
47
80
|
|
|
81
|
+
If `$DISCUSS_MODE` and `$RESEARCH_MODE` (no validate):
|
|
82
|
+
```
|
|
83
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
84
|
+
GSD ► QUICK TASK (DISCUSS + RESEARCH)
|
|
85
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
86
|
+
|
|
87
|
+
◆ Discussion + research enabled
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If `$RESEARCH_MODE` and `$VALIDATE_MODE` (no discuss):
|
|
91
|
+
```
|
|
92
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
+
GSD ► QUICK TASK (RESEARCH + VALIDATE)
|
|
94
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
95
|
+
|
|
96
|
+
◆ Research + plan checking + verification enabled
|
|
97
|
+
```
|
|
98
|
+
|
|
48
99
|
If `$DISCUSS_MODE` only:
|
|
49
100
|
```
|
|
50
101
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -54,10 +105,19 @@ If `$DISCUSS_MODE` only:
|
|
|
54
105
|
◆ Discussion phase enabled — surfacing gray areas before planning
|
|
55
106
|
```
|
|
56
107
|
|
|
57
|
-
If `$
|
|
108
|
+
If `$RESEARCH_MODE` only:
|
|
109
|
+
```
|
|
110
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
111
|
+
GSD ► QUICK TASK (RESEARCH)
|
|
112
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
113
|
+
|
|
114
|
+
◆ Research phase enabled — investigating approaches before planning
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
If `$VALIDATE_MODE` only:
|
|
58
118
|
```
|
|
59
119
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
-
GSD ► QUICK TASK (
|
|
120
|
+
GSD ► QUICK TASK (VALIDATE)
|
|
61
121
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
62
122
|
|
|
63
123
|
◆ Plan checking + verification enabled
|
|
@@ -70,9 +130,17 @@ If `$FULL_MODE` only:
|
|
|
70
130
|
```bash
|
|
71
131
|
INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init quick "$DESCRIPTION")
|
|
72
132
|
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
133
|
+
AGENT_SKILLS_PLANNER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-planner 2>/dev/null)
|
|
134
|
+
AGENT_SKILLS_EXECUTOR=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-executor 2>/dev/null)
|
|
135
|
+
AGENT_SKILLS_CHECKER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-checker 2>/dev/null)
|
|
136
|
+
AGENT_SKILLS_VERIFIER=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" agent-skills gsd-verifier 2>/dev/null)
|
|
73
137
|
```
|
|
74
138
|
|
|
75
|
-
Parse JSON for: `planner_model`, `executor_model`, `checker_model`, `verifier_model`, `commit_docs`, `
|
|
139
|
+
Parse JSON for: `planner_model`, `executor_model`, `checker_model`, `verifier_model`, `commit_docs`, `branch_name`, `quick_id`, `slug`, `date`, `timestamp`, `quick_dir`, `task_dir`, `roadmap_exists`, `planning_exists`.
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
USE_WORKTREES=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" config-get workflow.use_worktrees 2>/dev/null || echo "true")
|
|
143
|
+
```
|
|
76
144
|
|
|
77
145
|
**If `roadmap_exists` is false:** Error — Quick mode requires an active project with ROADMAP.md. Run `/gsd-new-project` first.
|
|
78
146
|
|
|
@@ -80,6 +148,20 @@ Quick tasks can run mid-phase - validation only checks ROADMAP.md exists, not ph
|
|
|
80
148
|
|
|
81
149
|
---
|
|
82
150
|
|
|
151
|
+
**Step 2.5: Handle quick-task branching**
|
|
152
|
+
|
|
153
|
+
**If `branch_name` is empty/null:** Skip and continue on the current branch.
|
|
154
|
+
|
|
155
|
+
**If `branch_name` is set:** Check out the quick-task branch before any planning commits:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
git checkout -b "$branch_name" 2>/dev/null || git checkout "$branch_name"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
All quick-task commits for this run stay on that branch. User handles merge/rebase afterward.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
83
165
|
**Step 3: Create task directory**
|
|
84
166
|
|
|
85
167
|
```bash
|
|
@@ -93,13 +175,13 @@ mkdir -p "${task_dir}"
|
|
|
93
175
|
Create the directory for this quick task:
|
|
94
176
|
|
|
95
177
|
```bash
|
|
96
|
-
QUICK_DIR=".planning/quick/${
|
|
178
|
+
QUICK_DIR=".planning/quick/${quick_id}-${slug}"
|
|
97
179
|
mkdir -p "$QUICK_DIR"
|
|
98
180
|
```
|
|
99
181
|
|
|
100
182
|
Report to user:
|
|
101
183
|
```
|
|
102
|
-
Creating quick task ${
|
|
184
|
+
Creating quick task ${quick_id}: ${DESCRIPTION}
|
|
103
185
|
Directory: ${QUICK_DIR}
|
|
104
186
|
```
|
|
105
187
|
|
|
@@ -180,10 +262,10 @@ Collect all decisions into `$DECISIONS`.
|
|
|
180
262
|
|
|
181
263
|
**4.5d. write CONTEXT.md**
|
|
182
264
|
|
|
183
|
-
write `${QUICK_DIR}/${
|
|
265
|
+
write `${QUICK_DIR}/${quick_id}-CONTEXT.md` using the standard context template structure:
|
|
184
266
|
|
|
185
267
|
```markdown
|
|
186
|
-
# Quick task ${
|
|
268
|
+
# Quick task ${quick_id}: ${DESCRIPTION} - Context
|
|
187
269
|
|
|
188
270
|
**Gathered:** ${date}
|
|
189
271
|
**Status:** Ready for planning
|
|
@@ -217,35 +299,106 @@ ${any_specific_references_or_examples_from_discussion}
|
|
|
217
299
|
[If none: "No specific requirements — open to standard approaches"]
|
|
218
300
|
|
|
219
301
|
</specifics>
|
|
302
|
+
|
|
303
|
+
<canonical_refs>
|
|
304
|
+
## Canonical References
|
|
305
|
+
|
|
306
|
+
${any_specs_adrs_or_docs_referenced_during_discussion}
|
|
307
|
+
|
|
308
|
+
[If none: "No external specs — requirements fully captured in decisions above"]
|
|
309
|
+
|
|
310
|
+
</canonical_refs>
|
|
220
311
|
```
|
|
221
312
|
|
|
222
|
-
Note: Quick task CONTEXT.md omits `<code_context>` and `<deferred>` sections (no codebase scouting, no phase scope to defer to). Keep it lean.
|
|
313
|
+
Note: Quick task CONTEXT.md omits `<code_context>` and `<deferred>` sections (no codebase scouting, no phase scope to defer to). Keep it lean. The `<canonical_refs>` section is included when external docs were referenced — omit it only if no external docs apply.
|
|
223
314
|
|
|
224
|
-
Report: `Context captured: ${QUICK_DIR}/${
|
|
315
|
+
Report: `Context captured: ${QUICK_DIR}/${quick_id}-CONTEXT.md`
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
**Step 4.75: Research phase (only when `$RESEARCH_MODE`)**
|
|
320
|
+
|
|
321
|
+
Skip this step entirely if NOT `$RESEARCH_MODE`.
|
|
322
|
+
|
|
323
|
+
Display banner:
|
|
324
|
+
```
|
|
325
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
326
|
+
GSD ► RESEARCHING QUICK TASK
|
|
327
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
328
|
+
|
|
329
|
+
◆ Investigating approaches for: ${DESCRIPTION}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Spawn a single focused researcher (not 4 parallel researchers like full phases — quick tasks need targeted research, not broad domain surveys):
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
@gsd-phase-researcher "
|
|
336
|
+
<research_context>
|
|
337
|
+
|
|
338
|
+
**Mode:** quick-task
|
|
339
|
+
**task:** ${DESCRIPTION}
|
|
340
|
+
**Output:** ${QUICK_DIR}/${quick_id}-RESEARCH.md
|
|
341
|
+
|
|
342
|
+
<files_to_read>
|
|
343
|
+
- .planning/STATE.md (Project state — what's already built)
|
|
344
|
+
- .planning/PROJECT.md (Project context)
|
|
345
|
+
- ./AGENTS.md (if exists — project-specific guidelines)
|
|
346
|
+
${DISCUSS_MODE ? '- ' + QUICK_DIR + '/' + quick_id + '-CONTEXT.md (User decisions — research should align with these)' : ''}
|
|
347
|
+
</files_to_read>
|
|
348
|
+
|
|
349
|
+
${AGENT_SKILLS_PLANNER}
|
|
350
|
+
|
|
351
|
+
</research_context>
|
|
352
|
+
|
|
353
|
+
<focus>
|
|
354
|
+
This is a quick task, not a full phase. Research should be concise and targeted:
|
|
355
|
+
1. Best libraries/patterns for this specific task
|
|
356
|
+
2. Common pitfalls and how to avoid them
|
|
357
|
+
3. Integration points with existing codebase
|
|
358
|
+
4. Any constraints or gotchas worth knowing before planning
|
|
359
|
+
|
|
360
|
+
Do NOT produce a full domain survey. Target 1-2 pages of actionable findings.
|
|
361
|
+
</focus>
|
|
362
|
+
|
|
363
|
+
<output>
|
|
364
|
+
write research to: ${QUICK_DIR}/${quick_id}-RESEARCH.md
|
|
365
|
+
Use standard research format but keep it lean — skip sections that don't apply.
|
|
366
|
+
Return: ## RESEARCH COMPLETE with file path
|
|
367
|
+
</output>
|
|
368
|
+
"
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
After researcher returns:
|
|
372
|
+
1. Verify research exists at `${QUICK_DIR}/${quick_id}-RESEARCH.md`
|
|
373
|
+
2. Report: "Research complete: ${QUICK_DIR}/${quick_id}-RESEARCH.md"
|
|
374
|
+
|
|
375
|
+
If research file not found, warn but continue: "Research agent did not produce output — proceeding to planning without research."
|
|
225
376
|
|
|
226
377
|
---
|
|
227
378
|
|
|
228
379
|
**Step 5: Spawn planner (quick mode)**
|
|
229
380
|
|
|
230
|
-
**If `$
|
|
381
|
+
**If `$VALIDATE_MODE`:** Use `quick-full` mode with stricter constraints.
|
|
231
382
|
|
|
232
|
-
**If NOT `$
|
|
383
|
+
**If NOT `$VALIDATE_MODE`:** Use standard `quick` mode.
|
|
233
384
|
|
|
234
385
|
```
|
|
235
|
-
|
|
236
|
-
prompt="
|
|
386
|
+
@gsd-planner "
|
|
237
387
|
<planning_context>
|
|
238
388
|
|
|
239
|
-
**Mode:** ${
|
|
389
|
+
**Mode:** ${VALIDATE_MODE ? 'quick-full' : 'quick'}
|
|
240
390
|
**Directory:** ${QUICK_DIR}
|
|
241
391
|
**Description:** ${DESCRIPTION}
|
|
242
392
|
|
|
243
393
|
<files_to_read>
|
|
244
394
|
- .planning/STATE.md (Project State)
|
|
245
395
|
- ./AGENTS.md (if exists — follow project-specific guidelines)
|
|
246
|
-
${DISCUSS_MODE ? '- ' + QUICK_DIR + '/' +
|
|
396
|
+
${DISCUSS_MODE ? '- ' + QUICK_DIR + '/' + quick_id + '-CONTEXT.md (User decisions — locked, do not revisit)' : ''}
|
|
397
|
+
${RESEARCH_MODE ? '- ' + QUICK_DIR + '/' + quick_id + '-RESEARCH.md (Research findings — use to inform implementation choices)' : ''}
|
|
247
398
|
</files_to_read>
|
|
248
399
|
|
|
400
|
+
${AGENT_SKILLS_PLANNER}
|
|
401
|
+
|
|
249
402
|
**Project skills:** Check .OpenCode/skills/ or .agents/skills/ directory (if either exists) — read SKILL.md files, plans should account for project skill rules
|
|
250
403
|
|
|
251
404
|
</planning_context>
|
|
@@ -253,35 +406,31 @@ ${DISCUSS_MODE ? '- ' + QUICK_DIR + '/' + next_num + '-CONTEXT.md (User decision
|
|
|
253
406
|
<constraints>
|
|
254
407
|
- Create a SINGLE plan with 1-3 focused tasks
|
|
255
408
|
- Quick tasks should be atomic and self-contained
|
|
256
|
-
- No research phase
|
|
257
|
-
${
|
|
258
|
-
${
|
|
259
|
-
${
|
|
409
|
+
${RESEARCH_MODE ? '- Research findings are available — use them to inform library/pattern choices' : '- No research phase'}
|
|
410
|
+
${VALIDATE_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
|
|
411
|
+
${VALIDATE_MODE ? '- MUST generate `must_haves` in plan frontmatter (truths, artifacts, key_links)' : ''}
|
|
412
|
+
${VALIDATE_MODE ? '- Each task MUST have `files`, `action`, `verify`, `done` fields' : ''}
|
|
260
413
|
</constraints>
|
|
261
414
|
|
|
262
415
|
<output>
|
|
263
|
-
write plan to: ${QUICK_DIR}/${
|
|
416
|
+
write plan to: ${QUICK_DIR}/${quick_id}-PLAN.md
|
|
264
417
|
Return: ## PLANNING COMPLETE with plan path
|
|
265
418
|
</output>
|
|
266
|
-
"
|
|
267
|
-
subagent_type="gsd-planner",
|
|
268
|
-
model="{planner_model}",
|
|
269
|
-
description="Quick plan: ${DESCRIPTION}"
|
|
270
|
-
)
|
|
419
|
+
"
|
|
271
420
|
```
|
|
272
421
|
|
|
273
422
|
After planner returns:
|
|
274
|
-
1. Verify plan exists at `${QUICK_DIR}/${
|
|
423
|
+
1. Verify plan exists at `${QUICK_DIR}/${quick_id}-PLAN.md`
|
|
275
424
|
2. Extract plan count (typically 1 for quick tasks)
|
|
276
|
-
3. Report: "Plan created: ${QUICK_DIR}/${
|
|
425
|
+
3. Report: "Plan created: ${QUICK_DIR}/${quick_id}-PLAN.md"
|
|
277
426
|
|
|
278
|
-
If plan not found, error: "Planner failed to create ${
|
|
427
|
+
If plan not found, error: "Planner failed to create ${quick_id}-PLAN.md"
|
|
279
428
|
|
|
280
429
|
---
|
|
281
430
|
|
|
282
|
-
**Step 5.5: Plan-checker loop (only when `$
|
|
431
|
+
**Step 5.5: Plan-checker loop (only when `$VALIDATE_MODE`)**
|
|
283
432
|
|
|
284
|
-
Skip this step entirely if NOT `$
|
|
433
|
+
Skip this step entirely if NOT `$VALIDATE_MODE`.
|
|
285
434
|
|
|
286
435
|
Display banner:
|
|
287
436
|
```
|
|
@@ -300,9 +449,11 @@ Checker prompt:
|
|
|
300
449
|
**task Description:** ${DESCRIPTION}
|
|
301
450
|
|
|
302
451
|
<files_to_read>
|
|
303
|
-
- ${QUICK_DIR}/${
|
|
452
|
+
- ${QUICK_DIR}/${quick_id}-PLAN.md (Plan to verify)
|
|
304
453
|
</files_to_read>
|
|
305
454
|
|
|
455
|
+
${AGENT_SKILLS_CHECKER}
|
|
456
|
+
|
|
306
457
|
**Scope:** This is a quick task, not a full phase. Skip checks that require a ROADMAP phase goal.
|
|
307
458
|
</verification_context>
|
|
308
459
|
|
|
@@ -324,12 +475,7 @@ ${DISCUSS_MODE ? '- Context compliance: Does the plan honor locked decisions fro
|
|
|
324
475
|
```
|
|
325
476
|
|
|
326
477
|
```
|
|
327
|
-
|
|
328
|
-
prompt=checker_prompt,
|
|
329
|
-
subagent_type="gsd-plan-checker",
|
|
330
|
-
model="{checker_model}",
|
|
331
|
-
description="Check quick plan: ${DESCRIPTION}"
|
|
332
|
-
)
|
|
478
|
+
@gsd-plan-checker checker_prompt
|
|
333
479
|
```
|
|
334
480
|
|
|
335
481
|
**Handle checker return:**
|
|
@@ -352,9 +498,11 @@ Revision prompt:
|
|
|
352
498
|
**Mode:** quick-full (revision)
|
|
353
499
|
|
|
354
500
|
<files_to_read>
|
|
355
|
-
- ${QUICK_DIR}/${
|
|
501
|
+
- ${QUICK_DIR}/${quick_id}-PLAN.md (Existing plan)
|
|
356
502
|
</files_to_read>
|
|
357
503
|
|
|
504
|
+
${AGENT_SKILLS_PLANNER}
|
|
505
|
+
|
|
358
506
|
**Checker issues:** ${structured_issues_from_checker}
|
|
359
507
|
|
|
360
508
|
</revision_context>
|
|
@@ -367,12 +515,7 @@ Return what changed.
|
|
|
367
515
|
```
|
|
368
516
|
|
|
369
517
|
```
|
|
370
|
-
|
|
371
|
-
prompt=revision_prompt,
|
|
372
|
-
subagent_type="gsd-planner",
|
|
373
|
-
model="{planner_model}",
|
|
374
|
-
description="Revise quick plan: ${DESCRIPTION}"
|
|
375
|
-
)
|
|
518
|
+
@gsd-planner revision_prompt
|
|
376
519
|
```
|
|
377
520
|
|
|
378
521
|
After planner returns → spawn checker again, increment iteration_count.
|
|
@@ -387,49 +530,75 @@ Offer: 1) Force proceed, 2) Abort
|
|
|
387
530
|
|
|
388
531
|
**Step 6: Spawn executor**
|
|
389
532
|
|
|
533
|
+
Capture current HEAD before spawning (used for worktree branch check):
|
|
534
|
+
```bash
|
|
535
|
+
EXPECTED_BASE=$(git rev-parse HEAD)
|
|
536
|
+
```
|
|
537
|
+
|
|
390
538
|
Spawn gsd-executor with plan reference:
|
|
391
539
|
|
|
392
540
|
```
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
541
|
+
@gsd-executor "
|
|
542
|
+
Execute quick task ${quick_id}.
|
|
543
|
+
|
|
544
|
+
${USE_WORKTREES !== "false" ? `
|
|
545
|
+
<worktree_branch_check>
|
|
546
|
+
FIRST ACTION before any other work: verify this worktree branch is based on the correct commit.
|
|
547
|
+
Run: git merge-base HEAD ${EXPECTED_BASE}
|
|
548
|
+
If the result differs from ${EXPECTED_BASE}, run: git reset --soft ${EXPECTED_BASE}
|
|
549
|
+
This corrects a known issue on Windows where EnterWorktree creates branches from main instead of the feature branch HEAD.
|
|
550
|
+
</worktree_branch_check>
|
|
551
|
+
` : ''}
|
|
396
552
|
|
|
397
553
|
<files_to_read>
|
|
398
|
-
- ${QUICK_DIR}/${
|
|
554
|
+
- ${QUICK_DIR}/${quick_id}-PLAN.md (Plan)
|
|
399
555
|
- .planning/STATE.md (Project state)
|
|
400
556
|
- ./AGENTS.md (Project instructions, if exists)
|
|
401
557
|
- .OpenCode/skills/ or .agents/skills/ (Project skills, if either exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
|
|
402
558
|
</files_to_read>
|
|
403
559
|
|
|
560
|
+
${AGENT_SKILLS_EXECUTOR}
|
|
561
|
+
|
|
404
562
|
<constraints>
|
|
405
563
|
- Execute all tasks in the plan
|
|
406
|
-
- Commit each task atomically
|
|
407
|
-
- Create summary at: ${QUICK_DIR}/${
|
|
564
|
+
- Commit each task atomically (code changes only)
|
|
565
|
+
- Create summary at: ${QUICK_DIR}/${quick_id}-SUMMARY.md
|
|
566
|
+
- Do NOT commit docs artifacts (SUMMARY.md, STATE.md, PLAN.md) — the orchestrator handles the docs commit in Step 8
|
|
408
567
|
- Do NOT update ROADMAP.md (quick tasks are separate from planned phases)
|
|
409
568
|
</constraints>
|
|
410
|
-
"
|
|
411
|
-
subagent_type="gsd-executor",
|
|
412
|
-
model="{executor_model}",
|
|
413
|
-
description="Execute: ${DESCRIPTION}"
|
|
414
|
-
)
|
|
569
|
+
"
|
|
415
570
|
```
|
|
416
571
|
|
|
417
572
|
After executor returns:
|
|
418
|
-
1.
|
|
419
|
-
|
|
420
|
-
|
|
573
|
+
1. **Worktree cleanup:** If the executor ran with `isolation="worktree"`, merge the worktree branch back and clean up:
|
|
574
|
+
```bash
|
|
575
|
+
# Find worktrees created by the executor
|
|
576
|
+
WORKTREES=$(git worktree list --porcelain | grep "^worktree " | grep -v "$(pwd)$" | sed 's/^worktree //')
|
|
577
|
+
for WT in $WORKTREES; do
|
|
578
|
+
WT_BRANCH=$(git -C "$WT" rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
579
|
+
if [ -n "$WT_BRANCH" ] && [ "$WT_BRANCH" != "HEAD" ]; then
|
|
580
|
+
git merge "$WT_BRANCH" --no-edit -m "chore: merge quick task worktree ($WT_BRANCH)" 2>&1 || echo "⚠ Merge conflict — resolve manually"
|
|
581
|
+
git worktree remove "$WT" --force 2>/dev/null || true
|
|
582
|
+
git branch -D "$WT_BRANCH" 2>/dev/null || true
|
|
583
|
+
fi
|
|
584
|
+
done
|
|
585
|
+
```
|
|
586
|
+
If `workflow.use_worktrees` is `false`, skip this step.
|
|
587
|
+
2. Verify summary exists at `${QUICK_DIR}/${quick_id}-SUMMARY.md`
|
|
588
|
+
3. Extract commit hash from executor output
|
|
589
|
+
4. Report completion status
|
|
421
590
|
|
|
422
591
|
**Known OpenCode bug (classifyHandoffIfNeeded):** If executor reports "failed" with error `classifyHandoffIfNeeded is not defined`, this is a OpenCode runtime bug — not a real failure. Check if summary file exists and git log shows commits. If so, treat as successful.
|
|
423
592
|
|
|
424
|
-
If summary not found, error: "Executor failed to create ${
|
|
593
|
+
If summary not found, error: "Executor failed to create ${quick_id}-SUMMARY.md"
|
|
425
594
|
|
|
426
595
|
Note: For quick tasks producing multiple plans (rare), spawn executors in parallel waves per execute-phase patterns.
|
|
427
596
|
|
|
428
597
|
---
|
|
429
598
|
|
|
430
|
-
**Step 6.5: Verification (only when `$
|
|
599
|
+
**Step 6.5: Verification (only when `$VALIDATE_MODE`)**
|
|
431
600
|
|
|
432
|
-
Skip this step entirely if NOT `$
|
|
601
|
+
Skip this step entirely if NOT `$VALIDATE_MODE`.
|
|
433
602
|
|
|
434
603
|
Display banner:
|
|
435
604
|
```
|
|
@@ -441,25 +610,22 @@ Display banner:
|
|
|
441
610
|
```
|
|
442
611
|
|
|
443
612
|
```
|
|
444
|
-
task
|
|
445
|
-
prompt="Verify quick task goal achievement.
|
|
613
|
+
@gsd-verifier "Verify quick task goal achievement.
|
|
446
614
|
task directory: ${QUICK_DIR}
|
|
447
615
|
task goal: ${DESCRIPTION}
|
|
448
616
|
|
|
449
617
|
<files_to_read>
|
|
450
|
-
- ${QUICK_DIR}/${
|
|
618
|
+
- ${QUICK_DIR}/${quick_id}-PLAN.md (Plan)
|
|
451
619
|
</files_to_read>
|
|
452
620
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
description="Verify: ${DESCRIPTION}"
|
|
457
|
-
)
|
|
621
|
+
${AGENT_SKILLS_VERIFIER}
|
|
622
|
+
|
|
623
|
+
Check must_haves against actual codebase. Create VERIFICATION.md at ${QUICK_DIR}/${quick_id}-VERIFICATION.md."
|
|
458
624
|
```
|
|
459
625
|
|
|
460
626
|
read verification status:
|
|
461
627
|
```bash
|
|
462
|
-
grep "^status:" "${QUICK_DIR}/${
|
|
628
|
+
grep "^status:" "${QUICK_DIR}/${quick_id}-VERIFICATION.md" | cut -d: -f2 | tr -d ' '
|
|
463
629
|
```
|
|
464
630
|
|
|
465
631
|
Store as `$VERIFICATION_STATUS`.
|
|
@@ -484,7 +650,7 @@ read STATE.md and check for `### Quick Tasks Completed` section.
|
|
|
484
650
|
|
|
485
651
|
Insert after `### Blockers/Concerns` section:
|
|
486
652
|
|
|
487
|
-
**If `$
|
|
653
|
+
**If `$VALIDATE_MODE`:**
|
|
488
654
|
```markdown
|
|
489
655
|
### Quick Tasks Completed
|
|
490
656
|
|
|
@@ -492,7 +658,7 @@ Insert after `### Blockers/Concerns` section:
|
|
|
492
658
|
|---|-------------|------|--------|--------|-----------|
|
|
493
659
|
```
|
|
494
660
|
|
|
495
|
-
**If NOT `$
|
|
661
|
+
**If NOT `$VALIDATE_MODE`:**
|
|
496
662
|
```markdown
|
|
497
663
|
### Quick Tasks Completed
|
|
498
664
|
|
|
@@ -500,27 +666,27 @@ Insert after `### Blockers/Concerns` section:
|
|
|
500
666
|
|---|-------------|------|--------|-----------|
|
|
501
667
|
```
|
|
502
668
|
|
|
503
|
-
**Note:** If the table already exists, match its existing column format. If adding `--full` to a project that already has quick tasks without a Status column, add the Status column to the header and separator rows, and leave Status empty for the new row's predecessors.
|
|
669
|
+
**Note:** If the table already exists, match its existing column format. If adding `--validate` (or `--full`) to a project that already has quick tasks without a Status column, add the Status column to the header and separator rows, and leave Status empty for the new row's predecessors.
|
|
504
670
|
|
|
505
671
|
**7c. Append new row to table:**
|
|
506
672
|
|
|
507
673
|
Use `date` from init:
|
|
508
674
|
|
|
509
|
-
**If `$
|
|
675
|
+
**If `$VALIDATE_MODE` (or table has Status column):**
|
|
510
676
|
```markdown
|
|
511
|
-
| ${
|
|
677
|
+
| ${quick_id} | ${DESCRIPTION} | ${date} | ${commit_hash} | ${VERIFICATION_STATUS} | [${quick_id}-${slug}](./quick/${quick_id}-${slug}/) |
|
|
512
678
|
```
|
|
513
679
|
|
|
514
|
-
**If NOT `$
|
|
680
|
+
**If NOT `$VALIDATE_MODE` (and table has no Status column):**
|
|
515
681
|
```markdown
|
|
516
|
-
| ${
|
|
682
|
+
| ${quick_id} | ${DESCRIPTION} | ${date} | ${commit_hash} | [${quick_id}-${slug}](./quick/${quick_id}-${slug}/) |
|
|
517
683
|
```
|
|
518
684
|
|
|
519
685
|
**7d. Update "Last activity" line:**
|
|
520
686
|
|
|
521
687
|
Use `date` from init:
|
|
522
688
|
```
|
|
523
|
-
Last activity: ${date} - Completed quick task ${
|
|
689
|
+
Last activity: ${date} - Completed quick task ${quick_id}: ${DESCRIPTION}
|
|
524
690
|
```
|
|
525
691
|
|
|
526
692
|
Use edit tool to make these changes atomically
|
|
@@ -529,17 +695,21 @@ Use edit tool to make these changes atomically
|
|
|
529
695
|
|
|
530
696
|
**Step 8: Final commit and completion**
|
|
531
697
|
|
|
532
|
-
Stage and commit quick task artifacts
|
|
698
|
+
Stage and commit quick task artifacts. This step MUST always run — even if the executor already committed some files (e.g. when running without worktree isolation). The `gsd-tools commit` command handles already-committed files gracefully.
|
|
533
699
|
|
|
534
700
|
Build file list:
|
|
535
|
-
- `${QUICK_DIR}/${
|
|
536
|
-
- `${QUICK_DIR}/${
|
|
701
|
+
- `${QUICK_DIR}/${quick_id}-PLAN.md`
|
|
702
|
+
- `${QUICK_DIR}/${quick_id}-SUMMARY.md`
|
|
537
703
|
- `.planning/STATE.md`
|
|
538
|
-
- If `$DISCUSS_MODE` and context file exists: `${QUICK_DIR}/${
|
|
539
|
-
- If `$
|
|
704
|
+
- If `$DISCUSS_MODE` and context file exists: `${QUICK_DIR}/${quick_id}-CONTEXT.md`
|
|
705
|
+
- If `$RESEARCH_MODE` and research file exists: `${QUICK_DIR}/${quick_id}-RESEARCH.md`
|
|
706
|
+
- If `$VALIDATE_MODE` and verification file exists: `${QUICK_DIR}/${quick_id}-VERIFICATION.md`
|
|
540
707
|
|
|
541
708
|
```bash
|
|
542
|
-
|
|
709
|
+
# Explicitly stage all artifacts before commit — PLAN.md may be untracked
|
|
710
|
+
# if the executor ran without worktree isolation and committed docs early
|
|
711
|
+
git add ${file_list} 2>/dev/null
|
|
712
|
+
node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" commit "docs(quick-${quick_id}): ${DESCRIPTION}" --files ${file_list}
|
|
543
713
|
```
|
|
544
714
|
|
|
545
715
|
Get final commit hash:
|
|
@@ -549,37 +719,39 @@ commit_hash=$(git rev-parse --short HEAD)
|
|
|
549
719
|
|
|
550
720
|
Display completion output:
|
|
551
721
|
|
|
552
|
-
**If `$
|
|
722
|
+
**If `$VALIDATE_MODE`:**
|
|
553
723
|
```
|
|
554
724
|
---
|
|
555
725
|
|
|
556
|
-
GSD > QUICK TASK COMPLETE (
|
|
726
|
+
GSD > QUICK TASK COMPLETE (VALIDATED)
|
|
557
727
|
|
|
558
|
-
Quick task ${
|
|
728
|
+
Quick task ${quick_id}: ${DESCRIPTION}
|
|
559
729
|
|
|
560
|
-
|
|
561
|
-
|
|
730
|
+
${RESEARCH_MODE ? 'Research: ' + QUICK_DIR + '/' + quick_id + '-RESEARCH.md' : ''}
|
|
731
|
+
Summary: ${QUICK_DIR}/${quick_id}-SUMMARY.md
|
|
732
|
+
Verification: ${QUICK_DIR}/${quick_id}-VERIFICATION.md (${VERIFICATION_STATUS})
|
|
562
733
|
Commit: ${commit_hash}
|
|
563
734
|
|
|
564
735
|
---
|
|
565
736
|
|
|
566
|
-
Ready for next task: /gsd-quick
|
|
737
|
+
Ready for next task: /gsd-quick ${GSD_WS}
|
|
567
738
|
```
|
|
568
739
|
|
|
569
|
-
**If NOT `$
|
|
740
|
+
**If NOT `$VALIDATE_MODE`:**
|
|
570
741
|
```
|
|
571
742
|
---
|
|
572
743
|
|
|
573
744
|
GSD > QUICK TASK COMPLETE
|
|
574
745
|
|
|
575
|
-
Quick task ${
|
|
746
|
+
Quick task ${quick_id}: ${DESCRIPTION}
|
|
576
747
|
|
|
577
|
-
|
|
748
|
+
${RESEARCH_MODE ? 'Research: ' + QUICK_DIR + '/' + quick_id + '-RESEARCH.md' : ''}
|
|
749
|
+
Summary: ${QUICK_DIR}/${quick_id}-SUMMARY.md
|
|
578
750
|
Commit: ${commit_hash}
|
|
579
751
|
|
|
580
752
|
---
|
|
581
753
|
|
|
582
|
-
Ready for next task: /gsd-quick
|
|
754
|
+
Ready for next task: /gsd-quick ${GSD_WS}
|
|
583
755
|
```
|
|
584
756
|
|
|
585
757
|
</process>
|
|
@@ -587,15 +759,17 @@ Ready for next task: /gsd-quick
|
|
|
587
759
|
<success_criteria>
|
|
588
760
|
- [ ] ROADMAP.md validation passes
|
|
589
761
|
- [ ] User provides task description
|
|
590
|
-
- [ ] `--full
|
|
762
|
+
- [ ] `--full`, `--validate`, `--discuss`, and `--research` flags parsed from arguments when present
|
|
763
|
+
- [ ] `--full` sets all booleans (`$FULL_MODE`, `$DISCUSS_MODE`, `$RESEARCH_MODE`, `$VALIDATE_MODE`)
|
|
591
764
|
- [ ] Slug generated (lowercase, hyphens, max 40 chars)
|
|
592
|
-
- [ ]
|
|
593
|
-
- [ ] Directory created at `.planning/quick/
|
|
594
|
-
- [ ] (--discuss) Gray areas identified and presented, decisions captured in `${
|
|
595
|
-
- [ ] `${
|
|
596
|
-
- [ ] (
|
|
597
|
-
- [ ]
|
|
598
|
-
- [ ]
|
|
599
|
-
- [ ]
|
|
765
|
+
- [ ] Quick ID generated (YYMMDD-xxx format, 2s Base36 precision)
|
|
766
|
+
- [ ] Directory created at `.planning/quick/YYMMDD-xxx-slug/`
|
|
767
|
+
- [ ] (--discuss) Gray areas identified and presented, decisions captured in `${quick_id}-CONTEXT.md`
|
|
768
|
+
- [ ] (--research) Research agent spawned, `${quick_id}-RESEARCH.md` created
|
|
769
|
+
- [ ] `${quick_id}-PLAN.md` created by planner (honors CONTEXT.md decisions when --discuss, uses RESEARCH.md findings when --research)
|
|
770
|
+
- [ ] (--validate) Plan checker validates plan, revision loop capped at 2
|
|
771
|
+
- [ ] `${quick_id}-SUMMARY.md` created by executor
|
|
772
|
+
- [ ] (--validate) `${quick_id}-VERIFICATION.md` created by verifier
|
|
773
|
+
- [ ] STATE.md updated with quick task row (Status column when --validate)
|
|
600
774
|
- [ ] Artifacts committed
|
|
601
775
|
</success_criteria>
|