gsd-remix 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +13 -81
  2. package/README.zh-CN.md +13 -57
  3. package/agents/gsd-debugger.md +0 -3
  4. package/agents/gsd-executor.md +5 -11
  5. package/agents/gsd-phase-researcher.md +3 -107
  6. package/agents/gsd-plan-checker.md +0 -61
  7. package/agents/gsd-planner.md +4 -63
  8. package/agents/gsd-roadmapper.md +0 -29
  9. package/agents/gsd-security-auditor.md +62 -114
  10. package/agents/gsd-verifier.md +0 -3
  11. package/bin/install.js +20 -118
  12. package/commands/gsd/complete-milestone.md +0 -22
  13. package/commands/gsd/plan-phase.md +1 -2
  14. package/get-shit-done/bin/gsd-tools.cjs +5 -224
  15. package/get-shit-done/bin/lib/claude-md.cjs +427 -0
  16. package/get-shit-done/bin/lib/config-schema.cjs +2 -12
  17. package/get-shit-done/bin/lib/config.cjs +3 -12
  18. package/get-shit-done/bin/lib/core.cjs +4 -5
  19. package/get-shit-done/bin/lib/init.cjs +0 -163
  20. package/get-shit-done/bin/lib/model-profiles.cjs +12 -18
  21. package/get-shit-done/bin/lib/verify.cjs +0 -66
  22. package/get-shit-done/references/agent-contracts.md +0 -6
  23. package/get-shit-done/references/artifact-types.md +0 -30
  24. package/get-shit-done/references/continuation-format.md +0 -1
  25. package/get-shit-done/references/model-profiles.md +39 -37
  26. package/get-shit-done/references/planning-config.md +7 -12
  27. package/get-shit-done/references/verification-overrides.md +1 -1
  28. package/get-shit-done/templates/README.md +2 -9
  29. package/get-shit-done/templates/claude-md.md +0 -14
  30. package/get-shit-done/templates/config.json +5 -19
  31. package/get-shit-done/workflows/autonomous.md +9 -141
  32. package/get-shit-done/workflows/complete-milestone.md +3 -4
  33. package/get-shit-done/workflows/discuss-phase-assumptions.md +1 -18
  34. package/get-shit-done/workflows/discuss-phase.md +10 -104
  35. package/get-shit-done/workflows/do.md +1 -5
  36. package/get-shit-done/workflows/execute-phase.md +53 -103
  37. package/get-shit-done/workflows/execute-plan.md +4 -4
  38. package/get-shit-done/workflows/health.md +2 -5
  39. package/get-shit-done/workflows/help.md +0 -165
  40. package/get-shit-done/workflows/new-milestone.md +0 -51
  41. package/get-shit-done/workflows/new-project.md +2 -63
  42. package/get-shit-done/workflows/next.md +0 -23
  43. package/get-shit-done/workflows/pause-work.md +7 -15
  44. package/get-shit-done/workflows/plan-phase.md +20 -304
  45. package/get-shit-done/workflows/pr-branch.md +0 -1
  46. package/get-shit-done/workflows/progress.md +1 -68
  47. package/get-shit-done/workflows/quick.md +0 -3
  48. package/get-shit-done/workflows/research-phase.md +0 -1
  49. package/get-shit-done/workflows/settings.md +1 -57
  50. package/get-shit-done/workflows/transition.md +3 -86
  51. package/get-shit-done/workflows/verify-work.md +0 -64
  52. package/package.json +1 -1
  53. package/scripts/build-hooks.js +0 -2
  54. package/sdk/prompts/agents/gsd-executor.md +2 -0
  55. package/sdk/prompts/agents/gsd-plan-checker.md +0 -3
  56. package/sdk/prompts/agents/gsd-roadmapper.md +0 -29
  57. package/sdk/src/config.ts +4 -5
  58. package/sdk/src/golden/golden-integration-covered.ts +0 -2
  59. package/sdk/src/golden/golden-policy.ts +1 -1
  60. package/sdk/src/golden/golden.integration.test.ts +0 -27
  61. package/sdk/src/golden/read-only-golden-rows.ts +0 -15
  62. package/sdk/src/query/QUERY-HANDLERS.md +3 -34
  63. package/sdk/src/query/claude-md.ts +421 -0
  64. package/sdk/src/query/commit.test.ts +155 -1
  65. package/sdk/src/query/commit.ts +71 -17
  66. package/sdk/src/query/config-gates.test.ts +1 -2
  67. package/sdk/src/query/config-gates.ts +1 -5
  68. package/sdk/src/query/config-mutation.test.ts +0 -1
  69. package/sdk/src/query/config-mutation.ts +5 -6
  70. package/sdk/src/query/config-query.test.ts +2 -2
  71. package/sdk/src/query/config-query.ts +12 -18
  72. package/sdk/src/query/decomposed-handlers.test.ts +0 -64
  73. package/sdk/src/query/index.ts +4 -68
  74. package/sdk/src/query/init.test.ts +0 -64
  75. package/sdk/src/query/init.ts +0 -189
  76. package/sdk/src/query/normalize-query-command.ts +0 -2
  77. package/sdk/src/query/profile.test.ts +0 -43
  78. package/sdk/src/query/profile.ts +1 -141
  79. package/sdk/src/query/state-mutation.ts +18 -0
  80. package/sdk/src/runtime-health.ts +3 -3
  81. package/agents/gsd-ai-researcher.md +0 -133
  82. package/agents/gsd-doc-classifier.md +0 -168
  83. package/agents/gsd-doc-synthesizer.md +0 -204
  84. package/agents/gsd-doc-verifier.md +0 -217
  85. package/agents/gsd-doc-writer.md +0 -615
  86. package/agents/gsd-domain-researcher.md +0 -153
  87. package/agents/gsd-eval-auditor.md +0 -191
  88. package/agents/gsd-eval-planner.md +0 -154
  89. package/agents/gsd-framework-selector.md +0 -160
  90. package/agents/gsd-intel-updater.md +0 -334
  91. package/agents/gsd-nyquist-auditor.md +0 -203
  92. package/agents/gsd-ui-auditor.md +0 -495
  93. package/agents/gsd-ui-checker.md +0 -309
  94. package/agents/gsd-ui-researcher.md +0 -380
  95. package/agents/gsd-user-profiler.md +0 -171
  96. package/commands/gsd/ai-integration-phase.md +0 -36
  97. package/commands/gsd/analyze-dependencies.md +0 -34
  98. package/commands/gsd/audit-fix.md +0 -33
  99. package/commands/gsd/audit-milestone.md +0 -36
  100. package/commands/gsd/audit-uat.md +0 -24
  101. package/commands/gsd/docs-update.md +0 -48
  102. package/commands/gsd/eval-review.md +0 -32
  103. package/commands/gsd/explore.md +0 -27
  104. package/commands/gsd/extract_learnings.md +0 -22
  105. package/commands/gsd/forensics.md +0 -56
  106. package/commands/gsd/from-gsd2.md +0 -47
  107. package/commands/gsd/graphify.md +0 -201
  108. package/commands/gsd/import.md +0 -37
  109. package/commands/gsd/inbox.md +0 -38
  110. package/commands/gsd/ingest-docs.md +0 -42
  111. package/commands/gsd/intel.md +0 -179
  112. package/commands/gsd/join-discord.md +0 -19
  113. package/commands/gsd/list-phase-assumptions.md +0 -46
  114. package/commands/gsd/list-workspaces.md +0 -19
  115. package/commands/gsd/manager.md +0 -40
  116. package/commands/gsd/milestone-summary.md +0 -51
  117. package/commands/gsd/new-workspace.md +0 -44
  118. package/commands/gsd/plan-milestone-gaps.md +0 -34
  119. package/commands/gsd/plan-review-convergence.md +0 -52
  120. package/commands/gsd/plant-seed.md +0 -28
  121. package/commands/gsd/profile-user.md +0 -46
  122. package/commands/gsd/reapply-patches.md +0 -331
  123. package/commands/gsd/remove-workspace.md +0 -26
  124. package/commands/gsd/review.md +0 -40
  125. package/commands/gsd/scan.md +0 -26
  126. package/commands/gsd/secure-phase.md +0 -35
  127. package/commands/gsd/session-report.md +0 -19
  128. package/commands/gsd/set-profile.md +0 -12
  129. package/commands/gsd/ship.md +0 -23
  130. package/commands/gsd/sketch-wrap-up.md +0 -31
  131. package/commands/gsd/sketch.md +0 -49
  132. package/commands/gsd/spec-phase.md +0 -62
  133. package/commands/gsd/spike-wrap-up.md +0 -31
  134. package/commands/gsd/spike.md +0 -46
  135. package/commands/gsd/stats.md +0 -18
  136. package/commands/gsd/sync-skills.md +0 -19
  137. package/commands/gsd/thread.md +0 -227
  138. package/commands/gsd/ui-phase.md +0 -34
  139. package/commands/gsd/ui-review.md +0 -32
  140. package/commands/gsd/ultraplan-phase.md +0 -33
  141. package/commands/gsd/update.md +0 -37
  142. package/commands/gsd/validate-phase.md +0 -35
  143. package/commands/gsd/workstreams.md +0 -69
  144. package/get-shit-done/bin/lib/docs.cjs +0 -267
  145. package/get-shit-done/bin/lib/graphify.cjs +0 -494
  146. package/get-shit-done/bin/lib/gsd2-import.cjs +0 -511
  147. package/get-shit-done/bin/lib/intel.cjs +0 -639
  148. package/get-shit-done/bin/lib/profile-output.cjs +0 -1080
  149. package/get-shit-done/bin/lib/profile-pipeline.cjs +0 -539
  150. package/get-shit-done/bin/lib/workstream.cjs +0 -495
  151. package/get-shit-done/references/ai-evals.md +0 -156
  152. package/get-shit-done/references/ai-frameworks.md +0 -186
  153. package/get-shit-done/references/doc-conflict-engine.md +0 -91
  154. package/get-shit-done/references/model-profile-resolution.md +0 -38
  155. package/get-shit-done/references/planner-reviews.md +0 -39
  156. package/get-shit-done/references/sketch-interactivity.md +0 -41
  157. package/get-shit-done/references/sketch-theme-system.md +0 -94
  158. package/get-shit-done/references/sketch-tooling.md +0 -45
  159. package/get-shit-done/references/sketch-variant-patterns.md +0 -81
  160. package/get-shit-done/references/thinking-models-debug.md +0 -44
  161. package/get-shit-done/references/thinking-models-execution.md +0 -50
  162. package/get-shit-done/references/thinking-models-planning.md +0 -62
  163. package/get-shit-done/references/thinking-models-research.md +0 -50
  164. package/get-shit-done/references/thinking-models-verification.md +0 -55
  165. package/get-shit-done/references/thinking-partner.md +0 -96
  166. package/get-shit-done/references/user-profiling.md +0 -681
  167. package/get-shit-done/references/workstream-flag.md +0 -111
  168. package/get-shit-done/templates/AI-SPEC.md +0 -246
  169. package/get-shit-done/templates/SECURITY.md +0 -61
  170. package/get-shit-done/templates/UI-SPEC.md +0 -100
  171. package/get-shit-done/templates/VALIDATION.md +0 -76
  172. package/get-shit-done/templates/dev-preferences.md +0 -21
  173. package/get-shit-done/templates/user-profile.md +0 -146
  174. package/get-shit-done/workflows/ai-integration-phase.md +0 -284
  175. package/get-shit-done/workflows/analyze-dependencies.md +0 -96
  176. package/get-shit-done/workflows/audit-fix.md +0 -175
  177. package/get-shit-done/workflows/audit-milestone.md +0 -340
  178. package/get-shit-done/workflows/audit-uat.md +0 -109
  179. package/get-shit-done/workflows/docs-update.md +0 -1155
  180. package/get-shit-done/workflows/eval-review.md +0 -155
  181. package/get-shit-done/workflows/explore.md +0 -141
  182. package/get-shit-done/workflows/extract_learnings.md +0 -242
  183. package/get-shit-done/workflows/forensics.md +0 -265
  184. package/get-shit-done/workflows/import.md +0 -246
  185. package/get-shit-done/workflows/inbox.md +0 -387
  186. package/get-shit-done/workflows/ingest-docs.md +0 -328
  187. package/get-shit-done/workflows/list-phase-assumptions.md +0 -178
  188. package/get-shit-done/workflows/list-workspaces.md +0 -56
  189. package/get-shit-done/workflows/manager.md +0 -365
  190. package/get-shit-done/workflows/milestone-summary.md +0 -223
  191. package/get-shit-done/workflows/new-workspace.md +0 -239
  192. package/get-shit-done/workflows/plan-milestone-gaps.md +0 -273
  193. package/get-shit-done/workflows/plan-review-convergence.md +0 -254
  194. package/get-shit-done/workflows/plant-seed.md +0 -172
  195. package/get-shit-done/workflows/profile-user.md +0 -452
  196. package/get-shit-done/workflows/remove-workspace.md +0 -92
  197. package/get-shit-done/workflows/review.md +0 -344
  198. package/get-shit-done/workflows/scan.md +0 -102
  199. package/get-shit-done/workflows/secure-phase.md +0 -166
  200. package/get-shit-done/workflows/session-report.md +0 -146
  201. package/get-shit-done/workflows/ship.md +0 -302
  202. package/get-shit-done/workflows/sketch-wrap-up.md +0 -283
  203. package/get-shit-done/workflows/sketch.md +0 -286
  204. package/get-shit-done/workflows/spec-phase.md +0 -262
  205. package/get-shit-done/workflows/spike-wrap-up.md +0 -281
  206. package/get-shit-done/workflows/spike.md +0 -362
  207. package/get-shit-done/workflows/stats.md +0 -60
  208. package/get-shit-done/workflows/sync-skills.md +0 -182
  209. package/get-shit-done/workflows/ui-phase.md +0 -323
  210. package/get-shit-done/workflows/ui-review.md +0 -190
  211. package/get-shit-done/workflows/ultraplan-phase.md +0 -189
  212. package/get-shit-done/workflows/update.md +0 -587
  213. package/get-shit-done/workflows/validate-phase.md +0 -176
  214. package/hooks/dist/gsd-check-update-worker.js +0 -108
  215. package/hooks/dist/gsd-check-update.js +0 -63
  216. package/hooks/gsd-check-update-worker.js +0 -108
  217. package/hooks/gsd-check-update.js +0 -63
  218. package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +0 -3
  219. package/sdk/src/query/docs-init.ts +0 -257
  220. package/sdk/src/query/intel.test.ts +0 -90
  221. package/sdk/src/query/intel.ts +0 -404
  222. package/sdk/src/query/profile-extract-messages.ts +0 -247
  223. package/sdk/src/query/profile-output.ts +0 -908
  224. package/sdk/src/query/profile-questionnaire-data.ts +0 -181
  225. package/sdk/src/query/profile-sample.ts +0 -184
  226. package/sdk/src/query/profile-scan-sessions.ts +0 -174
  227. package/sdk/src/query/workspace.test.ts +0 -119
  228. package/sdk/src/query/workspace.ts +0 -131
  229. package/sdk/src/query/workstream.test.ts +0 -51
  230. package/sdk/src/query/workstream.ts +0 -434
@@ -1,328 +0,0 @@
1
- # Ingest Docs Workflow
2
-
3
- Scan a repo for mixed planning documents (ADR, PRD, SPEC, DOC), synthesize them into a consolidated context, and bootstrap or merge into `.planning/`.
4
-
5
- - `[path]` — optional target directory to scan (defaults to repo root)
6
- - `--mode new|merge` — override auto-detect (defaults: `new` if `.planning/` absent, `merge` if present)
7
- - `--manifest <file>` — YAML file listing `{path, type, precedence?}` per doc; overrides heuristic classification
8
- - `--resolve auto|interactive` — conflict resolution (v1: only `auto` is supported; `interactive` is reserved)
9
-
10
- ---
11
-
12
- <step name="banner">
13
-
14
- Display the stage banner:
15
-
16
- ```
17
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
18
- GSD ► INGEST DOCS
19
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
20
- ```
21
-
22
- </step>
23
-
24
- <step name="parse_arguments">
25
-
26
- Parse `$ARGUMENTS`:
27
-
28
- - First positional token (if not a flag) → `SCAN_PATH` (default: `.`)
29
- - `--mode new|merge` → `MODE` (default: auto-detect)
30
- - `--manifest <file>` → `MANIFEST_PATH` (optional)
31
- - `--resolve auto|interactive` → `RESOLVE_MODE` (default: `auto`; reject `interactive` in v1 with message "interactive resolution is planned for a future release")
32
-
33
- **Validate paths:**
34
-
35
- ```bash
36
- case "{SCAN_PATH}" in *..*) echo "SECURITY_ERROR: path contains traversal sequence"; exit 1 ;; esac
37
- test -d "{SCAN_PATH}" || echo "PATH_NOT_FOUND"
38
- if [ -n "{MANIFEST_PATH}" ]; then
39
- case "{MANIFEST_PATH}" in *..*) echo "SECURITY_ERROR: manifest path contains traversal"; exit 1 ;; esac
40
- test -f "{MANIFEST_PATH}" || echo "MANIFEST_NOT_FOUND"
41
- fi
42
- ```
43
-
44
- **Containment (required):** After resolving `SCAN_PATH` and `MANIFEST_PATH` relative to the repo root, canonicalize each with `realpath` (or platform equivalent) and assert the result is under `realpath("$REPO_ROOT")`. Reject absolute paths outside the repo (e.g. `/tmp`, `C:\Windows`) even when they do not contain `..`.
45
-
46
- If `PATH_NOT_FOUND` or `MANIFEST_NOT_FOUND`: display error and exit.
47
-
48
- </step>
49
-
50
- <step name="init_and_mode_detect">
51
-
52
- Run the init query:
53
-
54
- ```bash
55
- INIT=$(gsd-remix-sdk query init.ingest-docs)
56
- ```
57
-
58
- Parse `project_exists`, `planning_exists`, `has_git`, `project_path` from INIT.
59
-
60
- **Auto-detect MODE** if not set:
61
- - `planning_exists: true` → `MODE=merge`
62
- - `planning_exists: false` → `MODE=new`
63
-
64
- If user passed `--mode new` but `.planning/` already exists: display warning and require explicit confirm via `AskUserQuestion` (approve-revise-abort from `references/gate-prompts.md`) before overwriting.
65
-
66
- If `has_git: false` and `MODE=new`: initialize git:
67
- ```bash
68
- git init
69
- ```
70
-
71
- **Detect runtime** using the same pattern as `new-project.md`:
72
- - execution_context path `/.codex/` → `RUNTIME=codex`
73
- - `/.gemini/` → `RUNTIME=gemini`
74
- - `/.opencode/` or `/.config/opencode/` → `RUNTIME=opencode`
75
- - else → `RUNTIME=claude`
76
-
77
- Fall back to env vars (`CODEX_HOME`, `GEMINI_CONFIG_DIR`, `OPENCODE_CONFIG_DIR`) if execution_context is unavailable.
78
-
79
- </step>
80
-
81
- <step name="discover_docs">
82
-
83
- Build the doc list from three sources, in order:
84
-
85
- **1. Manifest (if provided)** — authoritative:
86
-
87
- Read `MANIFEST_PATH`. Expected YAML shape:
88
-
89
- ```yaml
90
- docs:
91
- - path: docs/adr/0001-db.md
92
- type: ADR
93
- precedence: 0 # optional, lower = higher precedence
94
- - path: docs/prd/auth.md
95
- type: PRD
96
- ```
97
-
98
- Each entry provides `path` (required, relative to repo root) + `type` (required, one of ADR|PRD|SPEC|DOC) + `precedence` (optional integer).
99
-
100
- **2. Directory conventions** (skipped when manifest is provided):
101
-
102
- ```bash
103
- # ADRs
104
- find {SCAN_PATH} -type f \( -path '*/adr/*' -o -path '*/adrs/*' -o -name 'ADR-*.md' -o -regex '.*/[0-9]\{4\}-.*\.md' \) 2>/dev/null
105
-
106
- # PRDs
107
- find {SCAN_PATH} -type f \( -path '*/prd/*' -o -path '*/prds/*' -o -name 'PRD-*.md' \) 2>/dev/null
108
-
109
- # SPECs / RFCs
110
- find {SCAN_PATH} -type f \( -path '*/spec/*' -o -path '*/specs/*' -o -path '*/rfc/*' -o -path '*/rfcs/*' -o -name 'SPEC-*.md' -o -name 'RFC-*.md' \) 2>/dev/null
111
-
112
- # Generic docs (fall-through candidates)
113
- find {SCAN_PATH} -type f -path '*/docs/*' -name '*.md' 2>/dev/null
114
- ```
115
-
116
- De-duplicate the union (a file matched by multiple patterns is one doc).
117
-
118
- **3. Content heuristics** (run during classification, not here) — the classifier handles frontmatter `type:` and H1 inspection for docs that didn't match a convention.
119
-
120
- **Cap:** hard limit of 50 docs per invocation (documented v1 constraint). If the discovered set exceeds 50:
121
-
122
- ```
123
- GSD > Discovered {N} docs, which exceeds the v1 cap of 50.
124
- Use --manifest to narrow the set to ≤ 50 files, or run
125
- /gsd-ingest-docs again with a narrower <path>.
126
- ```
127
-
128
- Exit without proceeding.
129
-
130
- **Display discovered set** and request approval (see `references/gate-prompts.md` — `yes-no-pick` pattern works; or `approve-revise-abort`):
131
-
132
- ```
133
- Discovered {N} documents:
134
- {N} ADR | {N} PRD | {N} SPEC | {N} DOC | {N} unclassified
135
-
136
- docs/adr/0001-architecture.md [ADR] (from manifest|directory|heuristic)
137
- docs/adr/0002-database.md [ADR] (directory)
138
- docs/prd/auth.md [PRD] (manifest)
139
- ...
140
- ```
141
-
142
- **Text mode:** apply the same `--text`/`text_mode` rule as other workflows — replace `AskUserQuestion` with a numbered list.
143
-
144
- Use `AskUserQuestion` (approve-revise-abort):
145
- - question: "Proceed with classification of these {N} documents?"
146
- - header: "Approve?"
147
- - options: Approve | Revise | Abort
148
-
149
- On Abort: exit cleanly with "Ingest cancelled."
150
- On Revise: exit with guidance to re-run with `--manifest` or a narrower path.
151
-
152
- </step>
153
-
154
- <step name="classify_parallel">
155
-
156
- Create staging directory:
157
-
158
- ```bash
159
- mkdir -p .planning/intel/classifications/
160
- ```
161
-
162
- For each discovered doc, spawn `gsd-doc-classifier` in parallel. In Claude Code, issue all Task calls in a single message with multiple tool uses so the harness runs them concurrently. For Copilot / sequential runtimes, fall back to sequential dispatch.
163
-
164
- Per-spawn prompt fields:
165
- - `FILEPATH` — absolute path to the doc
166
- - `OUTPUT_DIR` — `.planning/intel/classifications/`
167
- - `MANIFEST_TYPE` — the type from the manifest if present, else omit
168
- - `MANIFEST_PRECEDENCE` — the precedence integer from the manifest if present, else omit
169
- - `<required_reading>` — `agents/gsd-doc-classifier.md` (the agent definition itself)
170
-
171
- Collect the one-line confirmations from each classifier. If any classifier errors out, surface the error and abort without touching `.planning/` further.
172
-
173
- </step>
174
-
175
- <step name="synthesize">
176
-
177
- Spawn `gsd-doc-synthesizer` once:
178
-
179
- ```
180
- Task({
181
- subagent_type: "gsd-doc-synthesizer",
182
- prompt: "
183
- CLASSIFICATIONS_DIR: .planning/intel/classifications/
184
- INTEL_DIR: .planning/intel/
185
- CONFLICTS_PATH: .planning/INGEST-CONFLICTS.md
186
- MODE: {MODE}
187
- EXISTING_CONTEXT: {paths to existing .planning files if MODE=merge, else empty}
188
- PRECEDENCE: {array from manifest defaults or default ['ADR','SPEC','PRD','DOC']}
189
-
190
- <required_reading>
191
- - agents/gsd-doc-synthesizer.md
192
- - get-shit-done/references/doc-conflict-engine.md
193
- </required_reading>
194
- "
195
- })
196
- ```
197
-
198
- The synthesizer writes:
199
- - `.planning/intel/decisions.md`, `.planning/intel/requirements.md`, `.planning/intel/constraints.md`, `.planning/intel/context.md`
200
- - `.planning/intel/SYNTHESIS.md`
201
- - `.planning/INGEST-CONFLICTS.md`
202
-
203
- </step>
204
-
205
- <step name="conflict_gate">
206
-
207
- Read `.planning/INGEST-CONFLICTS.md`. Count entries in each bucket (the synthesizer always writes the three-bucket header; parse the `### BLOCKERS ({N})`, `### WARNINGS ({N})`, `### INFO ({N})` lines).
208
-
209
- Apply the safety semantics from `references/doc-conflict-engine.md`. Operation noun: `ingest`.
210
-
211
- **If BLOCKERS > 0:**
212
-
213
- Render the report to the user, then display:
214
-
215
- ```
216
- GSD > BLOCKED: {N} blockers must be resolved before ingest can proceed.
217
- ```
218
-
219
- Exit WITHOUT writing PROJECT.md, REQUIREMENTS.md, ROADMAP.md, or STATE.md. The staging intel files remain for inspection. The safety gate holds — no destination files are written when blockers exist.
220
-
221
- **If WARNINGS > 0 and BLOCKERS = 0:**
222
-
223
- Render the report, then ask via AskUserQuestion (approve-revise-abort):
224
- - question: "Review the competing variants above. Resolve manually and proceed, or abort?"
225
- - header: "Approve?"
226
- - options: Approve | Abort
227
-
228
- On Abort: exit cleanly with "Ingest cancelled. Staged intel preserved at `.planning/intel/`."
229
-
230
- **If BLOCKERS = 0 and WARNINGS = 0:**
231
-
232
- Proceed to routing silently, or optionally display `GSD > No conflicts. Auto-resolved: {N}.`
233
-
234
- </step>
235
-
236
- <step name="route_new_mode">
237
-
238
- **Applies only when MODE=new.**
239
-
240
- Audit PROJECT.md field requirements that `gsd-roadmapper` expects. For fields derivable from `.planning/intel/SYNTHESIS.md` (project scope, goals/non-goals, constraints, locked decisions), synthesize from the intel. For fields NOT derivable (project name, developer-facing success metric, target runtime), prompt via `AskUserQuestion` one at a time — minimal question set, no interrogation.
241
-
242
- Delegate to `gsd-roadmapper`:
243
-
244
- ```
245
- Task({
246
- subagent_type: "gsd-roadmapper",
247
- prompt: "
248
- Mode: new-project-from-ingest
249
- Intel: .planning/intel/SYNTHESIS.md (entry point)
250
- Per-type intel: .planning/intel/{decisions,requirements,constraints,context}.md
251
- User-supplied fields: {collected in previous step}
252
-
253
- Produce:
254
- - .planning/PROJECT.md
255
- - .planning/REQUIREMENTS.md
256
- - .planning/ROADMAP.md
257
- - .planning/STATE.md
258
-
259
- Treat ADR-locked decisions as locked in PROJECT.md <decisions> blocks.
260
- "
261
- })
262
- ```
263
-
264
- </step>
265
-
266
- <step name="route_merge_mode">
267
-
268
- **Applies only when MODE=merge.**
269
-
270
- Load existing `.planning/ROADMAP.md`, `.planning/PROJECT.md`, `.planning/REQUIREMENTS.md`, all `CONTEXT.md` files under `.planning/phases/`.
271
-
272
- The synthesizer has already hard-blocked on any LOCKED-in-ingest vs LOCKED-in-existing contradiction; if we reach this step, no such blockers remain.
273
-
274
- Plan the merge:
275
- - **New requirements** from synthesized `.planning/intel/requirements.md` that do not overlap existing REQUIREMENTS.md entries → append to REQUIREMENTS.md
276
- - **New decisions** from synthesized `.planning/intel/decisions.md` that do not overlap existing CONTEXT.md `<decisions>` blocks → write to a new phase's CONTEXT.md or append to the next milestone's requirements
277
- - **New scope** → derive phase additions following the `new-milestone.md` pattern; append phases to `.planning/ROADMAP.md`
278
-
279
- Preview the merge diff to the user and gate via approve-revise-abort before writing.
280
-
281
- </step>
282
-
283
- <step name="finalize">
284
-
285
- Commit the ingest results:
286
-
287
- ```bash
288
- gsd-remix-sdk query commit "docs: ingest {N} docs from {SCAN_PATH} (#2387)" \
289
- .planning/PROJECT.md \
290
- .planning/REQUIREMENTS.md \
291
- .planning/ROADMAP.md \
292
- .planning/STATE.md \
293
- .planning/intel/ \
294
- .planning/INGEST-CONFLICTS.md
295
- ```
296
-
297
- (For merge mode, substitute the actual set of modified files.)
298
-
299
- Display completion:
300
-
301
- ```
302
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
303
- GSD ► INGEST DOCS COMPLETE
304
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
305
- ```
306
-
307
- Show:
308
- - Mode ran (new or merge)
309
- - Docs ingested (count + type breakdown)
310
- - Decisions locked, requirements created, constraints captured
311
- - Conflict report path (`.planning/INGEST-CONFLICTS.md`)
312
- - Next step: `/gsd-plan-phase 1` (new mode) or `/gsd-plan-phase N` (merge, pointing at the first newly-added phase)
313
-
314
- </step>
315
-
316
- ---
317
-
318
- ## Anti-Patterns
319
-
320
- Do NOT:
321
- - Violate the shared conflict-engine contract in `references/doc-conflict-engine.md` (no markdown tables, no new severity labels, no bypass of the BLOCKER gate)
322
- - Write PROJECT.md, REQUIREMENTS.md, ROADMAP.md, or STATE.md when BLOCKERs exist in the conflict report
323
- - Skip the 50-doc cap — larger sets must use `--manifest` to narrow the scope
324
- - Auto-resolve LOCKED-vs-LOCKED ADR contradictions — those are BLOCKERs in both modes
325
- - Merge competing PRD acceptance variants into a combined criterion — preserve all variants for user resolution
326
- - Bypass the discovery approval gate — users must see the classified doc list before classifiers spawn
327
- - Skip path validation on `SCAN_PATH` or `MANIFEST_PATH`
328
- - Implement `--resolve interactive` in this v1 — the flag is reserved; reject with a future-release message
@@ -1,178 +0,0 @@
1
- <purpose>
2
- Surface Claude's assumptions about a phase before planning, enabling users to correct misconceptions early.
3
-
4
- Key difference from discuss-phase: This is ANALYSIS of what Claude thinks, not INTAKE of what user knows. No file output - purely conversational to prompt discussion.
5
- </purpose>
6
-
7
- <process>
8
-
9
- <step name="validate_phase" priority="first">
10
- Phase number: $ARGUMENTS (required)
11
-
12
- **If argument missing:**
13
-
14
- ```
15
- Error: Phase number required.
16
-
17
- Usage: /gsd-list-phase-assumptions [phase-number]
18
- Example: /gsd-list-phase-assumptions 3
19
- ```
20
-
21
- Exit workflow.
22
-
23
- **If argument provided:**
24
- Validate phase exists in roadmap:
25
-
26
- ```bash
27
- cat .planning/ROADMAP.md | grep -i "Phase ${PHASE}"
28
- ```
29
-
30
- **If phase not found:**
31
-
32
- ```
33
- Error: Phase ${PHASE} not found in roadmap.
34
-
35
- Available phases:
36
- [list phases from roadmap]
37
- ```
38
-
39
- Exit workflow.
40
-
41
- **If phase found:**
42
- Parse phase details from roadmap:
43
-
44
- - Phase number
45
- - Phase name
46
- - Phase description/goal
47
- - Any scope details mentioned
48
-
49
- Continue to analyze_phase.
50
- </step>
51
-
52
- <step name="analyze_phase">
53
- Based on roadmap description and project context, identify assumptions across five areas:
54
-
55
- **1. Technical Approach:**
56
- What libraries, frameworks, patterns, or tools would Claude use?
57
- - "I'd use X library because..."
58
- - "I'd follow Y pattern because..."
59
- - "I'd structure this as Z because..."
60
-
61
- **2. Implementation Order:**
62
- What would Claude build first, second, third?
63
- - "I'd start with X because it's foundational"
64
- - "Then Y because it depends on X"
65
- - "Finally Z because..."
66
-
67
- **3. Scope Boundaries:**
68
- What's included vs excluded in Claude's interpretation?
69
- - "This phase includes: A, B, C"
70
- - "This phase does NOT include: D, E, F"
71
- - "Boundary ambiguities: G could go either way"
72
-
73
- **4. Risk Areas:**
74
- Where does Claude expect complexity or challenges?
75
- - "The tricky part is X because..."
76
- - "Potential issues: Y, Z"
77
- - "I'd watch out for..."
78
-
79
- **5. Dependencies:**
80
- What does Claude assume exists or needs to be in place?
81
- - "This assumes X from previous phases"
82
- - "External dependencies: Y, Z"
83
- - "This will be consumed by..."
84
-
85
- Be honest about uncertainty. Mark assumptions with confidence levels:
86
- - "Fairly confident: ..." (clear from roadmap)
87
- - "Assuming: ..." (reasonable inference)
88
- - "Unclear: ..." (could go multiple ways)
89
- </step>
90
-
91
- <step name="present_assumptions">
92
- Present assumptions in a clear, scannable format:
93
-
94
- ```
95
- ## My Assumptions for Phase ${PHASE}: ${PHASE_NAME}
96
-
97
- ### Technical Approach
98
- [List assumptions about how to implement]
99
-
100
- ### Implementation Order
101
- [List assumptions about sequencing]
102
-
103
- ### Scope Boundaries
104
- **In scope:** [what's included]
105
- **Out of scope:** [what's excluded]
106
- **Ambiguous:** [what could go either way]
107
-
108
- ### Risk Areas
109
- [List anticipated challenges]
110
-
111
- ### Dependencies
112
- **From prior phases:** [what's needed]
113
- **External:** [third-party needs]
114
- **Feeds into:** [what future phases need from this]
115
-
116
- ---
117
-
118
- **What do you think?**
119
-
120
- Are these assumptions accurate? Let me know:
121
- - What I got right
122
- - What I got wrong
123
- - What I'm missing
124
- ```
125
-
126
- Wait for user response.
127
- </step>
128
-
129
- <step name="gather_feedback">
130
- **If user provides corrections:**
131
-
132
- Acknowledge the corrections:
133
-
134
- ```
135
- Key corrections:
136
- - [correction 1]
137
- - [correction 2]
138
-
139
- This changes my understanding significantly. [Summarize new understanding]
140
- ```
141
-
142
- **If user confirms assumptions:**
143
-
144
- ```
145
- Assumptions validated.
146
- ```
147
-
148
- Continue to offer_next.
149
- </step>
150
-
151
- <step name="offer_next">
152
- Present next steps:
153
-
154
- ```
155
- What's next?
156
- 1. Discuss context (/gsd-discuss-phase ${PHASE}) - Let me ask you questions to build comprehensive context
157
- 2. Plan this phase (/gsd-plan-phase ${PHASE}) - Create detailed execution plans
158
- 3. Re-examine assumptions - I'll analyze again with your corrections
159
- 4. Done for now
160
- ```
161
-
162
- Wait for user selection.
163
-
164
- If "Discuss context": Note that CONTEXT.md will incorporate any corrections discussed here
165
- If "Plan this phase": Proceed knowing assumptions are understood
166
- If "Re-examine": Return to analyze_phase with updated understanding
167
- </step>
168
-
169
- </process>
170
-
171
- <success_criteria>
172
- - Phase number validated against roadmap
173
- - Assumptions surfaced across five areas: technical approach, implementation order, scope, risks, dependencies
174
- - Confidence levels marked where appropriate
175
- - "What do you think?" prompt presented
176
- - User feedback acknowledged
177
- - Clear next steps offered
178
- </success_criteria>
@@ -1,56 +0,0 @@
1
- <purpose>
2
- List all GSD workspaces found in ~/gsd-workspaces/ with their status.
3
- </purpose>
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=$(gsd-remix-sdk query 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>