@howlil/ez-agents 2.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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +845 -0
  3. package/README.zh-CN.md +702 -0
  4. package/agents/ez-codebase-mapper.md +770 -0
  5. package/agents/ez-debugger.md +1255 -0
  6. package/agents/ez-executor.md +487 -0
  7. package/agents/ez-integration-checker.md +443 -0
  8. package/agents/ez-nyquist-auditor.md +176 -0
  9. package/agents/ez-phase-researcher.md +553 -0
  10. package/agents/ez-plan-checker.md +706 -0
  11. package/agents/ez-planner.md +1307 -0
  12. package/agents/ez-project-researcher.md +629 -0
  13. package/agents/ez-research-synthesizer.md +247 -0
  14. package/agents/ez-roadmapper.md +650 -0
  15. package/agents/ez-ui-auditor.md +441 -0
  16. package/agents/ez-ui-checker.md +302 -0
  17. package/agents/ez-ui-researcher.md +355 -0
  18. package/agents/ez-verifier.md +579 -0
  19. package/bin/install.js +2862 -0
  20. package/bin/update.js +214 -0
  21. package/commands/ez/add-phase.md +43 -0
  22. package/commands/ez/add-tests.md +41 -0
  23. package/commands/ez/add-todo.md +47 -0
  24. package/commands/ez/audit-milestone.md +36 -0
  25. package/commands/ez/autonomous.md +41 -0
  26. package/commands/ez/check-todos.md +45 -0
  27. package/commands/ez/cleanup.md +18 -0
  28. package/commands/ez/complete-milestone.md +136 -0
  29. package/commands/ez/debug.md +168 -0
  30. package/commands/ez/discuss-phase.md +90 -0
  31. package/commands/ez/execute-phase.md +41 -0
  32. package/commands/ez/health.md +22 -0
  33. package/commands/ez/help.md +22 -0
  34. package/commands/ez/insert-phase.md +32 -0
  35. package/commands/ez/join-discord.md +18 -0
  36. package/commands/ez/list-phase-assumptions.md +46 -0
  37. package/commands/ez/map-codebase.md +71 -0
  38. package/commands/ez/new-milestone.md +44 -0
  39. package/commands/ez/new-project.md +42 -0
  40. package/commands/ez/pause-work.md +38 -0
  41. package/commands/ez/plan-milestone-gaps.md +34 -0
  42. package/commands/ez/plan-phase.md +45 -0
  43. package/commands/ez/progress.md +24 -0
  44. package/commands/ez/quick.md +45 -0
  45. package/commands/ez/reapply-patches.md +124 -0
  46. package/commands/ez/remove-phase.md +31 -0
  47. package/commands/ez/research-phase.md +190 -0
  48. package/commands/ez/resume-work.md +40 -0
  49. package/commands/ez/set-profile.md +34 -0
  50. package/commands/ez/settings.md +36 -0
  51. package/commands/ez/stats.md +18 -0
  52. package/commands/ez/ui-phase.md +34 -0
  53. package/commands/ez/ui-review.md +32 -0
  54. package/commands/ez/update.md +37 -0
  55. package/commands/ez/validate-phase.md +35 -0
  56. package/commands/ez/verify-work.md +38 -0
  57. package/get-shit-done/bin/ez-tools.cjs +598 -0
  58. package/get-shit-done/bin/lib/assistant-adapter.cjs +205 -0
  59. package/get-shit-done/bin/lib/audit-exec.cjs +150 -0
  60. package/get-shit-done/bin/lib/auth.cjs +175 -0
  61. package/get-shit-done/bin/lib/circuit-breaker.cjs +118 -0
  62. package/get-shit-done/bin/lib/commands.cjs +666 -0
  63. package/get-shit-done/bin/lib/config.cjs +183 -0
  64. package/get-shit-done/bin/lib/core.cjs +495 -0
  65. package/get-shit-done/bin/lib/file-lock.cjs +236 -0
  66. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  67. package/get-shit-done/bin/lib/fs-utils.cjs +153 -0
  68. package/get-shit-done/bin/lib/git-utils.cjs +203 -0
  69. package/get-shit-done/bin/lib/health-check.cjs +163 -0
  70. package/get-shit-done/bin/lib/index.cjs +113 -0
  71. package/get-shit-done/bin/lib/init.cjs +710 -0
  72. package/get-shit-done/bin/lib/logger.cjs +117 -0
  73. package/get-shit-done/bin/lib/milestone.cjs +241 -0
  74. package/get-shit-done/bin/lib/model-provider.cjs +146 -0
  75. package/get-shit-done/bin/lib/phase.cjs +908 -0
  76. package/get-shit-done/bin/lib/retry.cjs +119 -0
  77. package/get-shit-done/bin/lib/roadmap.cjs +305 -0
  78. package/get-shit-done/bin/lib/safe-exec.cjs +128 -0
  79. package/get-shit-done/bin/lib/safe-path.cjs +130 -0
  80. package/get-shit-done/bin/lib/state.cjs +721 -0
  81. package/get-shit-done/bin/lib/temp-file.cjs +239 -0
  82. package/get-shit-done/bin/lib/template.cjs +222 -0
  83. package/get-shit-done/bin/lib/test-file-lock.cjs +112 -0
  84. package/get-shit-done/bin/lib/test-graceful.cjs +93 -0
  85. package/get-shit-done/bin/lib/test-logger.cjs +60 -0
  86. package/get-shit-done/bin/lib/test-safe-exec.cjs +38 -0
  87. package/get-shit-done/bin/lib/test-safe-path.cjs +33 -0
  88. package/get-shit-done/bin/lib/test-temp-file.cjs +125 -0
  89. package/get-shit-done/bin/lib/timeout-exec.cjs +62 -0
  90. package/get-shit-done/bin/lib/verify.cjs +820 -0
  91. package/get-shit-done/references/checkpoints.md +776 -0
  92. package/get-shit-done/references/continuation-format.md +249 -0
  93. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  94. package/get-shit-done/references/git-integration.md +248 -0
  95. package/get-shit-done/references/git-planning-commit.md +38 -0
  96. package/get-shit-done/references/model-profile-resolution.md +34 -0
  97. package/get-shit-done/references/model-profiles.md +93 -0
  98. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  99. package/get-shit-done/references/planning-config.md +200 -0
  100. package/get-shit-done/references/questioning.md +162 -0
  101. package/get-shit-done/references/tdd.md +263 -0
  102. package/get-shit-done/references/ui-brand.md +160 -0
  103. package/get-shit-done/references/verification-patterns.md +612 -0
  104. package/get-shit-done/templates/DEBUG.md +164 -0
  105. package/get-shit-done/templates/UAT.md +247 -0
  106. package/get-shit-done/templates/UI-SPEC.md +100 -0
  107. package/get-shit-done/templates/VALIDATION.md +76 -0
  108. package/get-shit-done/templates/codebase/architecture.md +255 -0
  109. package/get-shit-done/templates/codebase/concerns.md +310 -0
  110. package/get-shit-done/templates/codebase/conventions.md +307 -0
  111. package/get-shit-done/templates/codebase/integrations.md +280 -0
  112. package/get-shit-done/templates/codebase/stack.md +186 -0
  113. package/get-shit-done/templates/codebase/structure.md +285 -0
  114. package/get-shit-done/templates/codebase/testing.md +480 -0
  115. package/get-shit-done/templates/config.json +37 -0
  116. package/get-shit-done/templates/context.md +352 -0
  117. package/get-shit-done/templates/continue-here.md +78 -0
  118. package/get-shit-done/templates/copilot-instructions.md +7 -0
  119. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  120. package/get-shit-done/templates/discovery.md +146 -0
  121. package/get-shit-done/templates/milestone-archive.md +123 -0
  122. package/get-shit-done/templates/milestone.md +115 -0
  123. package/get-shit-done/templates/phase-prompt.md +610 -0
  124. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  125. package/get-shit-done/templates/project.md +184 -0
  126. package/get-shit-done/templates/requirements.md +231 -0
  127. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  128. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  129. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  130. package/get-shit-done/templates/research-project/STACK.md +120 -0
  131. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  132. package/get-shit-done/templates/research.md +552 -0
  133. package/get-shit-done/templates/retrospective.md +54 -0
  134. package/get-shit-done/templates/roadmap.md +202 -0
  135. package/get-shit-done/templates/state.md +176 -0
  136. package/get-shit-done/templates/summary-complex.md +59 -0
  137. package/get-shit-done/templates/summary-minimal.md +41 -0
  138. package/get-shit-done/templates/summary-standard.md +48 -0
  139. package/get-shit-done/templates/summary.md +248 -0
  140. package/get-shit-done/templates/user-setup.md +311 -0
  141. package/get-shit-done/templates/verification-report.md +322 -0
  142. package/get-shit-done/workflows/add-phase.md +112 -0
  143. package/get-shit-done/workflows/add-tests.md +351 -0
  144. package/get-shit-done/workflows/add-todo.md +158 -0
  145. package/get-shit-done/workflows/audit-milestone.md +332 -0
  146. package/get-shit-done/workflows/autonomous.md +743 -0
  147. package/get-shit-done/workflows/check-todos.md +177 -0
  148. package/get-shit-done/workflows/cleanup.md +152 -0
  149. package/get-shit-done/workflows/complete-milestone.md +766 -0
  150. package/get-shit-done/workflows/diagnose-issues.md +219 -0
  151. package/get-shit-done/workflows/discovery-phase.md +289 -0
  152. package/get-shit-done/workflows/discuss-phase.md +762 -0
  153. package/get-shit-done/workflows/execute-phase.md +468 -0
  154. package/get-shit-done/workflows/execute-plan.md +483 -0
  155. package/get-shit-done/workflows/health.md +159 -0
  156. package/get-shit-done/workflows/help.md +492 -0
  157. package/get-shit-done/workflows/insert-phase.md +130 -0
  158. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  159. package/get-shit-done/workflows/map-codebase.md +316 -0
  160. package/get-shit-done/workflows/new-milestone.md +384 -0
  161. package/get-shit-done/workflows/new-project.md +1111 -0
  162. package/get-shit-done/workflows/node-repair.md +92 -0
  163. package/get-shit-done/workflows/pause-work.md +122 -0
  164. package/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  165. package/get-shit-done/workflows/plan-phase.md +651 -0
  166. package/get-shit-done/workflows/progress.md +382 -0
  167. package/get-shit-done/workflows/quick.md +610 -0
  168. package/get-shit-done/workflows/remove-phase.md +155 -0
  169. package/get-shit-done/workflows/research-phase.md +74 -0
  170. package/get-shit-done/workflows/resume-project.md +307 -0
  171. package/get-shit-done/workflows/set-profile.md +81 -0
  172. package/get-shit-done/workflows/settings.md +242 -0
  173. package/get-shit-done/workflows/stats.md +57 -0
  174. package/get-shit-done/workflows/transition.md +544 -0
  175. package/get-shit-done/workflows/ui-phase.md +290 -0
  176. package/get-shit-done/workflows/ui-review.md +157 -0
  177. package/get-shit-done/workflows/update.md +320 -0
  178. package/get-shit-done/workflows/validate-phase.md +167 -0
  179. package/get-shit-done/workflows/verify-phase.md +243 -0
  180. package/get-shit-done/workflows/verify-work.md +584 -0
  181. package/package.json +55 -0
  182. package/scripts/build-hooks.js +43 -0
  183. package/scripts/run-tests.cjs +29 -0
package/README.md ADDED
@@ -0,0 +1,845 @@
1
+ <div align="center">
2
+
3
+ # EZ Agents
4
+
5
+ **ez-agents** — *Meta-prompting & Agent Orchestration, but ez*
6
+
7
+ **English** · [简体中文](README.zh-CN.md)
8
+
9
+ **An independent fork of GSD with multi-model support (Qwen, Kimi, OpenAI, Claude) and enhanced reliability features.**
10
+
11
+ **Solves context rot — with added security, error handling, and cross-platform support.**
12
+
13
+ [![GitHub forks](https://img.shields.io/github/forks/howlil/ez-agents?style=for-the-badge&logo=github&color=blue)](https://github.com/howlil/ez-agents/network)
14
+ [![GitHub stars](https://img.shields.io/github/stars/howlil/ez-agents?style=for-the-badge&logo=github&color=yellow)](https://github.com/howlil/ez-agents/stargazers)
15
+ [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
16
+
17
+ <br>
18
+
19
+ ```bash
20
+ npx github:howlil/ez-agents
21
+ ```
22
+
23
+ **Works on Mac, Windows, and Linux.**
24
+
25
+ <br>
26
+
27
+ **Original GSD by** [TÂCHES](https://github.com/glittercowboy/get-shit-done) | **EZ Agents Fork by** [@howlil](https://github.com/howlil)
28
+
29
+ <br>
30
+
31
+ *"If you know clearly what you want, this WILL build it for you. No bs."*
32
+
33
+ *"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."*
34
+
35
+ *"By far the most powerful addition to my Claude Code. Nothing over-engineered. Literally ez mode activated."*
36
+
37
+ <br>
38
+
39
+ [Features](#-whats-new-in-ez-agents) · [Install](#install) · [Commands](#commands) · [Multi-Model](#multi-model-support) · [User Guide](docs/USER-GUIDE.md)
40
+
41
+ </div>
42
+
43
+ ---
44
+
45
+ ## 🚀 What's New in EZ Agents
46
+
47
+ > **Note:** This is an **independent fork** of GSD. Not affiliated with the original GSD project.
48
+ >
49
+ > **Original GSD:** [glittercowboy/get-shit-done](https://github.com/glittercowboy/get-shit-done) by TÂCHES
50
+ >
51
+ > **This Fork:** [howlil/ez-agents](https://github.com/howlil/ez-agents) with multi-model support & enhancements
52
+
53
+ **EZ Agents** adds **multi-model support** and **enterprise-grade reliability** to GSD.
54
+
55
+ ### Why This Fork Exists
56
+
57
+ I needed GSD to work with multiple AI providers (not just Anthropic) and run reliably on Windows. This fork adds:
58
+
59
+ - 🌍 **Multi-Model**: Qwen (Alibaba), Kimi (Moonshot), OpenAI, and Anthropic
60
+ - 🔒 **Security**: Command injection prevention, path validation, audit logging
61
+ - 🛡️ **Error Handling**: Retry with backoff, circuit breaker for failing operations
62
+ - 🪟 **Windows Support**: Cross-platform file utilities (no Unix dependencies)
63
+ - 🔄 **Easy Updates**: `ez-agents-update` command to stay current
64
+
65
+ ### Features Comparison
66
+
67
+ | Feature | Original GSD | EZ Agents Fork |
68
+ |---------|--------------|-----------|
69
+ | **Multi-Model** | Anthropic only | ✓ Anthropic, Qwen, Kimi, OpenAI |
70
+ | **Security** | Basic | ✓ Command allowlist, path validation, audit log |
71
+ | **Error Handling** | Basic | ✓ Retry with backoff, circuit breaker |
72
+ | **Cross-Platform** | Unix commands | ✓ Pure JavaScript (Windows-safe) |
73
+ | **Git Safety** | Direct calls | ✓ Atomic commits, branch automation |
74
+ | **Update Command** | Manual npm | ✓ `ez-agents-update` |
75
+ | **Credential Storage** | Plain text | ✓ System keychain (keytar) |
76
+
77
+ ### 17 New Libraries
78
+
79
+ ```
80
+ get-shit-done/bin/lib/
81
+ ├── safe-exec.cjs # Command injection prevention (allowlist + validation)
82
+ ├── safe-path.cjs # Path traversal prevention
83
+ ├── auth.cjs # Secure credential storage (keytar + fallback)
84
+ ├── audit-exec.cjs # Command audit logging (.planning/logs/)
85
+ ├── git-utils.cjs # Safe git operations (atomic commits)
86
+ ├── fs-utils.cjs # Cross-platform file utils (find/grep/head/tail replacement)
87
+ ├── retry.cjs # Exponential backoff retry logic
88
+ ├── circuit-breaker.cjs # Prevent cascading failures
89
+ ├── model-provider.cjs # Multi-model API abstraction
90
+ ├── assistant-adapter.cjs # AI assistant abstraction (Claude/OpenCode/Gemini/Codex)
91
+ ├── logger.cjs # Centralized logging (ERROR/WARN/INFO/DEBUG)
92
+ ├── health-check.cjs # Environment validation
93
+ ├── timeout-exec.cjs # Command timeout with fallback
94
+ ├── file-lock.cjs # Concurrent write protection
95
+ ├── temp-file.cjs # Secure temp file handling
96
+ ├── index.cjs # Central library export
97
+ └── update.js # ez-agents-update command
98
+ ```
99
+
100
+ ### Multi-Model Support
101
+
102
+ Configure different AI providers per agent:
103
+
104
+ ```json
105
+ // .planning/config.json
106
+ {
107
+ "provider": {
108
+ "default": "alibaba",
109
+ "anthropic": {
110
+ "api_key": "env:ANTHROPIC_API_KEY",
111
+ "models": { "opus": "claude-3-opus-20240229", "sonnet": "claude-3-sonnet-20240229" }
112
+ },
113
+ "alibaba": {
114
+ "api_key": "env:DASHSCOPE_API_KEY",
115
+ "models": { "high": "qwen-max", "balanced": "qwen-plus" }
116
+ },
117
+ "moonshot": {
118
+ "api_key": "env:MOONSHOT_API_KEY",
119
+ "models": { "high": "moonshot-v1-128k" }
120
+ },
121
+ "openai": {
122
+ "api_key": "env:OPENAI_API_KEY",
123
+ "models": { "high": "gpt-4-turbo-preview" }
124
+ }
125
+ },
126
+ "agent_overrides": {
127
+ "gsd-planner": { "provider": "alibaba", "model": "qwen-max" },
128
+ "gsd-executor": { "provider": "anthropic", "model": "sonnet" },
129
+ "gsd-verifier": { "provider": "moonshot", "model": "balanced" }
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### Quick Commands
135
+
136
+ ```bash
137
+ # Install EZ Agents
138
+ npm install -g ez-agents
139
+
140
+ # Setup (Claude Code)
141
+ ez-agents --claude --global
142
+
143
+ # Update
144
+ ez-agents-update
145
+
146
+ # Force update
147
+ ez-agents-update --force
148
+
149
+ # Check version
150
+ ez-agents --version
151
+
152
+ # Help
153
+ ez-agents --help
154
+ ```
155
+
156
+ ### Install
157
+
158
+ **Option 1: Use npx (No Installation)**
159
+
160
+ ```bash
161
+ # Run installer directly without installing
162
+ npx github:howlil/ez-agents
163
+
164
+ # Or with flags
165
+ npx github:howlil/ez-agents --claude --global
166
+ ```
167
+
168
+ **Option 2: Install Globally (Recommended)**
169
+
170
+ ```bash
171
+ # Install from GitHub
172
+ npm install -g git+https://github.com/howlil/ez-agents.git
173
+
174
+ # Then use
175
+ ez-agents --claude --global
176
+ ez-agents-update
177
+ ```
178
+
179
+ **Option 3: Install from npm (Future)**
180
+
181
+ ```bash
182
+ # When published to npm
183
+ npm install -g ez-agents
184
+ ```
185
+
186
+ ---
187
+
188
+ I'm a solo developer. I don't write code — Claude Code does.
189
+
190
+ 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.
191
+
192
+ 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.
193
+
194
+ The system gives Claude everything it needs to do the work *and* verify it. I trust the workflow. It just does a good job.
195
+
196
+ That's what this is. No enterprise roleplay bullshit. Just an incredibly effective system for building cool stuff consistently using Claude Code.
197
+
198
+ — **TÂCHES**
199
+
200
+ ---
201
+
202
+ Vibecoding has a bad reputation. You describe what you want, AI generates code, and you get inconsistent garbage that falls apart at scale.
203
+
204
+ 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.
205
+
206
+ ---
207
+
208
+ ## Who This Is For
209
+
210
+ People who want to describe what they want and have it built correctly — without pretending they're running a 50-person engineering org.
211
+
212
+ ---
213
+
214
+ ## Getting Started
215
+
216
+ ```bash
217
+ npx ez-agents
218
+ ```
219
+
220
+ The installer prompts you to choose:
221
+ 1. **Runtime** — Claude Code, OpenCode, Gemini, Codex, Copilot, or all
222
+ 2. **Location** — Global (all projects) or local (current project only)
223
+
224
+ Verify with:
225
+ - Claude Code / Gemini: `/ez:help`
226
+ - OpenCode: `/ez-help`
227
+ - Codex: `$ez-help`
228
+
229
+ > [!NOTE]
230
+ > Codex installation uses skills (`skills/ez-*/SKILL.md`) rather than custom prompts.
231
+
232
+ ### Staying Updated
233
+
234
+ EZ Agents evolves fast. Update periodically:
235
+
236
+ ```bash
237
+ ez-agents-update
238
+ ```
239
+
240
+ <details>
241
+ <summary><strong>Non-interactive Install (Docker, CI, Scripts)</strong></summary>
242
+
243
+ ```bash
244
+ # Claude Code
245
+ ez-agents --claude --global # Install to ~/.claude/
246
+ ez-agents --claude --local # Install to ./.claude/
247
+
248
+ # OpenCode (open source, free models)
249
+ ez-agents --opencode --global # Install to ~/.config/opencode/
250
+
251
+ # Gemini CLI
252
+ ez-agents --gemini --global # Install to ~/.gemini/
253
+
254
+ # Codex (skills-first)
255
+ ez-agents --codex --global # Install to ~/.codex/
256
+ ez-agents --codex --local # Install to ./.codex/
257
+
258
+ # All runtimes
259
+ ez-agents --all --global # Install to all directories
260
+ ```
261
+
262
+ Use `--global` (`-g`) or `--local` (`-l`) to skip the location prompt.
263
+ Use `--claude`, `--opencode`, `--gemini`, `--codex`, or `--all` to skip the runtime prompt.
264
+
265
+ </details>
266
+
267
+ <details>
268
+ <summary><strong>Development Installation</strong></summary>
269
+
270
+ Clone the repository and run the installer locally:
271
+
272
+ ```bash
273
+ git clone https://github.com/howlil/ez-agents.git
274
+ cd ez-agents
275
+ node bin/install.js --claude --local
276
+ ```
277
+
278
+ Installs to `./.claude/` for testing modifications before contributing.
279
+
280
+ </details>
281
+
282
+ ### Recommended: Skip Permissions Mode
283
+
284
+ GSD is designed for frictionless automation. Run Claude Code with:
285
+
286
+ ```bash
287
+ claude --dangerously-skip-permissions
288
+ ```
289
+
290
+ > [!TIP]
291
+ > This is how GSD is intended to be used — stopping to approve `date` and `git commit` 50 times defeats the purpose.
292
+
293
+ <details>
294
+ <summary><strong>Alternative: Granular Permissions</strong></summary>
295
+
296
+ If you prefer not to use that flag, add this to your project's `.claude/settings.json`:
297
+
298
+ ```json
299
+ {
300
+ "permissions": {
301
+ "allow": [
302
+ "Bash(date:*)",
303
+ "Bash(echo:*)",
304
+ "Bash(cat:*)",
305
+ "Bash(ls:*)",
306
+ "Bash(mkdir:*)",
307
+ "Bash(wc:*)",
308
+ "Bash(head:*)",
309
+ "Bash(tail:*)",
310
+ "Bash(sort:*)",
311
+ "Bash(grep:*)",
312
+ "Bash(tr:*)",
313
+ "Bash(git add:*)",
314
+ "Bash(git commit:*)",
315
+ "Bash(git status:*)",
316
+ "Bash(git log:*)",
317
+ "Bash(git diff:*)",
318
+ "Bash(git tag:*)"
319
+ ]
320
+ }
321
+ }
322
+ ```
323
+
324
+ </details>
325
+
326
+ ---
327
+
328
+ ## How It Works
329
+
330
+ > **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.
331
+
332
+ ### 1. Initialize Project
333
+
334
+ ```
335
+ /gsd:new-project
336
+ ```
337
+
338
+ One command, one flow. The system:
339
+
340
+ 1. **Questions** — Asks until it understands your idea completely (goals, constraints, tech preferences, edge cases)
341
+ 2. **Research** — Spawns parallel agents to investigate the domain (optional but recommended)
342
+ 3. **Requirements** — Extracts what's v1, v2, and out of scope
343
+ 4. **Roadmap** — Creates phases mapped to requirements
344
+
345
+ You approve the roadmap. Now you're ready to build.
346
+
347
+ **Creates:** `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, `.planning/research/`
348
+
349
+ ---
350
+
351
+ ### 2. Discuss Phase
352
+
353
+ ```
354
+ /gsd:discuss-phase 1
355
+ ```
356
+
357
+ **This is where you shape the implementation.**
358
+
359
+ 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.
360
+
361
+ The system analyzes the phase and identifies gray areas based on what's being built:
362
+
363
+ - **Visual features** → Layout, density, interactions, empty states
364
+ - **APIs/CLIs** → Response format, flags, error handling, verbosity
365
+ - **Content systems** → Structure, tone, depth, flow
366
+ - **Organization tasks** → Grouping criteria, naming, duplicates, exceptions
367
+
368
+ For each area you select, it asks until you're satisfied. The output — `CONTEXT.md` — feeds directly into the next two steps:
369
+
370
+ 1. **Researcher reads it** — Knows what patterns to investigate ("user wants card layout" → research card component libraries)
371
+ 2. **Planner reads it** — Knows what decisions are locked ("infinite scroll decided" → plan includes scroll handling)
372
+
373
+ 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.
374
+
375
+ **Creates:** `{phase_num}-CONTEXT.md`
376
+
377
+ ---
378
+
379
+ ### 3. Plan Phase
380
+
381
+ ```
382
+ /gsd:plan-phase 1
383
+ ```
384
+
385
+ The system:
386
+
387
+ 1. **Researches** — Investigates how to implement this phase, guided by your CONTEXT.md decisions
388
+ 2. **Plans** — Creates 2-3 atomic task plans with XML structure
389
+ 3. **Verifies** — Checks plans against requirements, loops until they pass
390
+
391
+ Each plan is small enough to execute in a fresh context window. No degradation, no "I'll be more concise now."
392
+
393
+ **Creates:** `{phase_num}-RESEARCH.md`, `{phase_num}-{N}-PLAN.md`
394
+
395
+ ---
396
+
397
+ ### 4. Execute Phase
398
+
399
+ ```
400
+ /gsd:execute-phase 1
401
+ ```
402
+
403
+ The system:
404
+
405
+ 1. **Runs plans in waves** — Parallel where possible, sequential when dependent
406
+ 2. **Fresh context per plan** — 200k tokens purely for implementation, zero accumulated garbage
407
+ 3. **Commits per task** — Every task gets its own atomic commit
408
+ 4. **Verifies against goals** — Checks the codebase delivers what the phase promised
409
+
410
+ Walk away, come back to completed work with clean git history.
411
+
412
+ **How Wave Execution Works:**
413
+
414
+ Plans are grouped into "waves" based on dependencies. Within each wave, plans run in parallel. Waves run sequentially.
415
+
416
+ ```
417
+ ┌────────────────────────────────────────────────────────────────────┐
418
+ │ PHASE EXECUTION │
419
+ ├────────────────────────────────────────────────────────────────────┤
420
+ │ │
421
+ │ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
422
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
423
+ │ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
424
+ │ │ │ │ │ │ │ │ │ │ │ │
425
+ │ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
426
+ │ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
427
+ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
428
+ │ │ │ ↑ ↑ ↑ │
429
+ │ └───────────┴──────────────┴───────────┘ │ │
430
+ │ Dependencies: Plan 03 needs Plan 01 │ │
431
+ │ Plan 04 needs Plan 02 │ │
432
+ │ Plan 05 needs Plans 03 + 04 │ │
433
+ │ │
434
+ └────────────────────────────────────────────────────────────────────┘
435
+ ```
436
+
437
+ **Why waves matter:**
438
+ - Independent plans → Same wave → Run in parallel
439
+ - Dependent plans → Later wave → Wait for dependencies
440
+ - File conflicts → Sequential plans or same plan
441
+
442
+ 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).
443
+
444
+ **Creates:** `{phase_num}-{N}-SUMMARY.md`, `{phase_num}-VERIFICATION.md`
445
+
446
+ ---
447
+
448
+ ### 5. Verify Work
449
+
450
+ ```
451
+ /gsd:verify-work 1
452
+ ```
453
+
454
+ **This is where you confirm it actually works.**
455
+
456
+ 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.
457
+
458
+ The system:
459
+
460
+ 1. **Extracts testable deliverables** — What you should be able to do now
461
+ 2. **Walks you through one at a time** — "Can you log in with email?" Yes/no, or describe what's wrong
462
+ 3. **Diagnoses failures automatically** — Spawns debug agents to find root causes
463
+ 4. **Creates verified fix plans** — Ready for immediate re-execution
464
+
465
+ 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.
466
+
467
+ **Creates:** `{phase_num}-UAT.md`, fix plans if issues found
468
+
469
+ ---
470
+
471
+ ### 6. Repeat → Complete → Next Milestone
472
+
473
+ ```
474
+ /gsd:discuss-phase 2
475
+ /gsd:plan-phase 2
476
+ /gsd:execute-phase 2
477
+ /gsd:verify-work 2
478
+ ...
479
+ /gsd:complete-milestone
480
+ /gsd:new-milestone
481
+ ```
482
+
483
+ Loop **discuss → plan → execute → verify** until milestone complete.
484
+
485
+ 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.
486
+
487
+ Each phase gets your input (discuss), proper research (plan), clean execution (execute), and human verification (verify). Context stays fresh. Quality stays high.
488
+
489
+ When all phases are done, `/gsd:complete-milestone` archives the milestone and tags the release.
490
+
491
+ 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.
492
+
493
+ ---
494
+
495
+ ### Quick Mode
496
+
497
+ ```
498
+ /gsd:quick
499
+ ```
500
+
501
+ **For ad-hoc tasks that don't need full planning.**
502
+
503
+ Quick mode gives you GSD guarantees (atomic commits, state tracking) with a faster path:
504
+
505
+ - **Same agents** — Planner + executor, same quality
506
+ - **Skips optional steps** — No research, no plan checker, no verifier
507
+ - **Separate tracking** — Lives in `.planning/quick/`, not phases
508
+
509
+ Use for: bug fixes, small features, config changes, one-off tasks.
510
+
511
+ ```
512
+ /gsd:quick
513
+ > What do you want to do? "Add dark mode toggle to settings"
514
+ ```
515
+
516
+ **Creates:** `.planning/quick/001-add-dark-mode-toggle/PLAN.md`, `SUMMARY.md`
517
+
518
+ ---
519
+
520
+ ## Why It Works
521
+
522
+ ### Context Engineering
523
+
524
+ Claude Code is incredibly powerful *if* you give it the context it needs. Most people don't.
525
+
526
+ GSD handles it for you:
527
+
528
+ | File | What it does |
529
+ |------|--------------|
530
+ | `PROJECT.md` | Project vision, always loaded |
531
+ | `research/` | Ecosystem knowledge (stack, features, architecture, pitfalls) |
532
+ | `REQUIREMENTS.md` | Scoped v1/v2 requirements with phase traceability |
533
+ | `ROADMAP.md` | Where you're going, what's done |
534
+ | `STATE.md` | Decisions, blockers, position — memory across sessions |
535
+ | `PLAN.md` | Atomic task with XML structure, verification steps |
536
+ | `SUMMARY.md` | What happened, what changed, committed to history |
537
+ | `todos/` | Captured ideas and tasks for later work |
538
+
539
+ Size limits based on where Claude's quality degrades. Stay under, get consistent excellence.
540
+
541
+ ### XML Prompt Formatting
542
+
543
+ Every plan is structured XML optimized for Claude:
544
+
545
+ ```xml
546
+ <task type="auto">
547
+ <name>Create login endpoint</name>
548
+ <files>src/app/api/auth/login/route.ts</files>
549
+ <action>
550
+ Use jose for JWT (not jsonwebtoken - CommonJS issues).
551
+ Validate credentials against users table.
552
+ Return httpOnly cookie on success.
553
+ </action>
554
+ <verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
555
+ <done>Valid credentials return cookie, invalid return 401</done>
556
+ </task>
557
+ ```
558
+
559
+ Precise instructions. No guessing. Verification built in.
560
+
561
+ ### Multi-Agent Orchestration
562
+
563
+ Every stage uses the same pattern: a thin orchestrator spawns specialized agents, collects results, and routes to the next step.
564
+
565
+ | Stage | Orchestrator does | Agents do |
566
+ |-------|------------------|-----------|
567
+ | Research | Coordinates, presents findings | 4 parallel researchers investigate stack, features, architecture, pitfalls |
568
+ | Planning | Validates, manages iteration | Planner creates plans, checker verifies, loop until pass |
569
+ | Execution | Groups into waves, tracks progress | Executors implement in parallel, each with fresh 200k context |
570
+ | Verification | Presents results, routes next | Verifier checks codebase against goals, debuggers diagnose failures |
571
+
572
+ The orchestrator never does heavy lifting. It spawns agents, waits, integrates results.
573
+
574
+ **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.
575
+
576
+ ### Atomic Git Commits
577
+
578
+ Each task gets its own commit immediately after completion:
579
+
580
+ ```bash
581
+ abc123f docs(08-02): complete user registration plan
582
+ def456g feat(08-02): add email confirmation flow
583
+ hij789k feat(08-02): implement password hashing
584
+ lmn012o feat(08-02): create registration endpoint
585
+ ```
586
+
587
+ > [!NOTE]
588
+ > **Benefits:** Git bisect finds exact failing task. Each task independently revertable. Clear history for Claude in future sessions. Better observability in AI-automated workflow.
589
+
590
+ Every commit is surgical, traceable, and meaningful.
591
+
592
+ ### Modular by Design
593
+
594
+ - Add phases to current milestone
595
+ - Insert urgent work between phases
596
+ - Complete milestones and start fresh
597
+ - Adjust plans without rebuilding everything
598
+
599
+ You're never locked in. The system adapts.
600
+
601
+ ---
602
+
603
+ ## Commands
604
+
605
+ ### Core Workflow
606
+
607
+ | Command | What it does |
608
+ |---------|--------------|
609
+ | `/gsd:new-project [--auto]` | Full initialization: questions → research → requirements → roadmap |
610
+ | `/gsd:discuss-phase [N] [--auto]` | Capture implementation decisions before planning |
611
+ | `/gsd:plan-phase [N] [--auto]` | Research + plan + verify for a phase |
612
+ | `/gsd:execute-phase <N>` | Execute all plans in parallel waves, verify when complete |
613
+ | `/gsd:verify-work [N]` | Manual user acceptance testing ¹ |
614
+ | `/gsd:audit-milestone` | Verify milestone achieved its definition of done |
615
+ | `/gsd:complete-milestone` | Archive milestone, tag release |
616
+ | `/gsd:new-milestone [name]` | Start next version: questions → research → requirements → roadmap |
617
+
618
+ ### Navigation
619
+
620
+ | Command | What it does |
621
+ |---------|--------------|
622
+ | `/gsd:progress` | Where am I? What's next? |
623
+ | `/gsd:help` | Show all commands and usage guide |
624
+ | `/gsd:update` | Update GSD with changelog preview |
625
+ | `/gsd:join-discord` | Join the GSD Discord community |
626
+
627
+ ### Brownfield
628
+
629
+ | Command | What it does |
630
+ |---------|--------------|
631
+ | `/gsd:map-codebase [area]` | Analyze existing codebase before new-project |
632
+
633
+ ### Phase Management
634
+
635
+ | Command | What it does |
636
+ |---------|--------------|
637
+ | `/gsd:add-phase` | Append phase to roadmap |
638
+ | `/gsd:insert-phase [N]` | Insert urgent work between phases |
639
+ | `/gsd:remove-phase [N]` | Remove future phase, renumber |
640
+ | `/gsd:list-phase-assumptions [N]` | See Claude's intended approach before planning |
641
+ | `/gsd:plan-milestone-gaps` | Create phases to close gaps from audit |
642
+
643
+ ### Session
644
+
645
+ | Command | What it does |
646
+ |---------|--------------|
647
+ | `/gsd:pause-work` | Create handoff when stopping mid-phase |
648
+ | `/gsd:resume-work` | Restore from last session |
649
+
650
+ ### Utilities
651
+
652
+ | Command | What it does |
653
+ |---------|--------------|
654
+ | `/gsd:settings` | Configure model profile and workflow agents |
655
+ | `/gsd:set-profile <profile>` | Switch model profile (quality/balanced/budget) |
656
+ | `/gsd:add-todo [desc]` | Capture idea for later |
657
+ | `/gsd:check-todos` | List pending todos |
658
+ | `/gsd:debug [desc]` | Systematic debugging with persistent state |
659
+ | `/gsd:quick [--full] [--discuss]` | Execute ad-hoc task with GSD guarantees (`--full` adds plan-checking and verification, `--discuss` gathers context first) |
660
+ | `/gsd:health [--repair]` | Validate `.planning/` directory integrity, auto-repair with `--repair` |
661
+
662
+ <sup>¹ Contributed by reddit user OracleGreyBeard</sup>
663
+
664
+ ---
665
+
666
+ ## Configuration
667
+
668
+ 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).
669
+
670
+ ### Core Settings
671
+
672
+ | Setting | Options | Default | What it controls |
673
+ |---------|---------|---------|------------------|
674
+ | `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
675
+ | `granularity` | `coarse`, `standard`, `fine` | `standard` | Phase granularity — how finely scope is sliced (phases × plans) |
676
+
677
+ ### Model Profiles
678
+
679
+ Control which Claude model each agent uses. Balance quality vs token spend.
680
+
681
+ | Profile | Planning | Execution | Verification |
682
+ |---------|----------|-----------|--------------|
683
+ | `quality` | Opus | Opus | Sonnet |
684
+ | `balanced` (default) | Opus | Sonnet | Sonnet |
685
+ | `budget` | Sonnet | Sonnet | Haiku |
686
+
687
+ Switch profiles:
688
+ ```
689
+ /gsd:set-profile budget
690
+ ```
691
+
692
+ Or configure via `/gsd:settings`.
693
+
694
+ ### Workflow Agents
695
+
696
+ These spawn additional agents during planning/execution. They improve quality but add tokens and time.
697
+
698
+ | Setting | Default | What it does |
699
+ |---------|---------|--------------|
700
+ | `workflow.research` | `true` | Researches domain before planning each phase |
701
+ | `workflow.plan_check` | `true` | Verifies plans achieve phase goals before execution |
702
+ | `workflow.verifier` | `true` | Confirms must-haves were delivered after execution |
703
+ | `workflow.auto_advance` | `false` | Auto-chain discuss → plan → execute without stopping |
704
+
705
+ Use `/gsd:settings` to toggle these, or override per-invocation:
706
+ - `/gsd:plan-phase --skip-research`
707
+ - `/gsd:plan-phase --skip-verify`
708
+
709
+ ### Execution
710
+
711
+ | Setting | Default | What it controls |
712
+ |---------|---------|------------------|
713
+ | `parallelization.enabled` | `true` | Run independent plans simultaneously |
714
+ | `planning.commit_docs` | `true` | Track `.planning/` in git |
715
+
716
+ ### Git Branching
717
+
718
+ Control how GSD handles branches during execution.
719
+
720
+ | Setting | Options | Default | What it does |
721
+ |---------|---------|---------|--------------|
722
+ | `git.branching_strategy` | `none`, `phase`, `milestone` | `none` | Branch creation strategy |
723
+ | `git.phase_branch_template` | string | `gsd/phase-{phase}-{slug}` | Template for phase branches |
724
+ | `git.milestone_branch_template` | string | `gsd/{milestone}-{slug}` | Template for milestone branches |
725
+
726
+ **Strategies:**
727
+ - **`none`** — Commits to current branch (default GSD behavior)
728
+ - **`phase`** — Creates a branch per phase, merges at phase completion
729
+ - **`milestone`** — Creates one branch for entire milestone, merges at completion
730
+
731
+ At milestone completion, GSD offers squash merge (recommended) or merge with history.
732
+
733
+ ---
734
+
735
+ ## Security
736
+
737
+ ### Protecting Sensitive Files
738
+
739
+ 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:
740
+
741
+ 1. Open Claude Code settings (`.claude/settings.json` or global)
742
+ 2. Add sensitive file patterns to the deny list:
743
+
744
+ ```json
745
+ {
746
+ "permissions": {
747
+ "deny": [
748
+ "Read(.env)",
749
+ "Read(.env.*)",
750
+ "Read(**/secrets/*)",
751
+ "Read(**/*credential*)",
752
+ "Read(**/*.pem)",
753
+ "Read(**/*.key)"
754
+ ]
755
+ }
756
+ }
757
+ ```
758
+
759
+ This prevents Claude from reading these files entirely, regardless of what commands you run.
760
+
761
+ > [!IMPORTANT]
762
+ > 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.
763
+
764
+ ---
765
+
766
+ ## Troubleshooting
767
+
768
+ **Commands not found after install?**
769
+ - Restart your runtime to reload commands/skills
770
+ - Verify files exist in `~/.claude/commands/gsd/` (global) or `./.claude/commands/gsd/` (local)
771
+ - For Codex, verify skills exist in `~/.codex/skills/gsd-*/SKILL.md` (global) or `./.codex/skills/gsd-*/SKILL.md` (local)
772
+
773
+ **Commands not working as expected?**
774
+ - Run `/gsd:help` to verify installation
775
+ - Re-run `gsdm` to reinstall
776
+
777
+ **Updating to the latest version?**
778
+ ```bash
779
+ gsdm-update
780
+ ```
781
+
782
+ **Using Docker or containerized environments?**
783
+
784
+ If file reads fail with tilde paths (`~/.claude/...`), set `CLAUDE_CONFIG_DIR` before installing:
785
+ ```bash
786
+ CLAUDE_CONFIG_DIR=/home/youruser/.claude gsdm --global
787
+ ```
788
+ This ensures absolute paths are used instead of `~` which may not expand correctly in containers.
789
+
790
+ ### Uninstalling
791
+
792
+ To remove GSD completely:
793
+
794
+ ```bash
795
+ # Global installs
796
+ gsdm --claude --global --uninstall
797
+ gsdm --opencode --global --uninstall
798
+ gsdm --codex --global --uninstall
799
+
800
+ # Local installs (current project)
801
+ gsdm --claude --local --uninstall
802
+ gsdm --opencode --local --uninstall
803
+ gsdm --codex --local --uninstall
804
+ ```
805
+
806
+ This removes all GSD commands, agents, hooks, and settings while preserving your other configurations.
807
+
808
+ ---
809
+
810
+ ## Community Ports
811
+
812
+ OpenCode, Gemini CLI, and Codex are now natively supported via `gsdm`.
813
+
814
+ These community ports pioneered multi-runtime support:
815
+
816
+ | Project | Platform | Description |
817
+ |---------|----------|-------------|
818
+ | [gsd-opencode](https://github.com/rokicool/gsd-opencode) | OpenCode | Original OpenCode adaptation |
819
+ | gsd-gemini (archived) | Gemini CLI | Original Gemini adaptation by uberfuzzy |
820
+
821
+ ---
822
+
823
+ ## Star History
824
+
825
+ <a href="https://star-history.com/#glittercowboy/get-shit-done&Date">
826
+ <picture>
827
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=glittercowboy/get-shit-done&type=Date&theme=dark" />
828
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=glittercowboy/get-shit-done&type=Date" />
829
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=glittercowboy/get-shit-done&type=Date" />
830
+ </picture>
831
+ </a>
832
+
833
+ ---
834
+
835
+ ## License
836
+
837
+ MIT License. See [LICENSE](LICENSE) for details.
838
+
839
+ ---
840
+
841
+ <div align="center">
842
+
843
+ **Claude Code is powerful. GSD makes it reliable.**
844
+
845
+ </div>