ragarciaruben 1.20.7

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 (184) hide show
  1. package/.github/copilot-context/README.md +313 -0
  2. package/.github/copilot-context/agents/executor.agent.md +59 -0
  3. package/.github/copilot-context/agents/planner.agent.md +58 -0
  4. package/.github/copilot-context/agents/verifier.agent.md +68 -0
  5. package/.github/copilot-context/hooks/hooks.json +11 -0
  6. package/.github/copilot-context/hooks/inject-context.js +107 -0
  7. package/.github/copilot-context/instructions/architecture.instructions.md +33 -0
  8. package/.github/copilot-context/instructions/concerns.instructions.md +30 -0
  9. package/.github/copilot-context/instructions/conventions.instructions.md +25 -0
  10. package/.github/copilot-context/instructions/integrations.instructions.md +30 -0
  11. package/.github/copilot-context/instructions/stack.instructions.md +30 -0
  12. package/.github/copilot-context/instructions/structure.instructions.md +32 -0
  13. package/.github/copilot-context/instructions/testing.instructions.md +25 -0
  14. package/.github/copilot-context/prompts/execute-phase.prompt.md +148 -0
  15. package/.github/copilot-context/prompts/map-codebase.prompt.md +115 -0
  16. package/.github/copilot-context/prompts/new-project.prompt.md +85 -0
  17. package/.github/copilot-context/prompts/pause-work.prompt.md +104 -0
  18. package/.github/copilot-context/prompts/plan-phase.prompt.md +137 -0
  19. package/.github/copilot-context/prompts/progress.prompt.md +69 -0
  20. package/.github/copilot-context/prompts/resume-work.prompt.md +74 -0
  21. package/.github/copilot-context/prompts/sync-instructions.prompt.md +86 -0
  22. package/.github/copilot-context/prompts/verify-work.prompt.md +126 -0
  23. package/.github/copilot-context/skills/map-codebase/SKILL.md +49 -0
  24. package/.github/copilot-context/skills/project-history/SKILL.md +46 -0
  25. package/.github/copilot-instructions.md +68 -0
  26. package/.planning/PROJECT.md +61 -0
  27. package/.planning/REQUIREMENTS.md +70 -0
  28. package/.planning/ROADMAP.md +75 -0
  29. package/.planning/STATE.md +75 -0
  30. package/.planning/codebase/ARCHITECTURE.md +76 -0
  31. package/.planning/codebase/CONCERNS.md +102 -0
  32. package/.planning/codebase/CONVENTIONS.md +119 -0
  33. package/.planning/codebase/INTEGRATIONS.md +114 -0
  34. package/.planning/codebase/STACK.md +78 -0
  35. package/.planning/codebase/STRUCTURE.md +75 -0
  36. package/.planning/codebase/TESTING.md +157 -0
  37. package/.planning/continue-here.md +44 -0
  38. package/.vscode/settings.json +16 -0
  39. package/LICENSE +21 -0
  40. package/README.md +704 -0
  41. package/agents/gsd-codebase-mapper.md +764 -0
  42. package/agents/gsd-debugger.md +1246 -0
  43. package/agents/gsd-executor.md +469 -0
  44. package/agents/gsd-integration-checker.md +443 -0
  45. package/agents/gsd-phase-researcher.md +546 -0
  46. package/agents/gsd-plan-checker.md +690 -0
  47. package/agents/gsd-planner.md +1275 -0
  48. package/agents/gsd-project-researcher.md +621 -0
  49. package/agents/gsd-research-synthesizer.md +239 -0
  50. package/agents/gsd-roadmapper.md +642 -0
  51. package/agents/gsd-verifier.md +573 -0
  52. package/bin/install.js +2091 -0
  53. package/bin/setup-copilot-context.js +180 -0
  54. package/commands/gsd/add-phase.md +43 -0
  55. package/commands/gsd/add-tests.md +41 -0
  56. package/commands/gsd/add-todo.md +47 -0
  57. package/commands/gsd/audit-milestone.md +36 -0
  58. package/commands/gsd/check-todos.md +45 -0
  59. package/commands/gsd/cleanup.md +18 -0
  60. package/commands/gsd/complete-milestone.md +136 -0
  61. package/commands/gsd/debug.md +167 -0
  62. package/commands/gsd/discuss-phase.md +83 -0
  63. package/commands/gsd/execute-phase.md +41 -0
  64. package/commands/gsd/health.md +22 -0
  65. package/commands/gsd/help.md +22 -0
  66. package/commands/gsd/insert-phase.md +32 -0
  67. package/commands/gsd/join-discord.md +18 -0
  68. package/commands/gsd/list-phase-assumptions.md +46 -0
  69. package/commands/gsd/map-codebase.md +71 -0
  70. package/commands/gsd/new-milestone.md +44 -0
  71. package/commands/gsd/new-project.md +42 -0
  72. package/commands/gsd/new-project.md.bak +1041 -0
  73. package/commands/gsd/pause-work.md +38 -0
  74. package/commands/gsd/plan-milestone-gaps.md +34 -0
  75. package/commands/gsd/plan-phase.md +45 -0
  76. package/commands/gsd/progress.md +24 -0
  77. package/commands/gsd/quick.md +41 -0
  78. package/commands/gsd/reapply-patches.md +110 -0
  79. package/commands/gsd/remove-phase.md +31 -0
  80. package/commands/gsd/research-phase.md +189 -0
  81. package/commands/gsd/resume-work.md +40 -0
  82. package/commands/gsd/set-profile.md +34 -0
  83. package/commands/gsd/settings.md +36 -0
  84. package/commands/gsd/update.md +37 -0
  85. package/commands/gsd/verify-work.md +38 -0
  86. package/get-shit-done/bin/gsd-tools.cjs +585 -0
  87. package/get-shit-done/bin/lib/commands.cjs +553 -0
  88. package/get-shit-done/bin/lib/config.cjs +162 -0
  89. package/get-shit-done/bin/lib/core.cjs +411 -0
  90. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  91. package/get-shit-done/bin/lib/init.cjs +710 -0
  92. package/get-shit-done/bin/lib/milestone.cjs +215 -0
  93. package/get-shit-done/bin/lib/phase.cjs +870 -0
  94. package/get-shit-done/bin/lib/roadmap.cjs +298 -0
  95. package/get-shit-done/bin/lib/state.cjs +521 -0
  96. package/get-shit-done/bin/lib/template.cjs +222 -0
  97. package/get-shit-done/bin/lib/verify.cjs +772 -0
  98. package/get-shit-done/references/checkpoints.md +776 -0
  99. package/get-shit-done/references/continuation-format.md +249 -0
  100. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  101. package/get-shit-done/references/git-integration.md +248 -0
  102. package/get-shit-done/references/git-planning-commit.md +38 -0
  103. package/get-shit-done/references/model-profile-resolution.md +34 -0
  104. package/get-shit-done/references/model-profiles.md +92 -0
  105. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  106. package/get-shit-done/references/planning-config.md +196 -0
  107. package/get-shit-done/references/questioning.md +145 -0
  108. package/get-shit-done/references/tdd.md +263 -0
  109. package/get-shit-done/references/ui-brand.md +160 -0
  110. package/get-shit-done/references/verification-patterns.md +612 -0
  111. package/get-shit-done/templates/DEBUG.md +164 -0
  112. package/get-shit-done/templates/UAT.md +247 -0
  113. package/get-shit-done/templates/VALIDATION.md +76 -0
  114. package/get-shit-done/templates/codebase/architecture.md +255 -0
  115. package/get-shit-done/templates/codebase/concerns.md +310 -0
  116. package/get-shit-done/templates/codebase/conventions.md +307 -0
  117. package/get-shit-done/templates/codebase/integrations.md +280 -0
  118. package/get-shit-done/templates/codebase/stack.md +186 -0
  119. package/get-shit-done/templates/codebase/structure.md +285 -0
  120. package/get-shit-done/templates/codebase/testing.md +480 -0
  121. package/get-shit-done/templates/config.json +37 -0
  122. package/get-shit-done/templates/context.md +283 -0
  123. package/get-shit-done/templates/continue-here.md +78 -0
  124. package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  125. package/get-shit-done/templates/discovery.md +146 -0
  126. package/get-shit-done/templates/milestone-archive.md +123 -0
  127. package/get-shit-done/templates/milestone.md +115 -0
  128. package/get-shit-done/templates/phase-prompt.md +569 -0
  129. package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  130. package/get-shit-done/templates/project.md +184 -0
  131. package/get-shit-done/templates/requirements.md +231 -0
  132. package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  133. package/get-shit-done/templates/research-project/FEATURES.md +147 -0
  134. package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  135. package/get-shit-done/templates/research-project/STACK.md +120 -0
  136. package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  137. package/get-shit-done/templates/research.md +552 -0
  138. package/get-shit-done/templates/retrospective.md +54 -0
  139. package/get-shit-done/templates/roadmap.md +202 -0
  140. package/get-shit-done/templates/state.md +176 -0
  141. package/get-shit-done/templates/summary-complex.md +59 -0
  142. package/get-shit-done/templates/summary-minimal.md +41 -0
  143. package/get-shit-done/templates/summary-standard.md +48 -0
  144. package/get-shit-done/templates/summary.md +248 -0
  145. package/get-shit-done/templates/user-setup.md +311 -0
  146. package/get-shit-done/templates/verification-report.md +322 -0
  147. package/get-shit-done/workflows/add-phase.md +111 -0
  148. package/get-shit-done/workflows/add-tests.md +350 -0
  149. package/get-shit-done/workflows/add-todo.md +157 -0
  150. package/get-shit-done/workflows/audit-milestone.md +297 -0
  151. package/get-shit-done/workflows/check-todos.md +176 -0
  152. package/get-shit-done/workflows/cleanup.md +152 -0
  153. package/get-shit-done/workflows/complete-milestone.md +763 -0
  154. package/get-shit-done/workflows/diagnose-issues.md +219 -0
  155. package/get-shit-done/workflows/discovery-phase.md +289 -0
  156. package/get-shit-done/workflows/discuss-phase.md +542 -0
  157. package/get-shit-done/workflows/execute-phase.md +449 -0
  158. package/get-shit-done/workflows/execute-plan.md +448 -0
  159. package/get-shit-done/workflows/health.md +156 -0
  160. package/get-shit-done/workflows/help.md +489 -0
  161. package/get-shit-done/workflows/insert-phase.md +129 -0
  162. package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  163. package/get-shit-done/workflows/map-codebase.md +315 -0
  164. package/get-shit-done/workflows/new-milestone.md +382 -0
  165. package/get-shit-done/workflows/new-project.md +1116 -0
  166. package/get-shit-done/workflows/pause-work.md +122 -0
  167. package/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  168. package/get-shit-done/workflows/plan-phase.md +569 -0
  169. package/get-shit-done/workflows/progress.md +381 -0
  170. package/get-shit-done/workflows/quick.md +453 -0
  171. package/get-shit-done/workflows/remove-phase.md +154 -0
  172. package/get-shit-done/workflows/research-phase.md +73 -0
  173. package/get-shit-done/workflows/resume-project.md +306 -0
  174. package/get-shit-done/workflows/set-profile.md +80 -0
  175. package/get-shit-done/workflows/settings.md +213 -0
  176. package/get-shit-done/workflows/transition.md +544 -0
  177. package/get-shit-done/workflows/update.md +219 -0
  178. package/get-shit-done/workflows/verify-phase.md +242 -0
  179. package/get-shit-done/workflows/verify-work.md +569 -0
  180. package/hooks/dist/gsd-check-update.js +62 -0
  181. package/hooks/dist/gsd-context-monitor.js +122 -0
  182. package/hooks/dist/gsd-statusline.js +108 -0
  183. package/package.json +54 -0
  184. package/scripts/build-hooks.js +43 -0
@@ -0,0 +1,180 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ /**
5
+ * setup-copilot-context.js
6
+ *
7
+ * Installs the GSD Copilot Context system into any project.
8
+ * Invoked as: npx get-shit-done-cc copilot-context [target-dir] [--force]
9
+ *
10
+ * What it installs:
11
+ * .github/copilot-instructions.md — always-on digest
12
+ * .github/copilot-context/ — instructions, prompts, agents, skills, hooks
13
+ * .planning/ — source-of-truth template docs
14
+ * .vscode/settings.json — custom path config for VS Code Copilot
15
+ */
16
+
17
+ const fs = require('fs');
18
+ const path = require('path');
19
+
20
+ // ─── Colour helpers (cross-platform) ────────────────────────────────────────
21
+
22
+ const hasColor = process.stdout.isTTY && (
23
+ process.platform !== 'win32' ||
24
+ !!process.env.WT_SESSION ||
25
+ process.env.TERM_PROGRAM === 'vscode' ||
26
+ /^xterm|^screen/.test(process.env.TERM || '')
27
+ );
28
+
29
+ const c = {
30
+ bold: s => hasColor ? `\x1b[1m${s}\x1b[0m` : s,
31
+ green: s => hasColor ? `\x1b[32m${s}\x1b[0m` : s,
32
+ blue: s => hasColor ? `\x1b[34m${s}\x1b[0m` : s,
33
+ cyan: s => hasColor ? `\x1b[36m${s}\x1b[0m` : s,
34
+ yellow:s => hasColor ? `\x1b[33m${s}\x1b[0m` : s,
35
+ dim: s => hasColor ? `\x1b[2m${s}\x1b[0m` : s,
36
+ red: s => hasColor ? `\x1b[31m${s}\x1b[0m` : s,
37
+ };
38
+
39
+ // ─── Args ────────────────────────────────────────────────────────────────────
40
+ // argv: node install.js copilot-context [target-dir] [--force]
41
+ const userArgs = process.argv.slice(3);
42
+ const force = userArgs.includes('--force') || userArgs.includes('-f');
43
+ const targetArg = userArgs.find(a => !a.startsWith('-'));
44
+ const TARGET = targetArg ? path.resolve(targetArg) : process.cwd();
45
+
46
+ // ─── Source paths (inside the npm package, sibling of bin/) ─────────────────
47
+ const PKG_ROOT = path.resolve(__dirname, '..');
48
+
49
+ const SRC_INSTRUCT = path.join(PKG_ROOT, '.github', 'copilot-instructions.md');
50
+ const SRC_CONTEXT = path.join(PKG_ROOT, '.github', 'copilot-context');
51
+ const SRC_PLANNING = path.join(PKG_ROOT, '.planning');
52
+ const SRC_VSCODE = path.join(PKG_ROOT, '.vscode', 'settings.json');
53
+
54
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
55
+
56
+ function ensureDir(dir) {
57
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
58
+ }
59
+
60
+ /** Copy a single file; returns 'copied' | 'skipped' | 'overwritten' */
61
+ function copyFile(src, dest) {
62
+ ensureDir(path.dirname(dest));
63
+ const exists = fs.existsSync(dest);
64
+ if (exists && !force) return 'skipped';
65
+ fs.copyFileSync(src, dest);
66
+ return exists ? 'overwritten' : 'copied';
67
+ }
68
+
69
+ /** Recursively copy a directory tree; collect status for each file */
70
+ function copyDir(src, dest, results = []) {
71
+ ensureDir(dest);
72
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
73
+ const s = path.join(src, entry.name);
74
+ const d = path.join(dest, entry.name);
75
+ if (entry.isDirectory()) {
76
+ copyDir(s, d, results);
77
+ } else {
78
+ results.push({ dest: d, status: copyFile(s, d) });
79
+ }
80
+ }
81
+ return results;
82
+ }
83
+
84
+ function rel(p) {
85
+ return path.relative(TARGET, p);
86
+ }
87
+
88
+ // ─── Pretty print ────────────────────────────────────────────────────────────
89
+
90
+ function printResult(results) {
91
+ let copied = 0, skipped = 0, overwritten = 0;
92
+ for (const { dest, status } of results) {
93
+ if (status === 'copied') { copied++; console.log(` ${c.green('+')} ${rel(dest)}`); }
94
+ if (status === 'overwritten') { overwritten++; console.log(` ${c.yellow('~')} ${rel(dest)}`); }
95
+ if (status === 'skipped') { skipped++; console.log(` ${c.dim('·')} ${rel(dest)} ${c.dim('(skipped)')}`); }
96
+ }
97
+ return { copied, skipped, overwritten };
98
+ }
99
+
100
+ // ─── Main ────────────────────────────────────────────────────────────────────
101
+
102
+ console.log('');
103
+ console.log(c.bold('GSD Copilot Context') + c.dim(' — installing into:'));
104
+ console.log(c.cyan(TARGET));
105
+ console.log('');
106
+
107
+ if (force) console.log(c.yellow('--force: existing files will be overwritten') + '\n');
108
+
109
+ const results = [];
110
+
111
+ // 1. copilot-instructions.md
112
+ if (fs.existsSync(SRC_INSTRUCT)) {
113
+ const dest = path.join(TARGET, '.github', 'copilot-instructions.md');
114
+ const status = copyFile(SRC_INSTRUCT, dest);
115
+ results.push({ dest, status });
116
+ } else {
117
+ console.error(c.red('Error: source not found: ' + SRC_INSTRUCT));
118
+ process.exit(1);
119
+ }
120
+
121
+ // 2. .github/copilot-context/
122
+ if (fs.existsSync(SRC_CONTEXT)) {
123
+ const destDir = path.join(TARGET, '.github', 'copilot-context');
124
+ copyDir(SRC_CONTEXT, destDir, results);
125
+ } else {
126
+ console.error(c.red('Error: source not found: ' + SRC_CONTEXT));
127
+ process.exit(1);
128
+ }
129
+
130
+ // 3. .planning/
131
+ if (fs.existsSync(SRC_PLANNING)) {
132
+ const destDir = path.join(TARGET, '.planning');
133
+ copyDir(SRC_PLANNING, destDir, results);
134
+ } else {
135
+ console.error(c.red('Error: source not found: ' + SRC_PLANNING));
136
+ process.exit(1);
137
+ }
138
+
139
+ // 4. .vscode/settings.json — merge-aware
140
+ const destVscode = path.join(TARGET, '.vscode', 'settings.json');
141
+ if (fs.existsSync(SRC_VSCODE)) {
142
+ if (fs.existsSync(destVscode) && !force) {
143
+ // Existing settings.json — print merge instructions instead of overwriting
144
+ results.push({ dest: destVscode, status: 'skipped' });
145
+ console.log(
146
+ c.yellow('\nNote:') +
147
+ ' .vscode/settings.json already exists.\n' +
148
+ 'To enable Copilot custom paths, merge these keys into your settings.json:\n'
149
+ );
150
+ try {
151
+ const src = JSON.parse(fs.readFileSync(SRC_VSCODE, 'utf8'));
152
+ for (const [k, v] of Object.entries(src)) {
153
+ console.log(` ${c.cyan(JSON.stringify(k))}: ${JSON.stringify(v)}`);
154
+ }
155
+ } catch (_) {
156
+ console.log(fs.readFileSync(SRC_VSCODE, 'utf8'));
157
+ }
158
+ console.log('');
159
+ } else {
160
+ const status = copyFile(SRC_VSCODE, destVscode);
161
+ results.push({ dest: destVscode, status });
162
+ }
163
+ }
164
+
165
+ // ─── Summary ─────────────────────────────────────────────────────────────────
166
+
167
+ console.log(c.bold('Files:'));
168
+ const totals = printResult(results);
169
+ console.log('');
170
+ console.log(
171
+ c.green(`✓ Done`) + ' ' +
172
+ `${totals.copied} copied, ${totals.skipped} skipped, ${totals.overwritten} overwritten`
173
+ );
174
+ console.log('');
175
+ console.log(c.dim('Next steps:'));
176
+ console.log(c.dim(' 1. Fill in .planning/PROJECT.md with your project description'));
177
+ console.log(c.dim(' 2. Run /map-codebase in GitHub Copilot Chat to analyse your codebase'));
178
+ console.log(c.dim(' 3. Run /new-project to initialise .planning/ docs for a new project'));
179
+ console.log(c.dim(' See: .github/copilot-context/README.md'));
180
+ console.log('');
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: gsd:add-phase
3
+ description: Add phase to end of current milestone in roadmap
4
+ argument-hint: <description>
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ ---
10
+
11
+ <objective>
12
+ Add a new integer phase to the end of the current milestone in the roadmap.
13
+
14
+ Routes to the add-phase workflow which handles:
15
+ - Phase number calculation (next sequential integer)
16
+ - Directory creation with slug generation
17
+ - Roadmap structure updates
18
+ - STATE.md roadmap evolution tracking
19
+ </objective>
20
+
21
+ <execution_context>
22
+ @~/.claude/get-shit-done/workflows/add-phase.md
23
+ </execution_context>
24
+
25
+ <context>
26
+ Arguments: $ARGUMENTS (phase description)
27
+
28
+ Roadmap and state are resolved in-workflow via `init phase-op` and targeted tool calls.
29
+ </context>
30
+
31
+ <process>
32
+ **Follow the add-phase workflow** from `@~/.claude/get-shit-done/workflows/add-phase.md`.
33
+
34
+ The workflow handles all logic including:
35
+ 1. Argument parsing and validation
36
+ 2. Roadmap existence checking
37
+ 3. Current milestone identification
38
+ 4. Next phase number calculation (ignoring decimals)
39
+ 5. Slug generation from description
40
+ 6. Phase directory creation
41
+ 7. Roadmap entry insertion
42
+ 8. STATE.md updates
43
+ </process>
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: gsd:add-tests
3
+ description: Generate tests for a completed phase based on UAT criteria and implementation
4
+ argument-hint: "<phase> [additional instructions]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Task
13
+ - AskUserQuestion
14
+ argument-instructions: |
15
+ Parse the argument as a phase number (integer, decimal, or letter-suffix), plus optional free-text instructions.
16
+ Example: /gsd:add-tests 12
17
+ Example: /gsd:add-tests 12 focus on edge cases in the pricing module
18
+ ---
19
+ <objective>
20
+ Generate unit and E2E tests for a completed phase, using its SUMMARY.md, CONTEXT.md, and VERIFICATION.md as specifications.
21
+
22
+ Analyzes implementation files, classifies them into TDD (unit), E2E (browser), or Skip categories, presents a test plan for user approval, then generates tests following RED-GREEN conventions.
23
+
24
+ Output: Test files committed with message `test(phase-{N}): add unit and E2E tests from add-tests command`
25
+ </objective>
26
+
27
+ <execution_context>
28
+ @~/.claude/get-shit-done/workflows/add-tests.md
29
+ </execution_context>
30
+
31
+ <context>
32
+ Phase: $ARGUMENTS
33
+
34
+ @.planning/STATE.md
35
+ @.planning/ROADMAP.md
36
+ </context>
37
+
38
+ <process>
39
+ Execute the add-tests workflow from @~/.claude/get-shit-done/workflows/add-tests.md end-to-end.
40
+ Preserve all workflow gates (classification approval, test plan approval, RED-GREEN verification, gap reporting).
41
+ </process>
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: gsd:add-todo
3
+ description: Capture idea or task as todo from current conversation context
4
+ argument-hint: [optional description]
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - AskUserQuestion
10
+ ---
11
+
12
+ <objective>
13
+ Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work.
14
+
15
+ Routes to the add-todo workflow which handles:
16
+ - Directory structure creation
17
+ - Content extraction from arguments or conversation
18
+ - Area inference from file paths
19
+ - Duplicate detection and resolution
20
+ - Todo file creation with frontmatter
21
+ - STATE.md updates
22
+ - Git commits
23
+ </objective>
24
+
25
+ <execution_context>
26
+ @~/.claude/get-shit-done/workflows/add-todo.md
27
+ </execution_context>
28
+
29
+ <context>
30
+ Arguments: $ARGUMENTS (optional todo description)
31
+
32
+ State is resolved in-workflow via `init todos` and targeted reads.
33
+ </context>
34
+
35
+ <process>
36
+ **Follow the add-todo workflow** from `@~/.claude/get-shit-done/workflows/add-todo.md`.
37
+
38
+ The workflow handles all logic including:
39
+ 1. Directory ensuring
40
+ 2. Existing area checking
41
+ 3. Content extraction (arguments or conversation)
42
+ 4. Area inference
43
+ 5. Duplicate checking
44
+ 6. File creation with slug generation
45
+ 7. STATE.md updates
46
+ 8. Git commits
47
+ </process>
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: gsd:audit-milestone
3
+ description: Audit milestone completion against original intent before archiving
4
+ argument-hint: "[version]"
5
+ allowed-tools:
6
+ - Read
7
+ - Glob
8
+ - Grep
9
+ - Bash
10
+ - Task
11
+ - Write
12
+ ---
13
+ <objective>
14
+ Verify milestone achieved its definition of done. Check requirements coverage, cross-phase integration, and end-to-end flows.
15
+
16
+ **This command IS the orchestrator.** Reads existing VERIFICATION.md files (phases already verified during execute-phase), aggregates tech debt and deferred gaps, then spawns integration checker for cross-phase wiring.
17
+ </objective>
18
+
19
+ <execution_context>
20
+ @~/.claude/get-shit-done/workflows/audit-milestone.md
21
+ </execution_context>
22
+
23
+ <context>
24
+ Version: $ARGUMENTS (optional — defaults to current milestone)
25
+
26
+ Core planning files are resolved in-workflow (`init milestone-op`) and loaded only as needed.
27
+
28
+ **Completed Work:**
29
+ Glob: .planning/phases/*/*-SUMMARY.md
30
+ Glob: .planning/phases/*/*-VERIFICATION.md
31
+ </context>
32
+
33
+ <process>
34
+ Execute the audit-milestone workflow from @~/.claude/get-shit-done/workflows/audit-milestone.md end-to-end.
35
+ Preserve all workflow gates (scope determination, verification reading, integration check, requirements coverage, routing).
36
+ </process>
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: gsd:check-todos
3
+ description: List pending todos and select one to work on
4
+ argument-hint: [area filter]
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - AskUserQuestion
10
+ ---
11
+
12
+ <objective>
13
+ List all pending todos, allow selection, load full context for the selected todo, and route to appropriate action.
14
+
15
+ Routes to the check-todos workflow which handles:
16
+ - Todo counting and listing with area filtering
17
+ - Interactive selection with full context loading
18
+ - Roadmap correlation checking
19
+ - Action routing (work now, add to phase, brainstorm, create phase)
20
+ - STATE.md updates and git commits
21
+ </objective>
22
+
23
+ <execution_context>
24
+ @~/.claude/get-shit-done/workflows/check-todos.md
25
+ </execution_context>
26
+
27
+ <context>
28
+ Arguments: $ARGUMENTS (optional area filter)
29
+
30
+ Todo state and roadmap correlation are loaded in-workflow using `init todos` and targeted reads.
31
+ </context>
32
+
33
+ <process>
34
+ **Follow the check-todos workflow** from `@~/.claude/get-shit-done/workflows/check-todos.md`.
35
+
36
+ The workflow handles all logic including:
37
+ 1. Todo existence checking
38
+ 2. Area filtering
39
+ 3. Interactive listing and selection
40
+ 4. Full context loading with file summaries
41
+ 5. Roadmap correlation checking
42
+ 6. Action offering and execution
43
+ 7. STATE.md updates
44
+ 8. Git commits
45
+ </process>
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: gsd:cleanup
3
+ description: Archive accumulated phase directories from completed milestones
4
+ ---
5
+ <objective>
6
+ Archive phase directories from completed milestones into `.planning/milestones/v{X.Y}-phases/`.
7
+
8
+ Use when `.planning/phases/` has accumulated directories from past milestones.
9
+ </objective>
10
+
11
+ <execution_context>
12
+ @~/.claude/get-shit-done/workflows/cleanup.md
13
+ </execution_context>
14
+
15
+ <process>
16
+ Follow the cleanup workflow at @~/.claude/get-shit-done/workflows/cleanup.md.
17
+ Identify completed milestones, show a dry-run summary, and archive on confirmation.
18
+ </process>
@@ -0,0 +1,136 @@
1
+ ---
2
+ type: prompt
3
+ name: gsd:complete-milestone
4
+ description: Archive completed milestone and prepare for next version
5
+ argument-hint: <version>
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - Bash
10
+ ---
11
+
12
+ <objective>
13
+ Mark milestone {{version}} complete, archive to milestones/, and update ROADMAP.md and REQUIREMENTS.md.
14
+
15
+ Purpose: Create historical record of shipped version, archive milestone artifacts (roadmap + requirements), and prepare for next milestone.
16
+ Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tagged.
17
+ </objective>
18
+
19
+ <execution_context>
20
+ **Load these files NOW (before proceeding):**
21
+
22
+ - @~/.claude/get-shit-done/workflows/complete-milestone.md (main workflow)
23
+ - @~/.claude/get-shit-done/templates/milestone-archive.md (archive template)
24
+ </execution_context>
25
+
26
+ <context>
27
+ **Project files:**
28
+ - `.planning/ROADMAP.md`
29
+ - `.planning/REQUIREMENTS.md`
30
+ - `.planning/STATE.md`
31
+ - `.planning/PROJECT.md`
32
+
33
+ **User input:**
34
+
35
+ - Version: {{version}} (e.g., "1.0", "1.1", "2.0")
36
+ </context>
37
+
38
+ <process>
39
+
40
+ **Follow complete-milestone.md workflow:**
41
+
42
+ 0. **Check for audit:**
43
+
44
+ - Look for `.planning/v{{version}}-MILESTONE-AUDIT.md`
45
+ - If missing or stale: recommend `/gsd:audit-milestone` first
46
+ - If audit status is `gaps_found`: recommend `/gsd:plan-milestone-gaps` first
47
+ - If audit status is `passed`: proceed to step 1
48
+
49
+ ```markdown
50
+ ## Pre-flight Check
51
+
52
+ {If no v{{version}}-MILESTONE-AUDIT.md:}
53
+ ⚠ No milestone audit found. Run `/gsd:audit-milestone` first to verify
54
+ requirements coverage, cross-phase integration, and E2E flows.
55
+
56
+ {If audit has gaps:}
57
+ ⚠ Milestone audit found gaps. Run `/gsd:plan-milestone-gaps` to create
58
+ phases that close the gaps, or proceed anyway to accept as tech debt.
59
+
60
+ {If audit passed:}
61
+ ✓ Milestone audit passed. Proceeding with completion.
62
+ ```
63
+
64
+ 1. **Verify readiness:**
65
+
66
+ - Check all phases in milestone have completed plans (SUMMARY.md exists)
67
+ - Present milestone scope and stats
68
+ - Wait for confirmation
69
+
70
+ 2. **Gather stats:**
71
+
72
+ - Count phases, plans, tasks
73
+ - Calculate git range, file changes, LOC
74
+ - Extract timeline from git log
75
+ - Present summary, confirm
76
+
77
+ 3. **Extract accomplishments:**
78
+
79
+ - Read all phase SUMMARY.md files in milestone range
80
+ - Extract 4-6 key accomplishments
81
+ - Present for approval
82
+
83
+ 4. **Archive milestone:**
84
+
85
+ - Create `.planning/milestones/v{{version}}-ROADMAP.md`
86
+ - Extract full phase details from ROADMAP.md
87
+ - Fill milestone-archive.md template
88
+ - Update ROADMAP.md to one-line summary with link
89
+
90
+ 5. **Archive requirements:**
91
+
92
+ - Create `.planning/milestones/v{{version}}-REQUIREMENTS.md`
93
+ - Mark all v1 requirements as complete (checkboxes checked)
94
+ - Note requirement outcomes (validated, adjusted, dropped)
95
+ - Delete `.planning/REQUIREMENTS.md` (fresh one created for next milestone)
96
+
97
+ 6. **Update PROJECT.md:**
98
+
99
+ - Add "Current State" section with shipped version
100
+ - Add "Next Milestone Goals" section
101
+ - Archive previous content in `<details>` (if v1.1+)
102
+
103
+ 7. **Commit and tag:**
104
+
105
+ - Stage: MILESTONES.md, PROJECT.md, ROADMAP.md, STATE.md, archive files
106
+ - Commit: `chore: archive v{{version}} milestone`
107
+ - Tag: `git tag -a v{{version}} -m "[milestone summary]"`
108
+ - Ask about pushing tag
109
+
110
+ 8. **Offer next steps:**
111
+ - `/gsd:new-milestone` — start next milestone (questioning → research → requirements → roadmap)
112
+
113
+ </process>
114
+
115
+ <success_criteria>
116
+
117
+ - Milestone archived to `.planning/milestones/v{{version}}-ROADMAP.md`
118
+ - Requirements archived to `.planning/milestones/v{{version}}-REQUIREMENTS.md`
119
+ - `.planning/REQUIREMENTS.md` deleted (fresh for next milestone)
120
+ - ROADMAP.md collapsed to one-line entry
121
+ - PROJECT.md updated with current state
122
+ - Git tag v{{version}} created
123
+ - Commit successful
124
+ - User knows next steps (including need for fresh requirements)
125
+ </success_criteria>
126
+
127
+ <critical_rules>
128
+
129
+ - **Load workflow first:** Read complete-milestone.md before executing
130
+ - **Verify completion:** All phases must have SUMMARY.md files
131
+ - **User confirmation:** Wait for approval at verification gates
132
+ - **Archive before deleting:** Always create archive files before updating/deleting originals
133
+ - **One-line summary:** Collapsed milestone in ROADMAP.md should be single line with link
134
+ - **Context efficiency:** Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone
135
+ - **Fresh requirements:** Next milestone starts with `/gsd:new-milestone` which includes requirements definition
136
+ </critical_rules>