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.
- package/.github/copilot-context/README.md +313 -0
- package/.github/copilot-context/agents/executor.agent.md +59 -0
- package/.github/copilot-context/agents/planner.agent.md +58 -0
- package/.github/copilot-context/agents/verifier.agent.md +68 -0
- package/.github/copilot-context/hooks/hooks.json +11 -0
- package/.github/copilot-context/hooks/inject-context.js +107 -0
- package/.github/copilot-context/instructions/architecture.instructions.md +33 -0
- package/.github/copilot-context/instructions/concerns.instructions.md +30 -0
- package/.github/copilot-context/instructions/conventions.instructions.md +25 -0
- package/.github/copilot-context/instructions/integrations.instructions.md +30 -0
- package/.github/copilot-context/instructions/stack.instructions.md +30 -0
- package/.github/copilot-context/instructions/structure.instructions.md +32 -0
- package/.github/copilot-context/instructions/testing.instructions.md +25 -0
- package/.github/copilot-context/prompts/execute-phase.prompt.md +148 -0
- package/.github/copilot-context/prompts/map-codebase.prompt.md +115 -0
- package/.github/copilot-context/prompts/new-project.prompt.md +85 -0
- package/.github/copilot-context/prompts/pause-work.prompt.md +104 -0
- package/.github/copilot-context/prompts/plan-phase.prompt.md +137 -0
- package/.github/copilot-context/prompts/progress.prompt.md +69 -0
- package/.github/copilot-context/prompts/resume-work.prompt.md +74 -0
- package/.github/copilot-context/prompts/sync-instructions.prompt.md +86 -0
- package/.github/copilot-context/prompts/verify-work.prompt.md +126 -0
- package/.github/copilot-context/skills/map-codebase/SKILL.md +49 -0
- package/.github/copilot-context/skills/project-history/SKILL.md +46 -0
- package/.github/copilot-instructions.md +68 -0
- package/.planning/PROJECT.md +61 -0
- package/.planning/REQUIREMENTS.md +70 -0
- package/.planning/ROADMAP.md +75 -0
- package/.planning/STATE.md +75 -0
- package/.planning/codebase/ARCHITECTURE.md +76 -0
- package/.planning/codebase/CONCERNS.md +102 -0
- package/.planning/codebase/CONVENTIONS.md +119 -0
- package/.planning/codebase/INTEGRATIONS.md +114 -0
- package/.planning/codebase/STACK.md +78 -0
- package/.planning/codebase/STRUCTURE.md +75 -0
- package/.planning/codebase/TESTING.md +157 -0
- package/.planning/continue-here.md +44 -0
- package/.vscode/settings.json +16 -0
- package/LICENSE +21 -0
- package/README.md +704 -0
- package/agents/gsd-codebase-mapper.md +764 -0
- package/agents/gsd-debugger.md +1246 -0
- package/agents/gsd-executor.md +469 -0
- package/agents/gsd-integration-checker.md +443 -0
- package/agents/gsd-phase-researcher.md +546 -0
- package/agents/gsd-plan-checker.md +690 -0
- package/agents/gsd-planner.md +1275 -0
- package/agents/gsd-project-researcher.md +621 -0
- package/agents/gsd-research-synthesizer.md +239 -0
- package/agents/gsd-roadmapper.md +642 -0
- package/agents/gsd-verifier.md +573 -0
- package/bin/install.js +2091 -0
- package/bin/setup-copilot-context.js +180 -0
- package/commands/gsd/add-phase.md +43 -0
- package/commands/gsd/add-tests.md +41 -0
- package/commands/gsd/add-todo.md +47 -0
- package/commands/gsd/audit-milestone.md +36 -0
- package/commands/gsd/check-todos.md +45 -0
- package/commands/gsd/cleanup.md +18 -0
- package/commands/gsd/complete-milestone.md +136 -0
- package/commands/gsd/debug.md +167 -0
- package/commands/gsd/discuss-phase.md +83 -0
- package/commands/gsd/execute-phase.md +41 -0
- package/commands/gsd/health.md +22 -0
- package/commands/gsd/help.md +22 -0
- package/commands/gsd/insert-phase.md +32 -0
- package/commands/gsd/join-discord.md +18 -0
- package/commands/gsd/list-phase-assumptions.md +46 -0
- package/commands/gsd/map-codebase.md +71 -0
- package/commands/gsd/new-milestone.md +44 -0
- package/commands/gsd/new-project.md +42 -0
- package/commands/gsd/new-project.md.bak +1041 -0
- package/commands/gsd/pause-work.md +38 -0
- package/commands/gsd/plan-milestone-gaps.md +34 -0
- package/commands/gsd/plan-phase.md +45 -0
- package/commands/gsd/progress.md +24 -0
- package/commands/gsd/quick.md +41 -0
- package/commands/gsd/reapply-patches.md +110 -0
- package/commands/gsd/remove-phase.md +31 -0
- package/commands/gsd/research-phase.md +189 -0
- package/commands/gsd/resume-work.md +40 -0
- package/commands/gsd/set-profile.md +34 -0
- package/commands/gsd/settings.md +36 -0
- package/commands/gsd/update.md +37 -0
- package/commands/gsd/verify-work.md +38 -0
- package/get-shit-done/bin/gsd-tools.cjs +585 -0
- package/get-shit-done/bin/lib/commands.cjs +553 -0
- package/get-shit-done/bin/lib/config.cjs +162 -0
- package/get-shit-done/bin/lib/core.cjs +411 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
- package/get-shit-done/bin/lib/init.cjs +710 -0
- package/get-shit-done/bin/lib/milestone.cjs +215 -0
- package/get-shit-done/bin/lib/phase.cjs +870 -0
- package/get-shit-done/bin/lib/roadmap.cjs +298 -0
- package/get-shit-done/bin/lib/state.cjs +521 -0
- package/get-shit-done/bin/lib/template.cjs +222 -0
- package/get-shit-done/bin/lib/verify.cjs +772 -0
- package/get-shit-done/references/checkpoints.md +776 -0
- package/get-shit-done/references/continuation-format.md +249 -0
- package/get-shit-done/references/decimal-phase-calculation.md +65 -0
- package/get-shit-done/references/git-integration.md +248 -0
- package/get-shit-done/references/git-planning-commit.md +38 -0
- package/get-shit-done/references/model-profile-resolution.md +34 -0
- package/get-shit-done/references/model-profiles.md +92 -0
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planning-config.md +196 -0
- package/get-shit-done/references/questioning.md +145 -0
- package/get-shit-done/references/tdd.md +263 -0
- package/get-shit-done/references/ui-brand.md +160 -0
- package/get-shit-done/references/verification-patterns.md +612 -0
- package/get-shit-done/templates/DEBUG.md +164 -0
- package/get-shit-done/templates/UAT.md +247 -0
- package/get-shit-done/templates/VALIDATION.md +76 -0
- package/get-shit-done/templates/codebase/architecture.md +255 -0
- package/get-shit-done/templates/codebase/concerns.md +310 -0
- package/get-shit-done/templates/codebase/conventions.md +307 -0
- package/get-shit-done/templates/codebase/integrations.md +280 -0
- package/get-shit-done/templates/codebase/stack.md +186 -0
- package/get-shit-done/templates/codebase/structure.md +285 -0
- package/get-shit-done/templates/codebase/testing.md +480 -0
- package/get-shit-done/templates/config.json +37 -0
- package/get-shit-done/templates/context.md +283 -0
- package/get-shit-done/templates/continue-here.md +78 -0
- package/get-shit-done/templates/debug-subagent-prompt.md +91 -0
- package/get-shit-done/templates/discovery.md +146 -0
- package/get-shit-done/templates/milestone-archive.md +123 -0
- package/get-shit-done/templates/milestone.md +115 -0
- package/get-shit-done/templates/phase-prompt.md +569 -0
- package/get-shit-done/templates/planner-subagent-prompt.md +117 -0
- package/get-shit-done/templates/project.md +184 -0
- package/get-shit-done/templates/requirements.md +231 -0
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
- package/get-shit-done/templates/research-project/FEATURES.md +147 -0
- package/get-shit-done/templates/research-project/PITFALLS.md +200 -0
- package/get-shit-done/templates/research-project/STACK.md +120 -0
- package/get-shit-done/templates/research-project/SUMMARY.md +170 -0
- package/get-shit-done/templates/research.md +552 -0
- package/get-shit-done/templates/retrospective.md +54 -0
- package/get-shit-done/templates/roadmap.md +202 -0
- package/get-shit-done/templates/state.md +176 -0
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +248 -0
- package/get-shit-done/templates/user-setup.md +311 -0
- package/get-shit-done/templates/verification-report.md +322 -0
- package/get-shit-done/workflows/add-phase.md +111 -0
- package/get-shit-done/workflows/add-tests.md +350 -0
- package/get-shit-done/workflows/add-todo.md +157 -0
- package/get-shit-done/workflows/audit-milestone.md +297 -0
- package/get-shit-done/workflows/check-todos.md +176 -0
- package/get-shit-done/workflows/cleanup.md +152 -0
- package/get-shit-done/workflows/complete-milestone.md +763 -0
- package/get-shit-done/workflows/diagnose-issues.md +219 -0
- package/get-shit-done/workflows/discovery-phase.md +289 -0
- package/get-shit-done/workflows/discuss-phase.md +542 -0
- package/get-shit-done/workflows/execute-phase.md +449 -0
- package/get-shit-done/workflows/execute-plan.md +448 -0
- package/get-shit-done/workflows/health.md +156 -0
- package/get-shit-done/workflows/help.md +489 -0
- package/get-shit-done/workflows/insert-phase.md +129 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +178 -0
- package/get-shit-done/workflows/map-codebase.md +315 -0
- package/get-shit-done/workflows/new-milestone.md +382 -0
- package/get-shit-done/workflows/new-project.md +1116 -0
- package/get-shit-done/workflows/pause-work.md +122 -0
- package/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
- package/get-shit-done/workflows/plan-phase.md +569 -0
- package/get-shit-done/workflows/progress.md +381 -0
- package/get-shit-done/workflows/quick.md +453 -0
- package/get-shit-done/workflows/remove-phase.md +154 -0
- package/get-shit-done/workflows/research-phase.md +73 -0
- package/get-shit-done/workflows/resume-project.md +306 -0
- package/get-shit-done/workflows/set-profile.md +80 -0
- package/get-shit-done/workflows/settings.md +213 -0
- package/get-shit-done/workflows/transition.md +544 -0
- package/get-shit-done/workflows/update.md +219 -0
- package/get-shit-done/workflows/verify-phase.md +242 -0
- package/get-shit-done/workflows/verify-work.md +569 -0
- package/hooks/dist/gsd-check-update.js +62 -0
- package/hooks/dist/gsd-context-monitor.js +122 -0
- package/hooks/dist/gsd-statusline.js +108 -0
- package/package.json +54 -0
- 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>
|