gsd-code-first 1.0.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 (238) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja-JP.md +834 -0
  3. package/README.ko-KR.md +823 -0
  4. package/README.md +937 -0
  5. package/README.pt-BR.md +452 -0
  6. package/README.zh-CN.md +800 -0
  7. package/agents/gsd-advisor-researcher.md +104 -0
  8. package/agents/gsd-annotator.md +148 -0
  9. package/agents/gsd-arc-executor.md +537 -0
  10. package/agents/gsd-arc-planner.md +374 -0
  11. package/agents/gsd-assumptions-analyzer.md +105 -0
  12. package/agents/gsd-code-planner.md +155 -0
  13. package/agents/gsd-codebase-mapper.md +770 -0
  14. package/agents/gsd-debugger.md +1373 -0
  15. package/agents/gsd-executor.md +509 -0
  16. package/agents/gsd-integration-checker.md +443 -0
  17. package/agents/gsd-nyquist-auditor.md +176 -0
  18. package/agents/gsd-phase-researcher.md +698 -0
  19. package/agents/gsd-plan-checker.md +773 -0
  20. package/agents/gsd-planner.md +1354 -0
  21. package/agents/gsd-project-researcher.md +654 -0
  22. package/agents/gsd-prototyper.md +161 -0
  23. package/agents/gsd-research-synthesizer.md +247 -0
  24. package/agents/gsd-roadmapper.md +679 -0
  25. package/agents/gsd-ui-auditor.md +439 -0
  26. package/agents/gsd-ui-checker.md +300 -0
  27. package/agents/gsd-ui-researcher.md +357 -0
  28. package/agents/gsd-user-profiler.md +171 -0
  29. package/agents/gsd-verifier.md +700 -0
  30. package/bin/install.js +5009 -0
  31. package/commands/gsd/add-backlog.md +76 -0
  32. package/commands/gsd/add-phase.md +43 -0
  33. package/commands/gsd/add-tests.md +41 -0
  34. package/commands/gsd/add-todo.md +47 -0
  35. package/commands/gsd/annotate.md +54 -0
  36. package/commands/gsd/audit-milestone.md +36 -0
  37. package/commands/gsd/audit-uat.md +24 -0
  38. package/commands/gsd/autonomous.md +41 -0
  39. package/commands/gsd/check-todos.md +45 -0
  40. package/commands/gsd/cleanup.md +18 -0
  41. package/commands/gsd/complete-milestone.md +136 -0
  42. package/commands/gsd/debug.md +173 -0
  43. package/commands/gsd/deep-plan.md +52 -0
  44. package/commands/gsd/discuss-phase.md +64 -0
  45. package/commands/gsd/do.md +30 -0
  46. package/commands/gsd/execute-phase.md +59 -0
  47. package/commands/gsd/extract-plan.md +35 -0
  48. package/commands/gsd/fast.md +30 -0
  49. package/commands/gsd/forensics.md +56 -0
  50. package/commands/gsd/health.md +22 -0
  51. package/commands/gsd/help.md +22 -0
  52. package/commands/gsd/insert-phase.md +32 -0
  53. package/commands/gsd/iterate.md +124 -0
  54. package/commands/gsd/join-discord.md +18 -0
  55. package/commands/gsd/list-phase-assumptions.md +46 -0
  56. package/commands/gsd/list-workspaces.md +19 -0
  57. package/commands/gsd/manager.md +39 -0
  58. package/commands/gsd/map-codebase.md +71 -0
  59. package/commands/gsd/milestone-summary.md +51 -0
  60. package/commands/gsd/new-milestone.md +44 -0
  61. package/commands/gsd/new-project.md +42 -0
  62. package/commands/gsd/new-workspace.md +44 -0
  63. package/commands/gsd/next.md +24 -0
  64. package/commands/gsd/note.md +34 -0
  65. package/commands/gsd/pause-work.md +38 -0
  66. package/commands/gsd/plan-milestone-gaps.md +34 -0
  67. package/commands/gsd/plan-phase.md +47 -0
  68. package/commands/gsd/plant-seed.md +28 -0
  69. package/commands/gsd/pr-branch.md +25 -0
  70. package/commands/gsd/profile-user.md +46 -0
  71. package/commands/gsd/progress.md +24 -0
  72. package/commands/gsd/prototype.md +56 -0
  73. package/commands/gsd/quick.md +47 -0
  74. package/commands/gsd/reapply-patches.md +123 -0
  75. package/commands/gsd/remove-phase.md +31 -0
  76. package/commands/gsd/remove-workspace.md +26 -0
  77. package/commands/gsd/research-phase.md +195 -0
  78. package/commands/gsd/resume-work.md +40 -0
  79. package/commands/gsd/review-backlog.md +61 -0
  80. package/commands/gsd/review.md +37 -0
  81. package/commands/gsd/session-report.md +19 -0
  82. package/commands/gsd/set-mode.md +41 -0
  83. package/commands/gsd/set-profile.md +12 -0
  84. package/commands/gsd/settings.md +36 -0
  85. package/commands/gsd/ship.md +23 -0
  86. package/commands/gsd/stats.md +18 -0
  87. package/commands/gsd/thread.md +127 -0
  88. package/commands/gsd/ui-phase.md +34 -0
  89. package/commands/gsd/ui-review.md +32 -0
  90. package/commands/gsd/update.md +37 -0
  91. package/commands/gsd/validate-phase.md +35 -0
  92. package/commands/gsd/verify-work.md +38 -0
  93. package/commands/gsd/workstreams.md +63 -0
  94. package/get-shit-done/bin/gsd-tools.cjs +946 -0
  95. package/get-shit-done/bin/lib/arc-scanner.cjs +341 -0
  96. package/get-shit-done/bin/lib/commands.cjs +959 -0
  97. package/get-shit-done/bin/lib/config.cjs +466 -0
  98. package/get-shit-done/bin/lib/core.cjs +1230 -0
  99. package/get-shit-done/bin/lib/frontmatter.cjs +336 -0
  100. package/get-shit-done/bin/lib/init.cjs +1442 -0
  101. package/get-shit-done/bin/lib/milestone.cjs +252 -0
  102. package/get-shit-done/bin/lib/model-profiles.cjs +68 -0
  103. package/get-shit-done/bin/lib/phase.cjs +888 -0
  104. package/get-shit-done/bin/lib/profile-output.cjs +952 -0
  105. package/get-shit-done/bin/lib/profile-pipeline.cjs +539 -0
  106. package/get-shit-done/bin/lib/roadmap.cjs +329 -0
  107. package/get-shit-done/bin/lib/security.cjs +382 -0
  108. package/get-shit-done/bin/lib/state.cjs +1031 -0
  109. package/get-shit-done/bin/lib/template.cjs +222 -0
  110. package/get-shit-done/bin/lib/uat.cjs +282 -0
  111. package/get-shit-done/bin/lib/verify.cjs +888 -0
  112. package/get-shit-done/bin/lib/workstream.cjs +491 -0
  113. package/get-shit-done/commands/gsd/workstreams.md +63 -0
  114. package/get-shit-done/references/arc-standard.md +315 -0
  115. package/get-shit-done/references/checkpoints.md +778 -0
  116. package/get-shit-done/references/continuation-format.md +249 -0
  117. package/get-shit-done/references/decimal-phase-calculation.md +64 -0
  118. package/get-shit-done/references/git-integration.md +295 -0
  119. package/get-shit-done/references/git-planning-commit.md +38 -0
  120. package/get-shit-done/references/model-profile-resolution.md +36 -0
  121. package/get-shit-done/references/model-profiles.md +139 -0
  122. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  123. package/get-shit-done/references/planning-config.md +202 -0
  124. package/get-shit-done/references/questioning.md +162 -0
  125. package/get-shit-done/references/tdd.md +263 -0
  126. package/get-shit-done/references/ui-brand.md +160 -0
  127. package/get-shit-done/references/user-profiling.md +681 -0
  128. package/get-shit-done/references/verification-patterns.md +612 -0
  129. package/get-shit-done/references/workstream-flag.md +58 -0
  130. package/get-shit-done/templates/DEBUG.md +164 -0
  131. package/get-shit-done/templates/UAT.md +265 -0
  132. package/get-shit-done/templates/UI-SPEC.md +100 -0
  133. package/get-shit-done/templates/VALIDATION.md +76 -0
  134. package/get-shit-done/templates/claude-md.md +122 -0
  135. package/get-shit-done/templates/codebase/architecture.md +255 -0
  136. package/get-shit-done/templates/codebase/concerns.md +310 -0
  137. package/get-shit-done/templates/codebase/conventions.md +307 -0
  138. package/get-shit-done/templates/codebase/integrations.md +280 -0
  139. package/get-shit-done/templates/codebase/stack.md +186 -0
  140. package/get-shit-done/templates/codebase/structure.md +285 -0
  141. package/get-shit-done/templates/codebase/testing.md +480 -0
  142. package/get-shit-done/templates/config.json +44 -0
  143. package/get-shit-done/templates/context.md +352 -0
  144. package/get-shit-done/templates/continue-here.md +78 -0
  145. package/get-shit-done/templates/copilot-instructions.md +7 -0
  146. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  147. package/get-shit-done/templates/dev-preferences.md +21 -0
  148. package/get-shit-done/templates/discovery.md +146 -0
  149. package/get-shit-done/templates/discussion-log.md +63 -0
  150. package/get-shit-done/templates/milestone-archive.md +123 -0
  151. package/get-shit-done/templates/milestone.md +115 -0
  152. package/get-shit-done/templates/phase-prompt.md +610 -0
  153. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  154. package/get-shit-done/templates/project.md +186 -0
  155. package/get-shit-done/templates/requirements.md +231 -0
  156. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  157. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  158. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  159. package/get-shit-done/templates/research-project/STACK.md +120 -0
  160. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  161. package/get-shit-done/templates/research.md +552 -0
  162. package/get-shit-done/templates/retrospective.md +54 -0
  163. package/get-shit-done/templates/roadmap.md +202 -0
  164. package/get-shit-done/templates/state.md +176 -0
  165. package/get-shit-done/templates/summary-complex.md +59 -0
  166. package/get-shit-done/templates/summary-minimal.md +41 -0
  167. package/get-shit-done/templates/summary-standard.md +48 -0
  168. package/get-shit-done/templates/summary.md +248 -0
  169. package/get-shit-done/templates/user-profile.md +146 -0
  170. package/get-shit-done/templates/user-setup.md +311 -0
  171. package/get-shit-done/templates/verification-report.md +322 -0
  172. package/get-shit-done/workflows/add-phase.md +112 -0
  173. package/get-shit-done/workflows/add-tests.md +351 -0
  174. package/get-shit-done/workflows/add-todo.md +158 -0
  175. package/get-shit-done/workflows/audit-milestone.md +340 -0
  176. package/get-shit-done/workflows/audit-uat.md +109 -0
  177. package/get-shit-done/workflows/autonomous.md +891 -0
  178. package/get-shit-done/workflows/check-todos.md +177 -0
  179. package/get-shit-done/workflows/cleanup.md +152 -0
  180. package/get-shit-done/workflows/complete-milestone.md +767 -0
  181. package/get-shit-done/workflows/diagnose-issues.md +231 -0
  182. package/get-shit-done/workflows/discovery-phase.md +289 -0
  183. package/get-shit-done/workflows/discuss-phase-assumptions.md +653 -0
  184. package/get-shit-done/workflows/discuss-phase.md +1049 -0
  185. package/get-shit-done/workflows/do.md +104 -0
  186. package/get-shit-done/workflows/execute-phase.md +846 -0
  187. package/get-shit-done/workflows/execute-plan.md +514 -0
  188. package/get-shit-done/workflows/fast.md +105 -0
  189. package/get-shit-done/workflows/forensics.md +265 -0
  190. package/get-shit-done/workflows/health.md +181 -0
  191. package/get-shit-done/workflows/help.md +634 -0
  192. package/get-shit-done/workflows/insert-phase.md +130 -0
  193. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  194. package/get-shit-done/workflows/list-workspaces.md +56 -0
  195. package/get-shit-done/workflows/manager.md +362 -0
  196. package/get-shit-done/workflows/map-codebase.md +377 -0
  197. package/get-shit-done/workflows/milestone-summary.md +223 -0
  198. package/get-shit-done/workflows/new-milestone.md +486 -0
  199. package/get-shit-done/workflows/new-project.md +1250 -0
  200. package/get-shit-done/workflows/new-workspace.md +237 -0
  201. package/get-shit-done/workflows/next.md +97 -0
  202. package/get-shit-done/workflows/node-repair.md +92 -0
  203. package/get-shit-done/workflows/note.md +156 -0
  204. package/get-shit-done/workflows/pause-work.md +176 -0
  205. package/get-shit-done/workflows/plan-milestone-gaps.md +273 -0
  206. package/get-shit-done/workflows/plan-phase.md +859 -0
  207. package/get-shit-done/workflows/plant-seed.md +169 -0
  208. package/get-shit-done/workflows/pr-branch.md +129 -0
  209. package/get-shit-done/workflows/profile-user.md +450 -0
  210. package/get-shit-done/workflows/progress.md +507 -0
  211. package/get-shit-done/workflows/quick.md +757 -0
  212. package/get-shit-done/workflows/remove-phase.md +155 -0
  213. package/get-shit-done/workflows/remove-workspace.md +90 -0
  214. package/get-shit-done/workflows/research-phase.md +82 -0
  215. package/get-shit-done/workflows/resume-project.md +326 -0
  216. package/get-shit-done/workflows/review.md +228 -0
  217. package/get-shit-done/workflows/session-report.md +146 -0
  218. package/get-shit-done/workflows/settings.md +283 -0
  219. package/get-shit-done/workflows/ship.md +228 -0
  220. package/get-shit-done/workflows/stats.md +60 -0
  221. package/get-shit-done/workflows/transition.md +671 -0
  222. package/get-shit-done/workflows/ui-phase.md +302 -0
  223. package/get-shit-done/workflows/ui-review.md +165 -0
  224. package/get-shit-done/workflows/update.md +323 -0
  225. package/get-shit-done/workflows/validate-phase.md +174 -0
  226. package/get-shit-done/workflows/verify-phase.md +254 -0
  227. package/get-shit-done/workflows/verify-work.md +637 -0
  228. package/hooks/dist/gsd-check-update.js +114 -0
  229. package/hooks/dist/gsd-context-monitor.js +156 -0
  230. package/hooks/dist/gsd-prompt-guard.js +96 -0
  231. package/hooks/dist/gsd-statusline.js +119 -0
  232. package/hooks/dist/gsd-workflow-guard.js +94 -0
  233. package/package.json +52 -0
  234. package/scripts/base64-scan.sh +262 -0
  235. package/scripts/build-hooks.js +82 -0
  236. package/scripts/prompt-injection-scan.sh +198 -0
  237. package/scripts/run-tests.cjs +29 -0
  238. package/scripts/secret-scan.sh +227 -0
package/README.md ADDED
@@ -0,0 +1,937 @@
1
+ # GSD Code-First
2
+
3
+ > Code is the plan -- build first, extract structured planning from annotated code.
4
+
5
+ A fork of GSD (Get Shit Done) that implements code-first development with Claude Code. Instead of running discuss -> plan -> execute for every phase, developers build a prototype directly, annotate the code with structured @gsd-tags (the "ARC" system), and use those annotations as planning input for further iterations.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npx gsd-code-first@latest
11
+ ```
12
+
13
+ Installs GSD Code-First into your Claude Code environment. All original GSD commands continue working -- code-first commands are additive.
14
+
15
+ ## Quick Start: Code-First Workflow
16
+
17
+ **Step 1:** `/gsd:prototype --phases 1` — build a prototype with embedded @gsd-tag annotations
18
+
19
+ **Step 2:** `/gsd:iterate` — extract tags, generate plan, approve, execute
20
+
21
+ **Step 3:** Repeat — iterate as many times as needed
22
+
23
+ ```
24
+ /gsd:prototype -> code with @gsd-tags -> /gsd:iterate -> approve plan -> execute -> repeat
25
+ ```
26
+
27
+ ## ARC Annotations
28
+
29
+ ARC (Annotated Reasoning in Code) tags are structured comments that planning agents read to understand your code's intent, decisions, and next steps without reading every file.
30
+
31
+ ```javascript
32
+ // @gsd-context Auth module -- stateless JWT validation, RS256 only
33
+ // @gsd-decision(phase:1) Use jose library for JWT parsing -- zero native deps
34
+ // @gsd-todo(phase:2, priority:high) Add refresh token rotation
35
+ // @gsd-constraint Must remain stateless -- no session storage
36
+ ```
37
+
38
+ Tag types: `@gsd-context`, `@gsd-decision`, `@gsd-todo`, `@gsd-constraint`, `@gsd-pattern`, `@gsd-ref`, `@gsd-risk`, `@gsd-api`
39
+
40
+ For full tag syntax, metadata format, and per-language examples, see [arc-standard.md](get-shit-done/references/arc-standard.md).
41
+
42
+ ## Workflow Modes
43
+
44
+ | Mode | Pattern | When to Use |
45
+ |------|---------|-------------|
46
+ | `code-first` | prototype -> iterate | You know what to build, want to move fast |
47
+ | `plan-first` | discuss -> plan -> execute | Complex domain, need upfront reasoning |
48
+ | `hybrid` | Mix per preference | Some phases code-first, others plan-first |
49
+
50
+ ```bash
51
+ /gsd:set-mode code-first # set default mode
52
+ /gsd:set-mode plan-first --phase 3 # override for one phase
53
+ /gsd:deep-plan 3 # chain discuss + plan for phase 3
54
+ ```
55
+
56
+ ## Code-First Commands
57
+
58
+ | Command | Description |
59
+ |---------|-------------|
60
+ | `/gsd:prototype` | Build working prototype with @gsd-tags |
61
+ | `/gsd:annotate` | Retroactively add @gsd-tags to existing code |
62
+ | `/gsd:extract-plan` | Scan code for @gsd-tags, produce CODE-INVENTORY.md |
63
+ | `/gsd:iterate` | Full code-first loop: extract -> plan -> approve -> execute |
64
+ | `/gsd:set-mode` | Configure workflow mode (code-first, plan-first, hybrid) |
65
+ | `/gsd:deep-plan` | Chain discuss + plan for upfront reasoning phases |
66
+
67
+ All original GSD commands continue working unchanged.
68
+
69
+ ## Known Limitations
70
+
71
+ ### ARC Wrapper Agents: Only Reachable via `/gsd:iterate`
72
+
73
+ When `arc.enabled` is `true` in your project config, the ARC wrapper agents
74
+ (`gsd-arc-executor` and `gsd-arc-planner`) are only invoked by the
75
+ `/gsd:iterate` command. The traditional GSD entry points `/gsd:execute-phase`
76
+ and `/gsd:plan-phase` always spawn the standard `gsd-executor` and
77
+ `gsd-planner` regardless of the `arc.enabled` setting.
78
+
79
+ **Workaround:** Use `/gsd:iterate` for code-first workflows where ARC
80
+ annotation obligations are needed. Use `/gsd:execute-phase` or
81
+ `/gsd:plan-phase` for plan-first workflows where ARC obligations are not
82
+ required.
83
+
84
+ This limitation is tracked for resolution in v1.1.
85
+
86
+ ---
87
+
88
+ *The sections below are from the original GSD framework. All original commands and workflows remain fully functional.*
89
+
90
+ ---
91
+
92
+ <div align="center">
93
+
94
+ # GET SHIT DONE
95
+
96
+ **English** · [Português](README.pt-BR.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [한국어](README.ko-KR.md)
97
+
98
+ **A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code, OpenCode, Gemini CLI, Codex, Copilot, Cursor, Windsurf, and Antigravity.**
99
+
100
+ **Solves context rot — the quality degradation that happens as Claude fills its context window.**
101
+
102
+ [![npm version](https://img.shields.io/npm/v/get-shit-done-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-cc)
103
+ [![npm downloads](https://img.shields.io/npm/dm/get-shit-done-cc?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-done-cc)
104
+ [![Tests](https://img.shields.io/github/actions/workflow/status/gsd-build/get-shit-done/test.yml?branch=main&style=for-the-badge&logo=github&label=Tests)](https://github.com/gsd-build/get-shit-done/actions/workflows/test.yml)
105
+ [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/gsd)
106
+ [![X (Twitter)](https://img.shields.io/badge/X-@gsd__foundation-000000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/gsd_foundation)
107
+ [![$GSD Token](https://img.shields.io/badge/$GSD-Dexscreener-1C1C1C?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgZmlsbD0iIzAwRkYwMCIvPjwvc3ZnPg==&logoColor=00FF00)](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
108
+ [![GitHub stars](https://img.shields.io/github/stars/gsd-build/get-shit-done?style=for-the-badge&logo=github&color=181717)](https://github.com/gsd-build/get-shit-done)
109
+ [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
110
+
111
+ <br>
112
+
113
+ ```bash
114
+ npx get-shit-done-cc@latest
115
+ ```
116
+
117
+ **Works on Mac, Windows, and Linux.**
118
+
119
+ <br>
120
+
121
+ ![GSD Install](assets/terminal.svg)
122
+
123
+ <br>
124
+
125
+ *"If you know clearly what you want, this WILL build it for you. No bs."*
126
+
127
+ *"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."*
128
+
129
+ *"By far the most powerful addition to my Claude Code. Nothing over-engineered. Literally just gets shit done."*
130
+
131
+ <br>
132
+
133
+ **Trusted by engineers at Amazon, Google, Shopify, and Webflow.**
134
+
135
+ [Why I Built This](#why-i-built-this) · [How It Works](#how-it-works) · [Commands](#commands) · [Why It Works](#why-it-works) · [User Guide](docs/USER-GUIDE.md)
136
+
137
+ </div>
138
+
139
+ ---
140
+
141
+ ## Why I Built This
142
+
143
+ I'm a solo developer. I don't write code — Claude Code does.
144
+
145
+ Other spec-driven development tools exist; BMAD, Speckit... But they all seem to make things way more complicated than they need to be (sprint ceremonies, story points, stakeholder syncs, retrospectives, Jira workflows) or lack real big picture understanding of what you're building. I'm not a 50-person software company. I don't want to play enterprise theater. I'm just a creative person trying to build great things that work.
146
+
147
+ So I built GSD. The complexity is in the system, not in your workflow. Behind the scenes: context engineering, XML prompt formatting, subagent orchestration, state management. What you see: a few commands that just work.
148
+
149
+ The system gives Claude everything it needs to do the work *and* verify it. I trust the workflow. It just does a good job.
150
+
151
+ That's what this is. No enterprise roleplay bullshit. Just an incredibly effective system for building cool stuff consistently using Claude Code.
152
+
153
+ — **TÂCHES**
154
+
155
+ ---
156
+
157
+ Vibecoding has a bad reputation. You describe what you want, AI generates code, and you get inconsistent garbage that falls apart at scale.
158
+
159
+ GSD fixes that. It's the context engineering layer that makes Claude Code reliable. Describe your idea, let the system extract everything it needs to know, and let Claude Code get to work.
160
+
161
+ ---
162
+
163
+ ## Who This Is For
164
+
165
+ People who want to describe what they want and have it built correctly — without pretending they're running a 50-person engineering org.
166
+
167
+ ---
168
+
169
+ ## Getting Started
170
+
171
+ ```bash
172
+ npx get-shit-done-cc@latest
173
+ ```
174
+
175
+ The installer prompts you to choose:
176
+ 1. **Runtime** — Claude Code, OpenCode, Gemini, Codex, Copilot, Cursor, Windsurf, Antigravity, or all (interactive multi-select — pick multiple runtimes in a single install session)
177
+ 2. **Location** — Global (all projects) or local (current project only)
178
+
179
+ Verify with:
180
+ - Claude Code / Gemini: `/gsd:help`
181
+ - OpenCode: `/gsd-help`
182
+ - Codex: `$gsd-help`
183
+ - Copilot: `/gsd:help`
184
+ - Antigravity: `/gsd:help`
185
+
186
+ > [!NOTE]
187
+ > Codex installation uses skills (`skills/gsd-*/SKILL.md`) rather than custom prompts.
188
+
189
+ ### Staying Updated
190
+
191
+ GSD evolves fast. Update periodically:
192
+
193
+ ```bash
194
+ npx get-shit-done-cc@latest
195
+ ```
196
+
197
+ <details>
198
+ <summary><strong>Non-interactive Install (Docker, CI, Scripts)</strong></summary>
199
+
200
+ ```bash
201
+ # Claude Code
202
+ npx get-shit-done-cc --claude --global # Install to ~/.claude/
203
+ npx get-shit-done-cc --claude --local # Install to ./.claude/
204
+
205
+ # OpenCode (open source, free models)
206
+ npx get-shit-done-cc --opencode --global # Install to ~/.config/opencode/
207
+
208
+ # Gemini CLI
209
+ npx get-shit-done-cc --gemini --global # Install to ~/.gemini/
210
+
211
+ # Codex (skills-first)
212
+ npx get-shit-done-cc --codex --global # Install to ~/.codex/
213
+ npx get-shit-done-cc --codex --local # Install to ./.codex/
214
+
215
+ # Copilot (GitHub Copilot CLI)
216
+ npx get-shit-done-cc --copilot --global # Install to ~/.github/
217
+ npx get-shit-done-cc --copilot --local # Install to ./.github/
218
+
219
+ # Cursor CLI
220
+ npx get-shit-done-cc --cursor --global # Install to ~/.cursor/
221
+ npx get-shit-done-cc --cursor --local # Install to ./.cursor/
222
+
223
+ # Windsurf (Codeium, VS Code-based)
224
+ npx get-shit-done-cc --windsurf --global # Install to ~/.windsurf/
225
+ npx get-shit-done-cc --windsurf --local # Install to ./.windsurf/
226
+
227
+ # Antigravity (Google, skills-first, Gemini-based)
228
+ npx get-shit-done-cc --antigravity --global # Install to ~/.gemini/antigravity/
229
+ npx get-shit-done-cc --antigravity --local # Install to ./.agent/
230
+
231
+ # All runtimes
232
+ npx get-shit-done-cc --all --global # Install to all directories
233
+ ```
234
+
235
+ Use `--global` (`-g`) or `--local` (`-l`) to skip the location prompt.
236
+ Use `--claude`, `--opencode`, `--gemini`, `--codex`, `--copilot`, `--cursor`, `--windsurf`, `--antigravity`, or `--all` to skip the runtime prompt.
237
+ Use `--sdk` to also install the GSD SDK CLI (`gsd-sdk`) for headless autonomous execution.
238
+
239
+ </details>
240
+
241
+ <details>
242
+ <summary><strong>Development Installation</strong></summary>
243
+
244
+ Clone the repository and run the installer locally:
245
+
246
+ ```bash
247
+ git clone https://github.com/gsd-build/get-shit-done.git
248
+ cd get-shit-done
249
+ node bin/install.js --claude --local
250
+ ```
251
+
252
+ Installs to `./.claude/` for testing modifications before contributing.
253
+
254
+ </details>
255
+
256
+ ### Recommended: Skip Permissions Mode
257
+
258
+ GSD is designed for frictionless automation. Run Claude Code with:
259
+
260
+ ```bash
261
+ claude --dangerously-skip-permissions
262
+ ```
263
+
264
+ > [!TIP]
265
+ > This is how GSD is intended to be used — stopping to approve `date` and `git commit` 50 times defeats the purpose.
266
+
267
+ <details>
268
+ <summary><strong>Alternative: Granular Permissions</strong></summary>
269
+
270
+ If you prefer not to use that flag, add this to your project's `.claude/settings.json`:
271
+
272
+ ```json
273
+ {
274
+ "permissions": {
275
+ "allow": [
276
+ "Bash(date:*)",
277
+ "Bash(echo:*)",
278
+ "Bash(cat:*)",
279
+ "Bash(ls:*)",
280
+ "Bash(mkdir:*)",
281
+ "Bash(wc:*)",
282
+ "Bash(head:*)",
283
+ "Bash(tail:*)",
284
+ "Bash(sort:*)",
285
+ "Bash(grep:*)",
286
+ "Bash(tr:*)",
287
+ "Bash(git add:*)",
288
+ "Bash(git commit:*)",
289
+ "Bash(git status:*)",
290
+ "Bash(git log:*)",
291
+ "Bash(git diff:*)",
292
+ "Bash(git tag:*)"
293
+ ]
294
+ }
295
+ }
296
+ ```
297
+
298
+ </details>
299
+
300
+ ---
301
+
302
+ ## How It Works
303
+
304
+ > **Already have code?** Run `/gsd:map-codebase` first. It spawns parallel agents to analyze your stack, architecture, conventions, and concerns. Then `/gsd:new-project` knows your codebase — questions focus on what you're adding, and planning automatically loads your patterns.
305
+
306
+ ### 1. Initialize Project
307
+
308
+ ```
309
+ /gsd:new-project
310
+ ```
311
+
312
+ One command, one flow. The system:
313
+
314
+ 1. **Questions** — Asks until it understands your idea completely (goals, constraints, tech preferences, edge cases)
315
+ 2. **Research** — Spawns parallel agents to investigate the domain (optional but recommended)
316
+ 3. **Requirements** — Extracts what's v1, v2, and out of scope
317
+ 4. **Roadmap** — Creates phases mapped to requirements
318
+
319
+ You approve the roadmap. Now you're ready to build.
320
+
321
+ **Creates:** `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, `.planning/research/`
322
+
323
+ ---
324
+
325
+ ### 2. Discuss Phase
326
+
327
+ ```
328
+ /gsd:discuss-phase 1
329
+ ```
330
+
331
+ **This is where you shape the implementation.**
332
+
333
+ Your roadmap has a sentence or two per phase. That's not enough context to build something the way *you* imagine it. This step captures your preferences before anything gets researched or planned.
334
+
335
+ The system analyzes the phase and identifies gray areas based on what's being built:
336
+
337
+ - **Visual features** → Layout, density, interactions, empty states
338
+ - **APIs/CLIs** → Response format, flags, error handling, verbosity
339
+ - **Content systems** → Structure, tone, depth, flow
340
+ - **Organization tasks** → Grouping criteria, naming, duplicates, exceptions
341
+
342
+ For each area you select, it asks until you're satisfied. The output — `CONTEXT.md` — feeds directly into the next two steps:
343
+
344
+ 1. **Researcher reads it** — Knows what patterns to investigate ("user wants card layout" → research card component libraries)
345
+ 2. **Planner reads it** — Knows what decisions are locked ("infinite scroll decided" → plan includes scroll handling)
346
+
347
+ The deeper you go here, the more the system builds what you actually want. Skip it and you get reasonable defaults. Use it and you get *your* vision.
348
+
349
+ **Creates:** `{phase_num}-CONTEXT.md`
350
+
351
+ > **Assumptions Mode:** Prefer codebase analysis over questions? Set `workflow.discuss_mode` to `assumptions` in `/gsd:settings`. The system reads your code, surfaces what it would do and why, and only asks you to correct what's wrong. See [Discuss Mode](docs/workflow-discuss-mode.md).
352
+
353
+ ---
354
+
355
+ ### 3. Plan Phase
356
+
357
+ ```
358
+ /gsd:plan-phase 1
359
+ ```
360
+
361
+ The system:
362
+
363
+ 1. **Researches** — Investigates how to implement this phase, guided by your CONTEXT.md decisions
364
+ 2. **Plans** — Creates 2-3 atomic task plans with XML structure
365
+ 3. **Verifies** — Checks plans against requirements, loops until they pass
366
+
367
+ Each plan is small enough to execute in a fresh context window. No degradation, no "I'll be more concise now."
368
+
369
+ **Creates:** `{phase_num}-RESEARCH.md`, `{phase_num}-{N}-PLAN.md`
370
+
371
+ ---
372
+
373
+ ### 4. Execute Phase
374
+
375
+ ```
376
+ /gsd:execute-phase 1
377
+ ```
378
+
379
+ The system:
380
+
381
+ 1. **Runs plans in waves** — Parallel where possible, sequential when dependent
382
+ 2. **Fresh context per plan** — 200k tokens purely for implementation, zero accumulated garbage
383
+ 3. **Commits per task** — Every task gets its own atomic commit
384
+ 4. **Verifies against goals** — Checks the codebase delivers what the phase promised
385
+
386
+ Walk away, come back to completed work with clean git history.
387
+
388
+ **How Wave Execution Works:**
389
+
390
+ Plans are grouped into "waves" based on dependencies. Within each wave, plans run in parallel. Waves run sequentially.
391
+
392
+ ```
393
+ ┌────────────────────────────────────────────────────────────────────┐
394
+ │ PHASE EXECUTION │
395
+ ├────────────────────────────────────────────────────────────────────┤
396
+ │ │
397
+ │ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
398
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
399
+ │ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
400
+ │ │ │ │ │ │ │ │ │ │ │ │
401
+ │ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
402
+ │ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
403
+ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
404
+ │ │ │ ↑ ↑ ↑ │
405
+ │ └───────────┴──────────────┴───────────┘ │ │
406
+ │ Dependencies: Plan 03 needs Plan 01 │ │
407
+ │ Plan 04 needs Plan 02 │ │
408
+ │ Plan 05 needs Plans 03 + 04 │ │
409
+ │ │
410
+ └────────────────────────────────────────────────────────────────────┘
411
+ ```
412
+
413
+ **Why waves matter:**
414
+ - Independent plans → Same wave → Run in parallel
415
+ - Dependent plans → Later wave → Wait for dependencies
416
+ - File conflicts → Sequential plans or same plan
417
+
418
+ This is why "vertical slices" (Plan 01: User feature end-to-end) parallelize better than "horizontal layers" (Plan 01: All models, Plan 02: All APIs).
419
+
420
+ **Creates:** `{phase_num}-{N}-SUMMARY.md`, `{phase_num}-VERIFICATION.md`
421
+
422
+ ---
423
+
424
+ ### 5. Verify Work
425
+
426
+ ```
427
+ /gsd:verify-work 1
428
+ ```
429
+
430
+ **This is where you confirm it actually works.**
431
+
432
+ Automated verification checks that code exists and tests pass. But does the feature *work* the way you expected? This is your chance to use it.
433
+
434
+ The system:
435
+
436
+ 1. **Extracts testable deliverables** — What you should be able to do now
437
+ 2. **Walks you through one at a time** — "Can you log in with email?" Yes/no, or describe what's wrong
438
+ 3. **Diagnoses failures automatically** — Spawns debug agents to find root causes
439
+ 4. **Creates verified fix plans** — Ready for immediate re-execution
440
+
441
+ If everything passes, you move on. If something's broken, you don't manually debug — you just run `/gsd:execute-phase` again with the fix plans it created.
442
+
443
+ **Creates:** `{phase_num}-UAT.md`, fix plans if issues found
444
+
445
+ ---
446
+
447
+ ### 6. Repeat → Ship → Complete → Next Milestone
448
+
449
+ ```
450
+ /gsd:discuss-phase 2
451
+ /gsd:plan-phase 2
452
+ /gsd:execute-phase 2
453
+ /gsd:verify-work 2
454
+ /gsd:ship 2 # Create PR from verified work
455
+ ...
456
+ /gsd:complete-milestone
457
+ /gsd:new-milestone
458
+ ```
459
+
460
+ Or let GSD figure out the next step automatically:
461
+
462
+ ```
463
+ /gsd:next # Auto-detect and run next step
464
+ ```
465
+
466
+ Loop **discuss → plan → execute → verify → ship** until milestone complete.
467
+
468
+ If you want faster intake during discussion, use `/gsd:discuss-phase <n> --batch` to answer a small grouped set of questions at once instead of one-by-one.
469
+
470
+ Each phase gets your input (discuss), proper research (plan), clean execution (execute), and human verification (verify). Context stays fresh. Quality stays high.
471
+
472
+ When all phases are done, `/gsd:complete-milestone` archives the milestone and tags the release.
473
+
474
+ Then `/gsd:new-milestone` starts the next version — same flow as `new-project` but for your existing codebase. You describe what you want to build next, the system researches the domain, you scope requirements, and it creates a fresh roadmap. Each milestone is a clean cycle: define → build → ship.
475
+
476
+ ---
477
+
478
+ ### Quick Mode
479
+
480
+ ```
481
+ /gsd:quick
482
+ ```
483
+
484
+ **For ad-hoc tasks that don't need full planning.**
485
+
486
+ Quick mode gives you GSD guarantees (atomic commits, state tracking) with a faster path:
487
+
488
+ - **Same agents** — Planner + executor, same quality
489
+ - **Skips optional steps** — No research, no plan checker, no verifier by default
490
+ - **Separate tracking** — Lives in `.planning/quick/`, not phases
491
+
492
+ **`--discuss` flag:** Lightweight discussion to surface gray areas before planning.
493
+
494
+ **`--research` flag:** Spawns a focused researcher before planning. Investigates implementation approaches, library options, and pitfalls. Use when you're unsure how to approach a task.
495
+
496
+ **`--full` flag:** Enables plan-checking (max 2 iterations) and post-execution verification.
497
+
498
+ Flags are composable: `--discuss --research --full` gives discussion + research + plan-checking + verification.
499
+
500
+ ```
501
+ /gsd:quick
502
+ > What do you want to do? "Add dark mode toggle to settings"
503
+ ```
504
+
505
+ **Creates:** `.planning/quick/001-add-dark-mode-toggle/PLAN.md`, `SUMMARY.md`
506
+
507
+ ---
508
+
509
+ ## Why It Works
510
+
511
+ ### Context Engineering
512
+
513
+ Claude Code is incredibly powerful *if* you give it the context it needs. Most people don't.
514
+
515
+ GSD handles it for you:
516
+
517
+ | File | What it does |
518
+ |------|--------------|
519
+ | `PROJECT.md` | Project vision, always loaded |
520
+ | `research/` | Ecosystem knowledge (stack, features, architecture, pitfalls) |
521
+ | `REQUIREMENTS.md` | Scoped v1/v2 requirements with phase traceability |
522
+ | `ROADMAP.md` | Where you're going, what's done |
523
+ | `STATE.md` | Decisions, blockers, position — memory across sessions |
524
+ | `PLAN.md` | Atomic task with XML structure, verification steps |
525
+ | `SUMMARY.md` | What happened, what changed, committed to history |
526
+ | `todos/` | Captured ideas and tasks for later work |
527
+ | `threads/` | Persistent context threads for cross-session work |
528
+ | `seeds/` | Forward-looking ideas that surface at the right milestone |
529
+
530
+ Size limits based on where Claude's quality degrades. Stay under, get consistent excellence.
531
+
532
+ ### XML Prompt Formatting
533
+
534
+ Every plan is structured XML optimized for Claude:
535
+
536
+ ```xml
537
+ <task type="auto">
538
+ <name>Create login endpoint</name>
539
+ <files>src/app/api/auth/login/route.ts</files>
540
+ <action>
541
+ Use jose for JWT (not jsonwebtoken - CommonJS issues).
542
+ Validate credentials against users table.
543
+ Return httpOnly cookie on success.
544
+ </action>
545
+ <verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
546
+ <done>Valid credentials return cookie, invalid return 401</done>
547
+ </task>
548
+ ```
549
+
550
+ Precise instructions. No guessing. Verification built in.
551
+
552
+ ### Multi-Agent Orchestration
553
+
554
+ Every stage uses the same pattern: a thin orchestrator spawns specialized agents, collects results, and routes to the next step.
555
+
556
+ | Stage | Orchestrator does | Agents do |
557
+ |-------|------------------|-----------|
558
+ | Research | Coordinates, presents findings | 4 parallel researchers investigate stack, features, architecture, pitfalls |
559
+ | Planning | Validates, manages iteration | Planner creates plans, checker verifies, loop until pass |
560
+ | Execution | Groups into waves, tracks progress | Executors implement in parallel, each with fresh 200k context |
561
+ | Verification | Presents results, routes next | Verifier checks codebase against goals, debuggers diagnose failures |
562
+
563
+ The orchestrator never does heavy lifting. It spawns agents, waits, integrates results.
564
+
565
+ **The result:** You can run an entire phase — deep research, multiple plans created and verified, thousands of lines of code written across parallel executors, automated verification against goals — and your main context window stays at 30-40%. The work happens in fresh subagent contexts. Your session stays fast and responsive.
566
+
567
+ ### Atomic Git Commits
568
+
569
+ Each task gets its own commit immediately after completion:
570
+
571
+ ```bash
572
+ abc123f docs(08-02): complete user registration plan
573
+ def456g feat(08-02): add email confirmation flow
574
+ hij789k feat(08-02): implement password hashing
575
+ lmn012o feat(08-02): create registration endpoint
576
+ ```
577
+
578
+ > [!NOTE]
579
+ > **Benefits:** Git bisect finds exact failing task. Each task independently revertable. Clear history for Claude in future sessions. Better observability in AI-automated workflow.
580
+
581
+ Every commit is surgical, traceable, and meaningful.
582
+
583
+ ### Modular by Design
584
+
585
+ - Add phases to current milestone
586
+ - Insert urgent work between phases
587
+ - Complete milestones and start fresh
588
+ - Adjust plans without rebuilding everything
589
+
590
+ You're never locked in. The system adapts.
591
+
592
+ ---
593
+
594
+ ## Commands
595
+
596
+ ### Core Workflow
597
+
598
+ | Command | What it does |
599
+ |---------|--------------|
600
+ | `/gsd:new-project [--auto]` | Full initialization: questions → research → requirements → roadmap |
601
+ | `/gsd:discuss-phase [N] [--auto] [--analyze]` | Capture implementation decisions before planning (`--analyze` adds trade-off analysis) |
602
+ | `/gsd:plan-phase [N] [--auto] [--reviews]` | Research + plan + verify for a phase (`--reviews` loads codebase review findings) |
603
+ | `/gsd:execute-phase <N>` | Execute all plans in parallel waves, verify when complete |
604
+ | `/gsd:verify-work [N]` | Manual user acceptance testing ¹ |
605
+ | `/gsd:ship [N] [--draft]` | Create PR from verified phase work with auto-generated body |
606
+ | `/gsd:next` | Automatically advance to the next logical workflow step |
607
+ | `/gsd:fast <text>` | Inline trivial tasks — skips planning entirely, executes immediately |
608
+ | `/gsd:audit-milestone` | Verify milestone achieved its definition of done |
609
+ | `/gsd:complete-milestone` | Archive milestone, tag release |
610
+ | `/gsd:new-milestone [name]` | Start next version: questions → research → requirements → roadmap |
611
+ | `/gsd:forensics [desc]` | Post-mortem investigation of failed workflow runs (diagnoses stuck loops, missing artifacts, git anomalies) |
612
+ | `/gsd:milestone-summary [version]` | Generate comprehensive project summary for team onboarding and review |
613
+
614
+ ### Workstreams
615
+
616
+ | Command | What it does |
617
+ |---------|--------------|
618
+ | `/gsd:workstreams list` | Show all workstreams and their status |
619
+ | `/gsd:workstreams create <name>` | Create a namespaced workstream for parallel milestone work |
620
+ | `/gsd:workstreams switch <name>` | Switch active workstream |
621
+ | `/gsd:workstreams complete <name>` | Complete and merge a workstream |
622
+
623
+ ### Multi-Project Workspaces
624
+
625
+ | Command | What it does |
626
+ |---------|--------------|
627
+ | `/gsd:new-workspace` | Create isolated workspace with repo copies (worktrees or clones) |
628
+ | `/gsd:list-workspaces` | Show all GSD workspaces and their status |
629
+ | `/gsd:remove-workspace` | Remove workspace and clean up worktrees |
630
+
631
+ ### UI Design
632
+
633
+ | Command | What it does |
634
+ |---------|--------------|
635
+ | `/gsd:ui-phase [N]` | Generate UI design contract (UI-SPEC.md) for frontend phases |
636
+ | `/gsd:ui-review [N]` | Retroactive 6-pillar visual audit of implemented frontend code |
637
+
638
+ ### Navigation
639
+
640
+ | Command | What it does |
641
+ |---------|--------------|
642
+ | `/gsd:progress` | Where am I? What's next? |
643
+ | `/gsd:next` | Auto-detect state and run the next step |
644
+ | `/gsd:help` | Show all commands and usage guide |
645
+ | `/gsd:update` | Update GSD with changelog preview |
646
+ | `/gsd:join-discord` | Join the GSD Discord community |
647
+ | `/gsd:manager` | Interactive command center for managing multiple phases |
648
+
649
+ ### Brownfield
650
+
651
+ | Command | What it does |
652
+ |---------|--------------|
653
+ | `/gsd:map-codebase [area]` | Analyze existing codebase before new-project |
654
+
655
+ ### Phase Management
656
+
657
+ | Command | What it does |
658
+ |---------|--------------|
659
+ | `/gsd:add-phase` | Append phase to roadmap |
660
+ | `/gsd:insert-phase [N]` | Insert urgent work between phases |
661
+ | `/gsd:remove-phase [N]` | Remove future phase, renumber |
662
+ | `/gsd:list-phase-assumptions [N]` | See Claude's intended approach before planning |
663
+ | `/gsd:plan-milestone-gaps` | Create phases to close gaps from audit |
664
+
665
+ ### Session
666
+
667
+ | Command | What it does |
668
+ |---------|--------------|
669
+ | `/gsd:pause-work` | Create handoff when stopping mid-phase (writes HANDOFF.json) |
670
+ | `/gsd:resume-work` | Restore from last session |
671
+ | `/gsd:session-report` | Generate session summary with work performed and outcomes |
672
+
673
+ ### Workstreams
674
+
675
+ | Command | What it does |
676
+ |---------|--------------|
677
+ | `/gsd:workstreams` | Manage parallel workstreams (list, create, switch, status, progress, complete) |
678
+
679
+ ### Code Quality
680
+
681
+ | Command | What it does |
682
+ |---------|--------------|
683
+ | `/gsd:review` | Cross-AI peer review of current phase or branch |
684
+ | `/gsd:pr-branch` | Create clean PR branch filtering `.planning/` commits |
685
+ | `/gsd:audit-uat` | Audit verification debt — find phases missing UAT |
686
+
687
+ ### Backlog & Threads
688
+
689
+ | Command | What it does |
690
+ |---------|--------------|
691
+ | `/gsd:plant-seed <idea>` | Capture forward-looking ideas with trigger conditions — surfaces at the right milestone |
692
+ | `/gsd:add-backlog <desc>` | Add idea to backlog parking lot (999.x numbering, outside active sequence) |
693
+ | `/gsd:review-backlog` | Review and promote backlog items to active milestone or remove stale entries |
694
+ | `/gsd:thread [name]` | Persistent context threads — lightweight cross-session knowledge for work spanning multiple sessions |
695
+
696
+ ### Utilities
697
+
698
+ | Command | What it does |
699
+ |---------|--------------|
700
+ | `/gsd:settings` | Configure model profile and workflow agents |
701
+ | `/gsd:set-profile <profile>` | Switch model profile (quality/balanced/budget/inherit) |
702
+ | `/gsd:add-todo [desc]` | Capture idea for later |
703
+ | `/gsd:check-todos` | List pending todos |
704
+ | `/gsd:debug [desc]` | Systematic debugging with persistent state |
705
+ | `/gsd:do <text>` | Route freeform text to the right GSD command automatically |
706
+ | `/gsd:note <text>` | Zero-friction idea capture — append, list, or promote notes to todos |
707
+ | `/gsd:quick [--full] [--discuss] [--research]` | Execute ad-hoc task with GSD guarantees (`--full` adds plan-checking and verification, `--discuss` gathers context first, `--research` investigates approaches before planning) |
708
+ | `/gsd:health [--repair]` | Validate `.planning/` directory integrity, auto-repair with `--repair` |
709
+ | `/gsd:stats` | Display project statistics — phases, plans, requirements, git metrics |
710
+ | `/gsd:profile-user [--questionnaire] [--refresh]` | Generate developer behavioral profile from session analysis for personalized responses |
711
+
712
+ <sup>¹ Contributed by reddit user OracleGreyBeard</sup>
713
+
714
+ ---
715
+
716
+ ## Configuration
717
+
718
+ GSD stores project settings in `.planning/config.json`. Configure during `/gsd:new-project` or update later with `/gsd:settings`. For the full config schema, workflow toggles, git branching options, and per-agent model breakdown, see the [User Guide](docs/USER-GUIDE.md#configuration-reference).
719
+
720
+ ### Core Settings
721
+
722
+ | Setting | Options | Default | What it controls |
723
+ |---------|---------|---------|------------------|
724
+ | `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
725
+ | `granularity` | `coarse`, `standard`, `fine` | `standard` | Phase granularity — how finely scope is sliced (phases × plans) |
726
+
727
+ ### Model Profiles
728
+
729
+ Control which Claude model each agent uses. Balance quality vs token spend.
730
+
731
+ | Profile | Planning | Execution | Verification |
732
+ |---------|----------|-----------|--------------|
733
+ | `quality` | Opus | Opus | Sonnet |
734
+ | `balanced` (default) | Opus | Sonnet | Sonnet |
735
+ | `budget` | Sonnet | Sonnet | Haiku |
736
+ | `inherit` | Inherit | Inherit | Inherit |
737
+
738
+ Switch profiles:
739
+ ```
740
+ /gsd:set-profile budget
741
+ ```
742
+
743
+ Use `inherit` when using non-Anthropic providers (OpenRouter, local models) or to follow the current runtime model selection (e.g. OpenCode `/model`).
744
+
745
+ Or configure via `/gsd:settings`.
746
+
747
+ ### Workflow Agents
748
+
749
+ These spawn additional agents during planning/execution. They improve quality but add tokens and time.
750
+
751
+ | Setting | Default | What it does |
752
+ |---------|---------|--------------|
753
+ | `workflow.research` | `true` | Researches domain before planning each phase |
754
+ | `workflow.plan_check` | `true` | Verifies plans achieve phase goals before execution |
755
+ | `workflow.verifier` | `true` | Confirms must-haves were delivered after execution |
756
+ | `workflow.auto_advance` | `false` | Auto-chain discuss → plan → execute without stopping |
757
+ | `workflow.research_before_questions` | `false` | Run research before discussion questions instead of after |
758
+ | `workflow.discuss_mode` | `'discuss'` | Discussion mode: `discuss` (interview), `assumptions` (codebase-first) |
759
+ | `workflow.skip_discuss` | `false` | Skip discuss-phase in autonomous mode |
760
+ | `workflow.text_mode` | `false` | Text-only mode for remote sessions (no TUI menus) |
761
+
762
+ Use `/gsd:settings` to toggle these, or override per-invocation:
763
+ - `/gsd:plan-phase --skip-research`
764
+ - `/gsd:plan-phase --skip-verify`
765
+
766
+ ### Execution
767
+
768
+ | Setting | Default | What it controls |
769
+ |---------|---------|------------------|
770
+ | `parallelization.enabled` | `true` | Run independent plans simultaneously |
771
+ | `planning.commit_docs` | `true` | Track `.planning/` in git |
772
+ | `hooks.context_warnings` | `true` | Show context window usage warnings |
773
+
774
+ ### Agent Skills
775
+
776
+ Inject project-specific skills into subagents during execution.
777
+
778
+ | Setting | Type | What it does |
779
+ |---------|------|--------------|
780
+ | `agent_skills.<agent_type>` | `string[]` | Paths to skill directories loaded into that agent type at spawn time |
781
+
782
+ Skills are injected as `<agent_skills>` blocks in agent prompts, giving subagents access to project-specific knowledge.
783
+
784
+ ### Git Branching
785
+
786
+ Control how GSD handles branches during execution.
787
+
788
+ | Setting | Options | Default | What it does |
789
+ |---------|---------|---------|--------------|
790
+ | `git.branching_strategy` | `none`, `phase`, `milestone` | `none` | Branch creation strategy |
791
+ | `git.phase_branch_template` | string | `gsd/phase-{phase}-{slug}` | Template for phase branches |
792
+ | `git.milestone_branch_template` | string | `gsd/{milestone}-{slug}` | Template for milestone branches |
793
+
794
+ **Strategies:**
795
+ - **`none`** — Commits to current branch (default GSD behavior)
796
+ - **`phase`** — Creates a branch per phase, merges at phase completion
797
+ - **`milestone`** — Creates one branch for entire milestone, merges at completion
798
+
799
+ At milestone completion, GSD offers squash merge (recommended) or merge with history.
800
+
801
+ ---
802
+
803
+ ## Security
804
+
805
+ ### Built-in Security Hardening
806
+
807
+ GSD includes defense-in-depth security since v1.27:
808
+
809
+ - **Path traversal prevention** — All user-supplied file paths (`--text-file`, `--prd`) are validated to resolve within the project directory
810
+ - **Prompt injection detection** — Centralized `security.cjs` module scans for injection patterns in user-supplied text before it enters planning artifacts
811
+ - **PreToolUse prompt guard hook** — `gsd-prompt-guard` scans writes to `.planning/` for embedded injection vectors (advisory, not blocking)
812
+ - **Safe JSON parsing** — Malformed `--fields` arguments are caught before they corrupt state
813
+ - **Shell argument validation** — User text is sanitized before shell interpolation
814
+ - **CI-ready injection scanner** — `prompt-injection-scan.test.cjs` scans all agent/workflow/command files for embedded injection vectors
815
+
816
+ > [!NOTE]
817
+ > Because GSD generates markdown files that become LLM system prompts, any user-controlled text flowing into planning artifacts is a potential indirect prompt injection vector. These protections are designed to catch such vectors at multiple layers.
818
+
819
+ ### Protecting Sensitive Files
820
+
821
+ GSD's codebase mapping and analysis commands read files to understand your project. **Protect files containing secrets** by adding them to Claude Code's deny list:
822
+
823
+ 1. Open Claude Code settings (`.claude/settings.json` or global)
824
+ 2. Add sensitive file patterns to the deny list:
825
+
826
+ ```json
827
+ {
828
+ "permissions": {
829
+ "deny": [
830
+ "Read(.env)",
831
+ "Read(.env.*)",
832
+ "Read(**/secrets/*)",
833
+ "Read(**/*credential*)",
834
+ "Read(**/*.pem)",
835
+ "Read(**/*.key)"
836
+ ]
837
+ }
838
+ }
839
+ ```
840
+
841
+ This prevents Claude from reading these files entirely, regardless of what commands you run.
842
+
843
+ > [!IMPORTANT]
844
+ > GSD includes built-in protections against committing secrets, but defense-in-depth is best practice. Deny read access to sensitive files as a first line of defense.
845
+
846
+ ---
847
+
848
+ ## Troubleshooting
849
+
850
+ **Commands not found after install?**
851
+ - Restart your runtime to reload commands/skills
852
+ - Verify files exist in `~/.claude/commands/gsd/` (global) or `./.claude/commands/gsd/` (local)
853
+ - For Codex, verify skills exist in `~/.codex/skills/gsd-*/SKILL.md` (global) or `./.codex/skills/gsd-*/SKILL.md` (local)
854
+
855
+ **Commands not working as expected?**
856
+ - Run `/gsd:help` to verify installation
857
+ - Re-run `npx get-shit-done-cc` to reinstall
858
+
859
+ **Updating to the latest version?**
860
+ ```bash
861
+ npx get-shit-done-cc@latest
862
+ ```
863
+
864
+ **Using Docker or containerized environments?**
865
+
866
+ If file reads fail with tilde paths (`~/.claude/...`), set `CLAUDE_CONFIG_DIR` before installing:
867
+ ```bash
868
+ CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
869
+ ```
870
+ This ensures absolute paths are used instead of `~` which may not expand correctly in containers.
871
+
872
+ ### Uninstalling
873
+
874
+ To remove GSD completely:
875
+
876
+ ```bash
877
+ # Global installs
878
+ npx get-shit-done-cc --claude --global --uninstall
879
+ npx get-shit-done-cc --opencode --global --uninstall
880
+ npx get-shit-done-cc --gemini --global --uninstall
881
+ npx get-shit-done-cc --codex --global --uninstall
882
+ npx get-shit-done-cc --copilot --global --uninstall
883
+ npx get-shit-done-cc --cursor --global --uninstall
884
+ npx get-shit-done-cc --windsurf --global --uninstall
885
+ npx get-shit-done-cc --antigravity --global --uninstall
886
+
887
+ # Local installs (current project)
888
+ npx get-shit-done-cc --claude --local --uninstall
889
+ npx get-shit-done-cc --opencode --local --uninstall
890
+ npx get-shit-done-cc --gemini --local --uninstall
891
+ npx get-shit-done-cc --codex --local --uninstall
892
+ npx get-shit-done-cc --copilot --local --uninstall
893
+ npx get-shit-done-cc --cursor --local --uninstall
894
+ npx get-shit-done-cc --windsurf --local --uninstall
895
+ npx get-shit-done-cc --antigravity --local --uninstall
896
+ ```
897
+
898
+ This removes all GSD commands, agents, hooks, and settings while preserving your other configurations.
899
+
900
+ ---
901
+
902
+ ## Community Ports
903
+
904
+ OpenCode, Gemini CLI, and Codex are now natively supported via `npx get-shit-done-cc`.
905
+
906
+ These community ports pioneered multi-runtime support:
907
+
908
+ | Project | Platform | Description |
909
+ |---------|----------|-------------|
910
+ | [gsd-opencode](https://github.com/rokicool/gsd-opencode) | OpenCode | Original OpenCode adaptation |
911
+ | gsd-gemini (archived) | Gemini CLI | Original Gemini adaptation by uberfuzzy |
912
+
913
+ ---
914
+
915
+ ## Star History
916
+
917
+ <a href="https://star-history.com/#gsd-build/get-shit-done&Date">
918
+ <picture>
919
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date&theme=dark" />
920
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
921
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=gsd-build/get-shit-done&type=Date" />
922
+ </picture>
923
+ </a>
924
+
925
+ ---
926
+
927
+ ## License
928
+
929
+ MIT License. See [LICENSE](LICENSE) for details.
930
+
931
+ ---
932
+
933
+ <div align="center">
934
+
935
+ **Claude Code is powerful. GSD makes it reliable.**
936
+
937
+ </div>