get-shit-done-ios 0.6.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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +673 -0
  3. package/agents/gsd-codebase-mapper.md +894 -0
  4. package/agents/gsd-debugger.md +1328 -0
  5. package/agents/gsd-executor.md +490 -0
  6. package/agents/gsd-integration-checker.md +427 -0
  7. package/agents/gsd-phase-researcher.md +571 -0
  8. package/agents/gsd-plan-checker.md +625 -0
  9. package/agents/gsd-planner.md +1207 -0
  10. package/agents/gsd-project-researcher.md +757 -0
  11. package/agents/gsd-research-synthesizer.md +236 -0
  12. package/agents/gsd-roadmapper.md +702 -0
  13. package/agents/gsd-verifier.md +673 -0
  14. package/bin/install.js +1807 -0
  15. package/commands/gsd/add-phase.md +39 -0
  16. package/commands/gsd/add-todo.md +42 -0
  17. package/commands/gsd/audit-milestone.md +42 -0
  18. package/commands/gsd/check-todos.md +41 -0
  19. package/commands/gsd/cleanup.md +18 -0
  20. package/commands/gsd/complete-milestone.md +136 -0
  21. package/commands/gsd/debug.md +162 -0
  22. package/commands/gsd/discuss-phase.md +87 -0
  23. package/commands/gsd/execute-phase.md +42 -0
  24. package/commands/gsd/health.md +22 -0
  25. package/commands/gsd/help.md +22 -0
  26. package/commands/gsd/insert-phase.md +33 -0
  27. package/commands/gsd/join-discord.md +18 -0
  28. package/commands/gsd/list-phase-assumptions.md +50 -0
  29. package/commands/gsd/map-codebase.md +71 -0
  30. package/commands/gsd/new-milestone.md +51 -0
  31. package/commands/gsd/new-project.md +42 -0
  32. package/commands/gsd/new-project.md.bak +1041 -0
  33. package/commands/gsd/pause-work.md +35 -0
  34. package/commands/gsd/plan-milestone-gaps.md +40 -0
  35. package/commands/gsd/plan-phase.md +44 -0
  36. package/commands/gsd/progress.md +24 -0
  37. package/commands/gsd/quick.md +40 -0
  38. package/commands/gsd/reapply-patches.md +110 -0
  39. package/commands/gsd/remove-phase.md +32 -0
  40. package/commands/gsd/research-phase.md +187 -0
  41. package/commands/gsd/resume-work.md +40 -0
  42. package/commands/gsd/set-profile.md +34 -0
  43. package/commands/gsd/settings.md +36 -0
  44. package/commands/gsd/update.md +37 -0
  45. package/commands/gsd/verify-work.md +39 -0
  46. package/get-shit-done/bin/gsd-tools.cjs +5326 -0
  47. package/get-shit-done/bin/gsd-tools.test.cjs +2346 -0
  48. package/get-shit-done/references/checkpoints.md +788 -0
  49. package/get-shit-done/references/continuation-format.md +249 -0
  50. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  51. package/get-shit-done/references/git-integration.md +248 -0
  52. package/get-shit-done/references/git-planning-commit.md +38 -0
  53. package/get-shit-done/references/ios-app-lifecycle.md +399 -0
  54. package/get-shit-done/references/ios-frameworks.md +335 -0
  55. package/get-shit-done/references/ios-permissions.md +297 -0
  56. package/get-shit-done/references/ios-swift-guidelines.md +1532 -0
  57. package/get-shit-done/references/ios-testing.md +1450 -0
  58. package/get-shit-done/references/model-profile-resolution.md +34 -0
  59. package/get-shit-done/references/model-profiles.md +92 -0
  60. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  61. package/get-shit-done/references/planning-config.md +196 -0
  62. package/get-shit-done/references/questioning.md +145 -0
  63. package/get-shit-done/references/tdd.md +277 -0
  64. package/get-shit-done/references/ui-brand.md +160 -0
  65. package/get-shit-done/references/verification-patterns.md +817 -0
  66. package/get-shit-done/templates/DEBUG.md +159 -0
  67. package/get-shit-done/templates/UAT.md +247 -0
  68. package/get-shit-done/templates/codebase/architecture.md +255 -0
  69. package/get-shit-done/templates/codebase/concerns.md +310 -0
  70. package/get-shit-done/templates/codebase/conventions.md +307 -0
  71. package/get-shit-done/templates/codebase/integrations.md +280 -0
  72. package/get-shit-done/templates/codebase/stack.md +305 -0
  73. package/get-shit-done/templates/codebase/structure.md +285 -0
  74. package/get-shit-done/templates/codebase/testing.md +480 -0
  75. package/get-shit-done/templates/config.json +36 -0
  76. package/get-shit-done/templates/context.md +283 -0
  77. package/get-shit-done/templates/continue-here.md +78 -0
  78. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  79. package/get-shit-done/templates/discovery.md +146 -0
  80. package/get-shit-done/templates/milestone-archive.md +123 -0
  81. package/get-shit-done/templates/milestone.md +115 -0
  82. package/get-shit-done/templates/phase-prompt.md +578 -0
  83. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  84. package/get-shit-done/templates/project.md +184 -0
  85. package/get-shit-done/templates/requirements.md +231 -0
  86. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  87. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  88. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  89. package/get-shit-done/templates/research-project/STACK.md +119 -0
  90. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  91. package/get-shit-done/templates/research.md +552 -0
  92. package/get-shit-done/templates/roadmap.md +202 -0
  93. package/get-shit-done/templates/state.md +176 -0
  94. package/get-shit-done/templates/summary-complex.md +59 -0
  95. package/get-shit-done/templates/summary-minimal.md +41 -0
  96. package/get-shit-done/templates/summary-standard.md +48 -0
  97. package/get-shit-done/templates/summary.md +248 -0
  98. package/get-shit-done/templates/user-setup.md +311 -0
  99. package/get-shit-done/templates/verification-report.md +323 -0
  100. package/get-shit-done/workflows/add-phase.md +111 -0
  101. package/get-shit-done/workflows/add-todo.md +157 -0
  102. package/get-shit-done/workflows/audit-milestone.md +297 -0
  103. package/get-shit-done/workflows/check-todos.md +176 -0
  104. package/get-shit-done/workflows/cleanup.md +152 -0
  105. package/get-shit-done/workflows/complete-milestone.md +700 -0
  106. package/get-shit-done/workflows/diagnose-issues.md +219 -0
  107. package/get-shit-done/workflows/discovery-phase.md +289 -0
  108. package/get-shit-done/workflows/discuss-phase.md +490 -0
  109. package/get-shit-done/workflows/execute-phase.md +428 -0
  110. package/get-shit-done/workflows/execute-plan.md +459 -0
  111. package/get-shit-done/workflows/health.md +156 -0
  112. package/get-shit-done/workflows/help.md +486 -0
  113. package/get-shit-done/workflows/insert-phase.md +129 -0
  114. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  115. package/get-shit-done/workflows/map-codebase.md +327 -0
  116. package/get-shit-done/workflows/new-milestone.md +373 -0
  117. package/get-shit-done/workflows/new-project.md +1120 -0
  118. package/get-shit-done/workflows/pause-work.md +122 -0
  119. package/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  120. package/get-shit-done/workflows/plan-phase.md +452 -0
  121. package/get-shit-done/workflows/progress.md +393 -0
  122. package/get-shit-done/workflows/quick.md +444 -0
  123. package/get-shit-done/workflows/remove-phase.md +154 -0
  124. package/get-shit-done/workflows/research-phase.md +74 -0
  125. package/get-shit-done/workflows/resume-project.md +306 -0
  126. package/get-shit-done/workflows/set-profile.md +80 -0
  127. package/get-shit-done/workflows/settings.md +200 -0
  128. package/get-shit-done/workflows/transition.md +544 -0
  129. package/get-shit-done/workflows/update.md +214 -0
  130. package/get-shit-done/workflows/verify-phase.md +244 -0
  131. package/get-shit-done/workflows/verify-work.md +570 -0
  132. package/hooks/dist/gsd-check-update.js +62 -0
  133. package/hooks/dist/gsd-statusline.js +91 -0
  134. package/package.json +50 -0
  135. package/scripts/build-hooks.js +42 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Lex Christopherson
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,673 @@
1
+ <div align="center">
2
+
3
+ # GET SHIT DONE — iOS Edition
4
+
5
+ **A meta-prompting, context engineering, and spec-driven development system for building native iOS apps with Claude Code.**
6
+
7
+ **Optimized for Swift, SwiftUI, SwiftData, and MVVM.**
8
+
9
+ **Solves context rot — the quality degradation that happens as Claude fills its context window.**
10
+
11
+ [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
12
+ [![Based on GSD](https://img.shields.io/badge/Based_on-GSD_1.20.4-orange?style=for-the-badge)](https://github.com/glittercowboy/get-shit-done)
13
+
14
+ ```bash
15
+ npx get-shit-done-ios@latest
16
+ ```
17
+
18
+ **Requires macOS and Xcode.**
19
+
20
+ <br>
21
+
22
+ > **Built on [Get Shit Done](https://github.com/glittercowboy/get-shit-done) by TÂCHES.**
23
+ > This is an iOS-native fork — all agents, references, templates, and workflows
24
+ > have been adapted for Swift, SwiftUI, and native iOS development patterns.
25
+
26
+ <br>
27
+
28
+ *"If you know clearly what you want, this WILL build it for you. No bs."*
29
+
30
+ *"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."*
31
+
32
+ *"By far the most powerful addition to my Claude Code. Nothing over-engineered. Literally just gets shit done."*
33
+
34
+ <br>
35
+
36
+ **Built on the GSD framework, trusted by engineers at Amazon, Google, Shopify, and Webflow.**
37
+
38
+ ![GSD:iOS Install](assets/terminal.svg)
39
+
40
+ [Why This Fork Exists](#why-this-fork-exists) · [How It Works](#how-it-works) · [Commands](#commands) · [Why It Works](#why-it-works) · [User Guide](docs/USER-GUIDE.md)
41
+
42
+ </div>
43
+
44
+ ---
45
+
46
+ ## Why This Fork Exists
47
+
48
+ GSD is an incredible system for building software with Claude Code. But its agents, examples, and references assume web development — React components, API routes, npm packages, TypeScript patterns.
49
+
50
+ If you're building native iOS apps, that context mismatch matters. Claude works best when every reference it sees matches the world it's building in. An executor told to "create a component in `src/`" when you need a SwiftUI View in `Sources/Views/` is wasted context at best, hallucinated code at worst.
51
+
52
+ This fork adapts every layer of GSD for native iOS development:
53
+
54
+ - **Agents** — Executor, planner, verifier, roadmapper all speak Swift, SwiftUI, and MVVM
55
+ - **References** — iOS guidelines for Swift style, frameworks, testing, permissions, and app lifecycle
56
+ - **Templates** — File paths use `Sources/`, verification checks SwiftUI wiring and `@Observable` state
57
+ - **Accessibility built-in** — VoiceOver labels, Dynamic Type, and WCAG AA are part of every phase, not afterthoughts
58
+ - **Localization enforced** — No hardcoded user-facing strings, `String(localized:)` from day one
59
+
60
+ The framework logic is identical to upstream GSD. The context is native iOS.
61
+
62
+ ---
63
+
64
+ Vibecoding has a bad reputation. You describe what you want, AI generates code, and you get inconsistent garbage that falls apart at scale.
65
+
66
+ GSD fixes that. It's the context engineering layer that makes Claude Code reliable. Describe your app idea, let the system extract everything it needs to know, and let Claude Code build it with proper SwiftUI architecture, accessibility, and native patterns.
67
+
68
+ ---
69
+
70
+ ## Who This Is For
71
+
72
+ iOS developers who want to describe their app idea and have it built correctly — with proper SwiftUI architecture, accessibility, native patterns, and clean Swift — without pretending they're running a 50-person engineering org.
73
+
74
+ ---
75
+
76
+ ## Getting Started
77
+
78
+ ```bash
79
+ npx get-shit-done-ios@latest
80
+ ```
81
+
82
+ The installer prompts you to choose:
83
+ 1. **Location** — Global (all projects) or local (current iOS project only)
84
+
85
+ Verify with `/gsd:help` inside Claude Code.
86
+
87
+ > **Requires:** macOS, Xcode, Node.js 18+, Claude Code.
88
+
89
+ ### Staying Updated
90
+
91
+ ```bash
92
+ npx get-shit-done-ios@latest
93
+ ```
94
+
95
+ Or use `/gsd:update` inside Claude Code for changelog preview before updating.
96
+
97
+ <details>
98
+ <summary><strong>Non-Interactive Install (CI, Scripts)</strong></summary>
99
+
100
+ ```bash
101
+ npx get-shit-done-ios --claude --local # Install to ./.claude/ (current project)
102
+ npx get-shit-done-ios --claude --global # Install to ~/.claude/ (all projects)
103
+ ```
104
+
105
+ Use `--global` (`-g`) or `--local` (`-l`) to skip the location prompt.
106
+
107
+ </details>
108
+
109
+ <details>
110
+ <summary><strong>Development Installation</strong></summary>
111
+
112
+ Clone the repository and run the installer locally:
113
+
114
+ ```bash
115
+ git clone https://github.com/the-andys/get-shit-done-ios.git
116
+ cd get-shit-done-ios
117
+ node bin/install.js --claude --local
118
+ ```
119
+
120
+ Installs to `./.claude/` for testing modifications before contributing.
121
+
122
+ </details>
123
+
124
+ ### Recommended: Skip Permissions Mode
125
+
126
+ GSD is designed for frictionless automation. Run Claude Code with:
127
+
128
+ ```bash
129
+ claude --dangerously-skip-permissions
130
+ ```
131
+
132
+ > [!TIP]
133
+ > This is how GSD is intended to be used — stopping to approve `date` and `git commit` 50 times defeats the purpose.
134
+
135
+ <details>
136
+ <summary><strong>Alternative: Granular Permissions</strong></summary>
137
+
138
+ If you prefer not to use that flag, add this to your project's `.claude/settings.json`:
139
+
140
+ ```json
141
+ {
142
+ "permissions": {
143
+ "allow": [
144
+ "Bash(date:*)",
145
+ "Bash(echo:*)",
146
+ "Bash(cat:*)",
147
+ "Bash(ls:*)",
148
+ "Bash(mkdir:*)",
149
+ "Bash(wc:*)",
150
+ "Bash(head:*)",
151
+ "Bash(tail:*)",
152
+ "Bash(sort:*)",
153
+ "Bash(grep:*)",
154
+ "Bash(tr:*)",
155
+ "Bash(git add:*)",
156
+ "Bash(git commit:*)",
157
+ "Bash(git status:*)",
158
+ "Bash(git log:*)",
159
+ "Bash(git diff:*)",
160
+ "Bash(git tag:*)"
161
+ ]
162
+ }
163
+ }
164
+ ```
165
+
166
+ </details>
167
+
168
+ ### Using Alongside GSD (Web)
169
+
170
+ If you already use the original GSD for web development, GSD:iOS works side by side without conflicts. Claude Code resolves commands by priority: **local commands shadow global ones with the same name.**
171
+
172
+ The recommended setup:
173
+
174
+ | Your setup | Web projects | iOS projects |
175
+ |---|---|---|
176
+ | GSD Web global + GSD:iOS local | Global commands apply | Local iOS commands take priority |
177
+ | GSD:iOS global + GSD Web local | Global iOS commands apply | Local web commands take priority |
178
+
179
+ When both are installed, you won't see duplicate commands — the local version always wins. Agents, references, and templates follow the same resolution order.
180
+
181
+ In practice: install whichever you use most as `--global`, and the other as `--local` in the relevant projects.
182
+
183
+ ---
184
+
185
+
186
+ ## How It Works
187
+
188
+ > **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.
189
+
190
+ ### 1. Initialize Project
191
+
192
+ ```
193
+ /gsd:new-project
194
+ ```
195
+
196
+ One command, one flow. The system:
197
+
198
+ 1. **Questions** — Asks until it understands your app completely (goals, constraints, tech preferences, edge cases)
199
+ 2. **Research** — Spawns parallel agents to investigate the domain (optional but recommended)
200
+ 3. **Requirements** — Extracts what's v1, v2, and out of scope
201
+ 4. **Roadmap** — Creates phases mapped to requirements
202
+
203
+ You approve the roadmap. Now you're ready to build.
204
+
205
+ **Creates:** `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, `.planning/research/`
206
+
207
+ ---
208
+
209
+ ### 2. Discuss Phase
210
+
211
+ ```
212
+ /gsd:discuss-phase 1
213
+ ```
214
+
215
+ **This is where you shape the implementation.**
216
+
217
+ 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.
218
+
219
+ The system analyzes the phase and identifies gray areas based on what's being built:
220
+
221
+ - **Visual features** → Layout, density, interactions, empty states
222
+ - **APIs/CLIs** → Response format, flags, error handling, verbosity
223
+ - **Content systems** → Structure, tone, depth, flow
224
+ - **Organization tasks** → Grouping criteria, naming, duplicates, exceptions
225
+
226
+ For each area you select, it asks until you're satisfied. The output — `CONTEXT.md` — feeds directly into the next two steps:
227
+
228
+ 1. **Researcher reads it** — Knows what patterns to investigate ("user wants card layout" → research SwiftUI card patterns and LazyVGrid)
229
+ 2. **Planner reads it** — Knows what decisions are locked ("tab navigation decided" → plan includes TabView with NavigationStack per tab)
230
+
231
+ 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.
232
+
233
+ **Creates:** `{phase_num}-CONTEXT.md`
234
+
235
+ ---
236
+
237
+ ### 3. Plan Phase
238
+
239
+ ```
240
+ /gsd:plan-phase 1
241
+ ```
242
+
243
+ The system:
244
+
245
+ 1. **Researches** — Investigates how to implement this phase, guided by your CONTEXT.md decisions
246
+ 2. **Plans** — Creates 2-3 atomic task plans with XML structure
247
+ 3. **Verifies** — Checks plans against requirements, loops until they pass
248
+
249
+ Each plan is small enough to execute in a fresh context window. No degradation, no "I'll be more concise now."
250
+
251
+ **Creates:** `{phase_num}-RESEARCH.md`, `{phase_num}-{N}-PLAN.md`
252
+
253
+ ---
254
+
255
+ ### 4. Execute Phase
256
+
257
+ ```
258
+ /gsd:execute-phase 1
259
+ ```
260
+
261
+ The system:
262
+
263
+ 1. **Runs plans in waves** — Parallel where possible, sequential when dependent
264
+ 2. **Fresh context per plan** — 200k tokens purely for implementation, zero accumulated garbage
265
+ 3. **Commits per task** — Every task gets its own atomic commit
266
+ 4. **Verifies against goals** — Checks the codebase delivers what the phase promised
267
+
268
+ Walk away, come back to completed work with clean git history.
269
+
270
+ **How Wave Execution Works:**
271
+
272
+ Plans are grouped into "waves" based on dependencies. Within each wave, plans run in parallel. Waves run sequentially.
273
+
274
+ ```
275
+ ┌─────────────────────────────────────────────────────────────────────┐
276
+ │ PHASE EXECUTION │
277
+ ├─────────────────────────────────────────────────────────────────────┤
278
+ │ │
279
+ │ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
280
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
281
+ │ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
282
+ │ │ │ │ │ │ │ │ │ │ │ │
283
+ │ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
284
+ │ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
285
+ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
286
+ │ │ │ ↑ ↑ ↑ │
287
+ │ └───────────┴──────────────┴───────────┘ │ │
288
+ │ Dependencies: Plan 03 needs Plan 01 │ │
289
+ │ Plan 04 needs Plan 02 │ │
290
+ │ Plan 05 needs Plans 03 + 04 │ │
291
+ │ │
292
+ └─────────────────────────────────────────────────────────────────────┘
293
+ ```
294
+
295
+ **Why waves matter:**
296
+ - Independent plans → Same wave → Run in parallel
297
+ - Dependent plans → Later wave → Wait for dependencies
298
+ - File conflicts → Sequential plans or same plan
299
+
300
+ 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).
301
+
302
+ **Creates:** `{phase_num}-{N}-SUMMARY.md`, `{phase_num}-VERIFICATION.md`
303
+
304
+ ---
305
+
306
+ ### 5. Verify Work
307
+
308
+ ```
309
+ /gsd:verify-work 1
310
+ ```
311
+
312
+ **This is where you confirm it actually works.**
313
+
314
+ Automated verification checks that code exists and tests pass. But does the feature *work* the way you expected? This is your chance to run it in the Simulator, test VoiceOver navigation, and try different Dynamic Type sizes.
315
+
316
+ The system:
317
+
318
+ 1. **Extracts testable deliverables** — What you should be able to do now
319
+ 2. **Walks you through one at a time** — "Can you log in with email?" Yes/no, or describe what's wrong
320
+ 3. **Diagnoses failures automatically** — Spawns debug agents to find root causes
321
+ 4. **Creates verified fix plans** — Ready for immediate re-execution
322
+
323
+ 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.
324
+
325
+ **Creates:** `{phase_num}-UAT.md`, fix plans if issues found
326
+
327
+ ---
328
+
329
+ ### 6. Repeat → Complete → Next Milestone
330
+
331
+ ```
332
+ /gsd:discuss-phase 2
333
+ /gsd:plan-phase 2
334
+ /gsd:execute-phase 2
335
+ /gsd:verify-work 2
336
+ ...
337
+ /gsd:complete-milestone
338
+ /gsd:new-milestone
339
+ ```
340
+
341
+ Loop **discuss → plan → execute → verify** until milestone complete.
342
+
343
+ Each phase gets your input (discuss), proper research (plan), clean execution (execute), and human verification (verify). Context stays fresh. Quality stays high.
344
+
345
+ When all phases are done, `/gsd:complete-milestone` archives the milestone and tags the release.
346
+
347
+ 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.
348
+
349
+ ---
350
+
351
+ ### Quick Mode
352
+
353
+ ```
354
+ /gsd:quick
355
+ ```
356
+
357
+ **For ad-hoc tasks that don't need full planning.**
358
+
359
+ Quick mode gives you GSD guarantees (atomic commits, state tracking) with a faster path:
360
+
361
+ - **Same agents** — Planner + executor, same quality
362
+ - **Skips optional steps** — No research, no plan checker, no verifier
363
+ - **Separate tracking** — Lives in `.planning/quick/`, not phases
364
+
365
+ Use for: bug fixes, small features, config changes, one-off tasks.
366
+
367
+ ```
368
+ /gsd:quick
369
+ > What do you want to do? "Add haptic feedback to the save button"
370
+ ```
371
+
372
+ **Creates:** `.planning/quick/001-add-haptic-feedback/PLAN.md`, `SUMMARY.md`
373
+
374
+ ---
375
+
376
+ ## Why It Works
377
+
378
+ ### Context Engineering
379
+
380
+ Claude Code is incredibly powerful *if* you give it the context it needs. Most people don't.
381
+
382
+ GSD handles it for you:
383
+
384
+ | File | What it does |
385
+ |------|--------------|
386
+ | `PROJECT.md` | Project vision, always loaded |
387
+ | `research/` | Ecosystem knowledge (stack, features, architecture, pitfalls) |
388
+ | `REQUIREMENTS.md` | Scoped v1/v2 requirements with phase traceability |
389
+ | `ROADMAP.md` | Where you're going, what's done |
390
+ | `STATE.md` | Decisions, blockers, position — memory across sessions |
391
+ | `PLAN.md` | Atomic task with XML structure, verification steps |
392
+ | `SUMMARY.md` | What happened, what changed, committed to history |
393
+ | `todos/` | Captured ideas and tasks for later work |
394
+
395
+ Size limits based on where Claude's quality degrades. Stay under, get consistent excellence.
396
+
397
+ ### XML Prompt Formatting
398
+
399
+ Every plan is structured XML optimized for Claude:
400
+
401
+ ```xml
402
+ <task type="auto">
403
+ <n>Create authentication service</n>
404
+ <files>Sources/Features/Auth/AuthService.swift</files>
405
+ <action>
406
+ Use URLSession with async/await for authentication.
407
+ Validate credentials against the server.
408
+ Store token securely in Keychain.
409
+ Mark class with @MainActor for UI-safe state updates.
410
+ </action>
411
+ <verify>
412
+ xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 16'
413
+ -only-testing:MyAppTests/AuthServiceTests
414
+ </verify>
415
+ <done>Valid credentials return token stored in Keychain, invalid throw AuthError.unauthorized</done>
416
+ </task>
417
+ ```
418
+
419
+ Precise instructions. No guessing. Verification built in.
420
+
421
+ ### Multi-Agent Orchestration
422
+
423
+ Every stage uses the same pattern: a thin orchestrator spawns specialized agents, collects results, and routes to the next step.
424
+
425
+ | Stage | Orchestrator does | Agents do |
426
+ |-------|------------------|-----------|
427
+ | Research | Coordinates, presents findings | 4 parallel researchers investigate stack, features, architecture, pitfalls |
428
+ | Planning | Validates, manages iteration | Planner creates plans, checker verifies, loop until pass |
429
+ | Execution | Groups into waves, tracks progress | Executors implement in parallel, each with fresh 200k context |
430
+ | Verification | Presents results, routes next | Verifier checks codebase against goals, debuggers diagnose failures |
431
+
432
+ The orchestrator never does heavy lifting. It spawns agents, waits, integrates results.
433
+
434
+ **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.
435
+
436
+ ### Atomic Git Commits
437
+
438
+ Each task gets its own commit immediately after completion:
439
+
440
+ ```bash
441
+ abc123f docs(08-02): complete user registration plan
442
+ def456g feat(08-02): add email confirmation flow
443
+ hij789k feat(08-02): implement password hashing
444
+ lmn012o feat(08-02): create registration endpoint
445
+ ```
446
+
447
+ > [!NOTE]
448
+ > **Benefits:** Git bisect finds exact failing task. Each task independently revertable. Clear history for Claude in future sessions. Better observability in AI-automated workflow.
449
+
450
+ Every commit is surgical, traceable, and meaningful.
451
+
452
+ ### Modular by Design
453
+
454
+ - Add phases to current milestone
455
+ - Insert urgent work between phases
456
+ - Complete milestones and start fresh
457
+ - Adjust plans without rebuilding everything
458
+
459
+ You're never locked in. The system adapts.
460
+
461
+ ---
462
+
463
+ ## Commands
464
+
465
+ ### Core Workflow
466
+
467
+ | Command | What it does |
468
+ |---------|--------------|
469
+ | `/gsd:new-project [--auto]` | Full initialization: questions → research → requirements → roadmap |
470
+ | `/gsd:discuss-phase [N] [--auto]` | Capture implementation decisions before planning |
471
+ | `/gsd:plan-phase [N] [--auto]` | Research + plan + verify for a phase |
472
+ | `/gsd:execute-phase <N>` | Execute all plans in parallel waves, verify when complete |
473
+ | `/gsd:verify-work [N]` | Manual user acceptance testing ¹ |
474
+ | `/gsd:audit-milestone` | Verify milestone achieved its definition of done |
475
+ | `/gsd:complete-milestone` | Archive milestone, tag release |
476
+ | `/gsd:new-milestone [name]` | Start next version: questions → research → requirements → roadmap |
477
+
478
+ ### Navigation
479
+
480
+ | Command | What it does |
481
+ |---------|--------------|
482
+ | `/gsd:progress` | Where am I? What's next? |
483
+ | `/gsd:help` | Show all commands and usage guide |
484
+ | `/gsd:update` | Update GSD with changelog preview |
485
+
486
+ ### Brownfield
487
+
488
+ | Command | What it does |
489
+ |---------|--------------|
490
+ | `/gsd:map-codebase` | Analyze existing codebase before new-project |
491
+
492
+ ### Phase Management
493
+
494
+ | Command | What it does |
495
+ |---------|--------------|
496
+ | `/gsd:add-phase` | Append phase to roadmap |
497
+ | `/gsd:insert-phase [N]` | Insert urgent work between phases |
498
+ | `/gsd:remove-phase [N]` | Remove future phase, renumber |
499
+ | `/gsd:list-phase-assumptions [N]` | See Claude's intended approach before planning |
500
+ | `/gsd:plan-milestone-gaps` | Create phases to close gaps from audit |
501
+
502
+ ### Session
503
+
504
+ | Command | What it does |
505
+ |---------|--------------|
506
+ | `/gsd:pause-work` | Create handoff when stopping mid-phase |
507
+ | `/gsd:resume-work` | Restore from last session |
508
+
509
+ ### Utilities
510
+
511
+ | Command | What it does |
512
+ |---------|--------------|
513
+ | `/gsd:settings` | Configure model profile and workflow agents |
514
+ | `/gsd:set-profile <profile>` | Switch model profile (quality/balanced/budget) |
515
+ | `/gsd:add-todo [desc]` | Capture idea for later |
516
+ | `/gsd:check-todos` | List pending todos |
517
+ | `/gsd:debug [desc]` | Systematic debugging with persistent state |
518
+ | `/gsd:quick [--full]` | Execute ad-hoc task with GSD guarantees (`--full` adds plan-checking and verification) |
519
+ | `/gsd:health [--repair]` | Validate `.planning/` directory integrity, auto-repair with `--repair` |
520
+
521
+ <sup>¹ Contributed by reddit user OracleGreyBeard</sup>
522
+
523
+ ---
524
+
525
+ ## Configuration
526
+
527
+ 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).
528
+
529
+ ### Core Settings
530
+
531
+ | Setting | Options | Default | What it controls |
532
+ |---------|---------|---------|------------------|
533
+ | `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
534
+ | `depth` | `quick`, `standard`, `comprehensive` | `standard` | Planning thoroughness (phases × plans) |
535
+
536
+ ### Model Profiles
537
+
538
+ Control which Claude model each agent uses. Balance quality vs token spend.
539
+
540
+ | Profile | Planning | Execution | Verification |
541
+ |---------|----------|-----------|--------------|
542
+ | `quality` | Opus | Opus | Sonnet |
543
+ | `balanced` (default) | Opus | Sonnet | Sonnet |
544
+ | `budget` | Sonnet | Sonnet | Haiku |
545
+
546
+ Switch profiles:
547
+ ```
548
+ /gsd:set-profile budget
549
+ ```
550
+
551
+ Or configure via `/gsd:settings`.
552
+
553
+ ### Workflow Agents
554
+
555
+ These spawn additional agents during planning/execution. They improve quality but add tokens and time.
556
+
557
+ | Setting | Default | What it does |
558
+ |---------|---------|--------------|
559
+ | `workflow.research` | `true` | Researches domain before planning each phase |
560
+ | `workflow.plan_check` | `true` | Verifies plans achieve phase goals before execution |
561
+ | `workflow.verifier` | `true` | Confirms must-haves were delivered after execution |
562
+ | `workflow.auto_advance` | `false` | Auto-chain discuss → plan → execute without stopping |
563
+
564
+ Use `/gsd:settings` to toggle these, or override per-invocation:
565
+ - `/gsd:plan-phase --skip-research`
566
+ - `/gsd:plan-phase --skip-verify`
567
+
568
+ ### Execution
569
+
570
+ | Setting | Default | What it controls |
571
+ |---------|---------|------------------|
572
+ | `parallelization.enabled` | `true` | Run independent plans simultaneously |
573
+ | `planning.commit_docs` | `true` | Track `.planning/` in git |
574
+
575
+ ### Git Branching
576
+
577
+ Control how GSD handles branches during execution.
578
+
579
+ | Setting | Options | Default | What it does |
580
+ |---------|---------|---------|--------------|
581
+ | `git.branching_strategy` | `none`, `phase`, `milestone` | `none` | Branch creation strategy |
582
+ | `git.phase_branch_template` | string | `gsd/phase-{phase}-{slug}` | Template for phase branches |
583
+ | `git.milestone_branch_template` | string | `gsd/{milestone}-{slug}` | Template for milestone branches |
584
+
585
+ **Strategies:**
586
+ - **`none`** — Commits to current branch (default GSD behavior)
587
+ - **`phase`** — Creates a branch per phase, merges at phase completion
588
+ - **`milestone`** — Creates one branch for entire milestone, merges at completion
589
+
590
+ At milestone completion, GSD offers squash merge (recommended) or merge with history.
591
+
592
+ ---
593
+
594
+ ## Security
595
+
596
+ ### Protecting Sensitive Files
597
+
598
+ 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:
599
+
600
+ 1. Open Claude Code settings (`.claude/settings.json` or global)
601
+ 2. Add sensitive file patterns to the deny list:
602
+
603
+ ```json
604
+ {
605
+ "permissions": {
606
+ "deny": [
607
+ "Read(.env)",
608
+ "Read(.env.*)",
609
+ "Read(**/secrets/*)",
610
+ "Read(**/*credential*)",
611
+ "Read(**/*.pem)",
612
+ "Read(**/*.key)",
613
+ "Read(**/*.p12)",
614
+ "Read(**/*.mobileprovision)",
615
+ "Read(**/*Provisioning*/)",
616
+ "Read(**/Certificates/)"
617
+ ]
618
+ }
619
+ }
620
+ ```
621
+
622
+ This prevents Claude from reading these files entirely, regardless of what commands you run.
623
+
624
+ > [!IMPORTANT]
625
+ > 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.
626
+
627
+ ---
628
+
629
+ ## Troubleshooting
630
+
631
+ **Commands not found after install?**
632
+ - Restart Claude Code to reload slash commands
633
+ - Verify files exist in `~/.claude/commands/gsd/` (global) or `./.claude/commands/gsd/` (local)
634
+
635
+ **Commands not working as expected?**
636
+ - Run `/gsd:help` to verify installation
637
+ - Reinstall: `npx get-shit-done-ios@latest`
638
+
639
+ **Updating to the latest version?**
640
+ ```bash
641
+ npx get-shit-done-ios@latest
642
+ ```
643
+
644
+ **Xcode build fails after GSD changes?**
645
+ GSD only writes to `.planning/` and generates Swift source files. If Xcode can't find new files, add them to your target in Xcode (File → Add Files to Project). If a generated file has compile errors, run `/gsd:debug` with the error message.
646
+
647
+ ### Uninstalling
648
+
649
+ To remove GSD completely:
650
+
651
+ ```bash
652
+ # Local install (current project)
653
+ npx get-shit-done-ios --claude --local --uninstall
654
+
655
+ # Global install
656
+ npx get-shit-done-ios --claude --global --uninstall
657
+ ```
658
+
659
+ This removes all GSD commands, agents, hooks, and settings while preserving your other configurations.
660
+
661
+ ---
662
+
663
+ ## License
664
+
665
+ MIT License. See [LICENSE](LICENSE) for details.
666
+
667
+ ---
668
+
669
+ <div align="center">
670
+
671
+ **Claude Code is powerful. GSD makes it reliable. This fork makes it native iOS.**
672
+
673
+ </div>