gsd-vscode-copilot 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +93 -0
- package/bin/init.js +184 -0
- package/package.json +32 -0
- package/templates/gsd-workflow.instructions.md +75 -0
- package/templates/planning-stubs/PROJECT.md +31 -0
- package/templates/planning-stubs/README.md +28 -0
- package/templates/planning-stubs/REQUIREMENTS.md +21 -0
- package/templates/planning-stubs/ROADMAP.md +43 -0
- package/templates/planning-stubs/STATE.md +33 -0
- package/templates/prompts/gsd-bootstrap-planning.prompt.md +52 -0
- package/templates/prompts/gsd-execute-plan.prompt.md +96 -0
- package/templates/prompts/gsd-plan-slice.prompt.md +105 -0
- package/templates/prompts/gsd-progress.prompt.md +50 -0
- package/templates/prompts/gsd-verify-work.prompt.md +60 -0
- package/templates/vendor/references/checkpoints.md +123 -0
- package/templates/vendor/templates/phase-prompt.md +242 -0
- package/templates/vendor/templates/summary.md +155 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025
|
|
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,93 @@
|
|
|
1
|
+
# GSD for VS Code + GitHub Copilot
|
|
2
|
+
|
|
3
|
+
A lightweight planning and execution workflow for building software with AI assistance.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx gsd-vscode-copilot
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or install globally:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install -g gsd-vscode-copilot
|
|
15
|
+
gsd-init
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## What it installs
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
your-project/
|
|
22
|
+
├── .github/
|
|
23
|
+
│ ├── prompts/
|
|
24
|
+
│ │ ├── gsd-bootstrap-planning.prompt.md
|
|
25
|
+
│ │ ├── gsd-plan-slice.prompt.md
|
|
26
|
+
│ │ ├── gsd-execute-plan.prompt.md
|
|
27
|
+
│ │ ├── gsd-verify-work.prompt.md
|
|
28
|
+
│ │ └── gsd-progress.prompt.md
|
|
29
|
+
│ ├── instructions/
|
|
30
|
+
│ │ └── gsd-workflow.instructions.md
|
|
31
|
+
│ └── vendor/
|
|
32
|
+
│ └── get-shit-done/
|
|
33
|
+
│ ├── templates/
|
|
34
|
+
│ │ ├── phase-prompt.md
|
|
35
|
+
│ │ └── summary.md
|
|
36
|
+
│ └── references/
|
|
37
|
+
│ └── checkpoints.md
|
|
38
|
+
└── .planning/
|
|
39
|
+
├── PROJECT.md
|
|
40
|
+
├── REQUIREMENTS.md
|
|
41
|
+
├── ROADMAP.md
|
|
42
|
+
├── STATE.md
|
|
43
|
+
└── phases/
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
### 1. Bootstrap your project
|
|
49
|
+
|
|
50
|
+
Open `.github/prompts/gsd-bootstrap-planning.prompt.md` and run it with Copilot. This initializes your project memory in `.planning/`.
|
|
51
|
+
|
|
52
|
+
### 2. Plan a slice
|
|
53
|
+
|
|
54
|
+
Run `gsd-plan-slice.prompt.md` to create a 2-3 task plan for the next piece of work.
|
|
55
|
+
|
|
56
|
+
### 3. Execute the plan
|
|
57
|
+
|
|
58
|
+
Run `gsd-execute-plan.prompt.md` with the path to your plan file.
|
|
59
|
+
|
|
60
|
+
### 4. Verify (optional)
|
|
61
|
+
|
|
62
|
+
Run `gsd-verify-work.prompt.md` for conversational user acceptance testing.
|
|
63
|
+
|
|
64
|
+
### 5. Check progress
|
|
65
|
+
|
|
66
|
+
Run `gsd-progress.prompt.md` to see where you are and what's next.
|
|
67
|
+
|
|
68
|
+
## Core Principles
|
|
69
|
+
|
|
70
|
+
- **Small plans**: 2-3 tasks max per plan
|
|
71
|
+
- **Explicit verification**: Every task has a verify command
|
|
72
|
+
- **Context hygiene**: Fresh context for each plan execution
|
|
73
|
+
- **Atomic commits**: One logical commit per plan
|
|
74
|
+
|
|
75
|
+
## Stack-Agnostic
|
|
76
|
+
|
|
77
|
+
The workflow doesn't assume any particular tech stack. Plans carry their own verification commands appropriate to your project:
|
|
78
|
+
|
|
79
|
+
| Stack | Example verify |
|
|
80
|
+
|-------|----------------|
|
|
81
|
+
| Node | `npm test` |
|
|
82
|
+
| Python | `pytest` |
|
|
83
|
+
| .NET | `dotnet test` |
|
|
84
|
+
| Go | `go test ./...` |
|
|
85
|
+
| Rust | `cargo test` |
|
|
86
|
+
|
|
87
|
+
## Credits
|
|
88
|
+
|
|
89
|
+
Inspired by [glittercowboy/get-shit-done](https://github.com/glittercowboy/get-shit-done), adapted for VS Code + GitHub Copilot workflows.
|
|
90
|
+
|
|
91
|
+
## License
|
|
92
|
+
|
|
93
|
+
MIT
|
package/bin/init.js
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
const TEMPLATES_DIR = path.join(__dirname, '..', 'templates');
|
|
7
|
+
const TARGET_DIR = process.cwd();
|
|
8
|
+
|
|
9
|
+
// Colors for terminal output
|
|
10
|
+
const green = (text) => `\x1b[32m${text}\x1b[0m`;
|
|
11
|
+
const yellow = (text) => `\x1b[33m${text}\x1b[0m`;
|
|
12
|
+
const cyan = (text) => `\x1b[36m${text}\x1b[0m`;
|
|
13
|
+
const bold = (text) => `\x1b[1m${text}\x1b[0m`;
|
|
14
|
+
|
|
15
|
+
console.log(`
|
|
16
|
+
${bold(cyan('╔═══════════════════════════════════════════════════════╗'))}
|
|
17
|
+
${bold(cyan('║'))} ${bold('GSD for VS Code + GitHub Copilot')} ${bold(cyan('║'))}
|
|
18
|
+
${bold(cyan('║'))} Lightweight planning & execution workflow ${bold(cyan('║'))}
|
|
19
|
+
${bold(cyan('╚═══════════════════════════════════════════════════════╝'))}
|
|
20
|
+
`);
|
|
21
|
+
|
|
22
|
+
// Parse args
|
|
23
|
+
const args = process.argv.slice(2);
|
|
24
|
+
const forceOverwrite = args.includes('--force') || args.includes('-f');
|
|
25
|
+
const showHelp = args.includes('--help') || args.includes('-h');
|
|
26
|
+
|
|
27
|
+
if (showHelp) {
|
|
28
|
+
console.log(`
|
|
29
|
+
${bold('Usage:')} npx gsd-vscode-copilot [options]
|
|
30
|
+
|
|
31
|
+
${bold('Options:')}
|
|
32
|
+
-f, --force Overwrite existing files
|
|
33
|
+
-h, --help Show this help message
|
|
34
|
+
|
|
35
|
+
${bold('What it does:')}
|
|
36
|
+
1. Creates .github/prompts/gsd-*.prompt.md (Copilot prompt files)
|
|
37
|
+
2. Creates .github/instructions/gsd-workflow.instructions.md
|
|
38
|
+
3. Creates .github/vendor/get-shit-done/ (templates & workflows)
|
|
39
|
+
4. Creates .planning/ with PROJECT/REQUIREMENTS/ROADMAP/STATE stubs
|
|
40
|
+
|
|
41
|
+
${bold('After installing:')}
|
|
42
|
+
1. Open any gsd-*.prompt.md in VS Code
|
|
43
|
+
2. Click "Run" or use the Copilot prompt runner
|
|
44
|
+
3. Start with gsd-bootstrap-planning.prompt.md to initialize your project
|
|
45
|
+
`);
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Helper: recursively copy directory
|
|
50
|
+
function copyDir(src, dest, options = {}) {
|
|
51
|
+
const { overwrite = false, createdFiles = [] } = options;
|
|
52
|
+
|
|
53
|
+
if (!fs.existsSync(dest)) {
|
|
54
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
58
|
+
|
|
59
|
+
for (const entry of entries) {
|
|
60
|
+
const srcPath = path.join(src, entry.name);
|
|
61
|
+
const destPath = path.join(dest, entry.name);
|
|
62
|
+
|
|
63
|
+
if (entry.isDirectory()) {
|
|
64
|
+
copyDir(srcPath, destPath, { overwrite, createdFiles });
|
|
65
|
+
} else {
|
|
66
|
+
if (!fs.existsSync(destPath) || overwrite) {
|
|
67
|
+
fs.copyFileSync(srcPath, destPath);
|
|
68
|
+
createdFiles.push(destPath.replace(TARGET_DIR + '/', ''));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return createdFiles;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Helper: create file if not exists (or if force)
|
|
77
|
+
function createFileIfNotExists(filePath, content, overwrite = false) {
|
|
78
|
+
const fullPath = path.join(TARGET_DIR, filePath);
|
|
79
|
+
const dir = path.dirname(fullPath);
|
|
80
|
+
|
|
81
|
+
if (!fs.existsSync(dir)) {
|
|
82
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (!fs.existsSync(fullPath) || overwrite) {
|
|
86
|
+
fs.writeFileSync(fullPath, content);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const createdFiles = [];
|
|
93
|
+
const skippedFiles = [];
|
|
94
|
+
|
|
95
|
+
// 1. Copy prompts
|
|
96
|
+
console.log(`${cyan('→')} Installing Copilot prompt files...`);
|
|
97
|
+
const promptsSrc = path.join(TEMPLATES_DIR, 'prompts');
|
|
98
|
+
const promptsDest = path.join(TARGET_DIR, '.github', 'prompts');
|
|
99
|
+
|
|
100
|
+
if (fs.existsSync(promptsSrc)) {
|
|
101
|
+
copyDir(promptsSrc, promptsDest, { overwrite: forceOverwrite, createdFiles });
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// 2. Copy vendor (workflows + templates)
|
|
105
|
+
console.log(`${cyan('→')} Installing GSD vendor assets...`);
|
|
106
|
+
const vendorSrc = path.join(TEMPLATES_DIR, 'vendor');
|
|
107
|
+
const vendorDest = path.join(TARGET_DIR, '.github', 'vendor', 'get-shit-done');
|
|
108
|
+
|
|
109
|
+
if (fs.existsSync(vendorSrc)) {
|
|
110
|
+
copyDir(vendorSrc, vendorDest, { overwrite: forceOverwrite, createdFiles });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// 3. Create instructions file
|
|
114
|
+
console.log(`${cyan('→')} Installing workflow instructions...`);
|
|
115
|
+
const instructionsPath = '.github/instructions/gsd-workflow.instructions.md';
|
|
116
|
+
const instructionsSrc = path.join(TEMPLATES_DIR, 'gsd-workflow.instructions.md');
|
|
117
|
+
|
|
118
|
+
if (fs.existsSync(instructionsSrc)) {
|
|
119
|
+
const content = fs.readFileSync(instructionsSrc, 'utf8');
|
|
120
|
+
if (createFileIfNotExists(instructionsPath, content, forceOverwrite)) {
|
|
121
|
+
createdFiles.push(instructionsPath);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// 4. Create .planning stubs
|
|
126
|
+
console.log(`${cyan('→')} Creating planning directory...`);
|
|
127
|
+
const planningStubsSrc = path.join(TEMPLATES_DIR, 'planning-stubs');
|
|
128
|
+
|
|
129
|
+
if (fs.existsSync(planningStubsSrc)) {
|
|
130
|
+
const stubs = fs.readdirSync(planningStubsSrc);
|
|
131
|
+
for (const stub of stubs) {
|
|
132
|
+
const content = fs.readFileSync(path.join(planningStubsSrc, stub), 'utf8');
|
|
133
|
+
const destPath = `.planning/${stub}`;
|
|
134
|
+
if (createFileIfNotExists(destPath, content, false)) { // Never overwrite planning files
|
|
135
|
+
createdFiles.push(destPath);
|
|
136
|
+
} else {
|
|
137
|
+
skippedFiles.push(destPath);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Create phases directory
|
|
143
|
+
const phasesDir = path.join(TARGET_DIR, '.planning', 'phases');
|
|
144
|
+
if (!fs.existsSync(phasesDir)) {
|
|
145
|
+
fs.mkdirSync(phasesDir, { recursive: true });
|
|
146
|
+
createdFiles.push('.planning/phases/');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Summary
|
|
150
|
+
console.log('');
|
|
151
|
+
console.log(`${green('✓')} ${bold('GSD installed successfully!')}`);
|
|
152
|
+
console.log('');
|
|
153
|
+
|
|
154
|
+
if (createdFiles.length > 0) {
|
|
155
|
+
console.log(`${bold('Created:')}`);
|
|
156
|
+
createdFiles.slice(0, 10).forEach(f => console.log(` ${green('+')} ${f}`));
|
|
157
|
+
if (createdFiles.length > 10) {
|
|
158
|
+
console.log(` ${cyan('...')} and ${createdFiles.length - 10} more files`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (skippedFiles.length > 0) {
|
|
163
|
+
console.log('');
|
|
164
|
+
console.log(`${bold('Skipped (already exist):')}`);
|
|
165
|
+
skippedFiles.forEach(f => console.log(` ${yellow('○')} ${f}`));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
console.log(`
|
|
169
|
+
${bold('Next steps:')}
|
|
170
|
+
|
|
171
|
+
${cyan('1.')} Open ${bold('.github/prompts/gsd-bootstrap-planning.prompt.md')} in VS Code
|
|
172
|
+
${cyan('2.')} Run the prompt with Copilot to initialize your project memory
|
|
173
|
+
${cyan('3.')} Use ${bold('gsd-plan-slice.prompt.md')} to create your first plan
|
|
174
|
+
${cyan('4.')} Use ${bold('gsd-execute-plan.prompt.md')} to execute it
|
|
175
|
+
|
|
176
|
+
${bold('Available prompts:')}
|
|
177
|
+
• gsd-bootstrap-planning — Initialize .planning/* files
|
|
178
|
+
• gsd-plan-slice — Create a 2-3 task plan
|
|
179
|
+
• gsd-execute-plan — Execute a plan file
|
|
180
|
+
• gsd-verify-work — Conversational UAT
|
|
181
|
+
• gsd-progress — Check status and next action
|
|
182
|
+
|
|
183
|
+
${cyan('Docs:')} .github/vendor/get-shit-done/
|
|
184
|
+
`);
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gsd-vscode-copilot",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "GSD workflow for VS Code + GitHub Copilot. Lightweight planning, execution, and verification system.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"gsd",
|
|
7
|
+
"get-shit-done",
|
|
8
|
+
"vscode",
|
|
9
|
+
"copilot",
|
|
10
|
+
"github-copilot",
|
|
11
|
+
"planning",
|
|
12
|
+
"spec-driven-development",
|
|
13
|
+
"context-engineering"
|
|
14
|
+
],
|
|
15
|
+
"author": "Your Name",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/YOUR_ORG/gsd-vscode-copilot"
|
|
20
|
+
},
|
|
21
|
+
"bin": {
|
|
22
|
+
"gsd-vscode-copilot": "./bin/init.js",
|
|
23
|
+
"gsd-init": "./bin/init.js"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"bin/",
|
|
27
|
+
"templates/"
|
|
28
|
+
],
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=16"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "GSD-style workflow for VS Code + GitHub Copilot (planning + execution)"
|
|
3
|
+
applyTo: "**"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GSD-Style Workflow (VS Code + Copilot)
|
|
7
|
+
|
|
8
|
+
This repo uses a lightweight GSD (Get Shit Done) workflow for planning and execution.
|
|
9
|
+
It provides **context hygiene, atomic plans, explicit verification, and disciplined checkpoints**.
|
|
10
|
+
|
|
11
|
+
## Planning Artifacts (Repository Memory)
|
|
12
|
+
|
|
13
|
+
Maintain these files under `.planning/`:
|
|
14
|
+
|
|
15
|
+
| File | Purpose |
|
|
16
|
+
|------|---------|
|
|
17
|
+
| `PROJECT.md` | Product/feature vision, constraints, non-goals |
|
|
18
|
+
| `REQUIREMENTS.md` | v1/v2/out-of-scope requirements (checkable) |
|
|
19
|
+
| `ROADMAP.md` | Phases/slices with links to plan IDs |
|
|
20
|
+
| `STATE.md` | Current position, decisions, blockers, next action |
|
|
21
|
+
|
|
22
|
+
## Execution Rules
|
|
23
|
+
|
|
24
|
+
- Prefer automation: if it can be done via CLI/tooling, do it.
|
|
25
|
+
- Plans must be small: **2–3 tasks max** per plan file.
|
|
26
|
+
- Every task must include:
|
|
27
|
+
- **Action**: what to do and what to avoid (and why)
|
|
28
|
+
- **Verify**: exact command(s) / checks to prove it worked
|
|
29
|
+
- **Done**: measurable acceptance criteria
|
|
30
|
+
- Stop for checkpoints only when unavoidable:
|
|
31
|
+
- human verification (UI/UX),
|
|
32
|
+
- human decision (architecture/product choice),
|
|
33
|
+
- auth gates (login/consent needed).
|
|
34
|
+
|
|
35
|
+
## Plan Format
|
|
36
|
+
|
|
37
|
+
- Location: `.planning/phases/<NN-name>/<NN-NN-PLAN.md>`
|
|
38
|
+
- Structure: YAML frontmatter + XML tasks (see vendor templates)
|
|
39
|
+
- Reference: `.github/vendor/get-shit-done/templates/phase-prompt.md`
|
|
40
|
+
|
|
41
|
+
## Workflow Prompts
|
|
42
|
+
|
|
43
|
+
Use the prompt files in `.github/prompts/`:
|
|
44
|
+
|
|
45
|
+
| Prompt | When to use |
|
|
46
|
+
|--------|-------------|
|
|
47
|
+
| `gsd-bootstrap-planning.prompt.md` | Initialize `.planning/*` for a new project |
|
|
48
|
+
| `gsd-plan-slice.prompt.md` | Create a 2–3 task plan for the next slice |
|
|
49
|
+
| `gsd-execute-plan.prompt.md` | Execute a plan file |
|
|
50
|
+
| `gsd-verify-work.prompt.md` | Conversational UAT after execution |
|
|
51
|
+
| `gsd-progress.prompt.md` | Check current status and next action |
|
|
52
|
+
|
|
53
|
+
## STATE.md Discipline
|
|
54
|
+
|
|
55
|
+
Whenever you:
|
|
56
|
+
- make a decision,
|
|
57
|
+
- discover a constraint,
|
|
58
|
+
- hit a blocker,
|
|
59
|
+
- finish a slice,
|
|
60
|
+
|
|
61
|
+
…record it in `.planning/STATE.md` with the next action.
|
|
62
|
+
|
|
63
|
+
## Verification Conventions
|
|
64
|
+
|
|
65
|
+
Adapt verification commands to your stack:
|
|
66
|
+
|
|
67
|
+
| Stack | Example verify commands |
|
|
68
|
+
|-------|------------------------|
|
|
69
|
+
| Node/npm | `npm run build`, `npm test` |
|
|
70
|
+
| Python | `pytest`, `python -m mypy .` |
|
|
71
|
+
| .NET | `dotnet build`, `dotnet test` |
|
|
72
|
+
| Go | `go build ./...`, `go test ./...` |
|
|
73
|
+
| Rust | `cargo build`, `cargo test` |
|
|
74
|
+
|
|
75
|
+
Plans carry the specific verify commands — the workflow is stack-agnostic.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Project
|
|
2
|
+
|
|
3
|
+
## Vision
|
|
4
|
+
|
|
5
|
+
<!-- What are you building? One paragraph max. -->
|
|
6
|
+
|
|
7
|
+
TODO: Describe your product/feature vision.
|
|
8
|
+
|
|
9
|
+
## Constraints
|
|
10
|
+
|
|
11
|
+
<!-- Hard limits: timeline, budget, tech requirements, integrations -->
|
|
12
|
+
|
|
13
|
+
- TODO: Add constraints
|
|
14
|
+
|
|
15
|
+
## Non-Goals
|
|
16
|
+
|
|
17
|
+
<!-- Explicitly out of scope for this project -->
|
|
18
|
+
|
|
19
|
+
- TODO: Add non-goals
|
|
20
|
+
|
|
21
|
+
## Tech Stack
|
|
22
|
+
|
|
23
|
+
<!-- Languages, frameworks, key libraries -->
|
|
24
|
+
|
|
25
|
+
- TODO: Define tech stack
|
|
26
|
+
|
|
27
|
+
## Success Metrics
|
|
28
|
+
|
|
29
|
+
<!-- How will you know it's working? -->
|
|
30
|
+
|
|
31
|
+
- TODO: Define success metrics
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# .planning
|
|
2
|
+
|
|
3
|
+
This folder is the project memory for the GSD workflow.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Purpose |
|
|
8
|
+
|------|---------|
|
|
9
|
+
| `PROJECT.md` | Vision, constraints, non-goals |
|
|
10
|
+
| `REQUIREMENTS.md` | Checkable requirements (v1/v2/out-of-scope) |
|
|
11
|
+
| `ROADMAP.md` | Phased slices with status |
|
|
12
|
+
| `STATE.md` | Current position, decisions, next action |
|
|
13
|
+
| `phases/` | Plan and summary files per phase |
|
|
14
|
+
| `uat/` | User acceptance testing notes |
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
1. **Bootstrap** — Run `gsd-bootstrap-planning.prompt.md` to initialize
|
|
19
|
+
2. **Plan** — Run `gsd-plan-slice.prompt.md` to create a 2-3 task plan
|
|
20
|
+
3. **Execute** — Run `gsd-execute-plan.prompt.md` to implement
|
|
21
|
+
4. **Verify** — Run `gsd-verify-work.prompt.md` for UAT
|
|
22
|
+
5. **Check** — Run `gsd-progress.prompt.md` for status
|
|
23
|
+
|
|
24
|
+
## Templates
|
|
25
|
+
|
|
26
|
+
See `.github/vendor/get-shit-done/` for:
|
|
27
|
+
- `templates/phase-prompt.md` — Plan file format
|
|
28
|
+
- `templates/summary.md` — Summary file format
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Requirements
|
|
2
|
+
|
|
3
|
+
## v1 (Must Have)
|
|
4
|
+
|
|
5
|
+
<!-- Core functionality for initial release -->
|
|
6
|
+
|
|
7
|
+
- [ ] REQ-01: TODO
|
|
8
|
+
- [ ] REQ-02: TODO
|
|
9
|
+
- [ ] REQ-03: TODO
|
|
10
|
+
|
|
11
|
+
## v2 (Nice to Have)
|
|
12
|
+
|
|
13
|
+
<!-- Future enhancements -->
|
|
14
|
+
|
|
15
|
+
- [ ] REQ-10: TODO
|
|
16
|
+
|
|
17
|
+
## Out of Scope
|
|
18
|
+
|
|
19
|
+
<!-- Explicitly excluded -->
|
|
20
|
+
|
|
21
|
+
- TODO: List what you're NOT building
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Roadmap
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
<!-- Brief summary of the milestone -->
|
|
6
|
+
|
|
7
|
+
Building: TODO
|
|
8
|
+
|
|
9
|
+
## Phases
|
|
10
|
+
|
|
11
|
+
### Phase 1: Foundation
|
|
12
|
+
**Goal:** TODO - What this phase delivers
|
|
13
|
+
**Requirements:** REQ-01, REQ-02
|
|
14
|
+
**Status:** Not started
|
|
15
|
+
|
|
16
|
+
Plans:
|
|
17
|
+
- [ ] 01-01: TODO
|
|
18
|
+
|
|
19
|
+
### Phase 2: Core Features
|
|
20
|
+
**Goal:** TODO
|
|
21
|
+
**Requirements:** REQ-03
|
|
22
|
+
**Depends on:** Phase 1
|
|
23
|
+
**Status:** Not started
|
|
24
|
+
|
|
25
|
+
Plans:
|
|
26
|
+
- [ ] 02-01: TODO
|
|
27
|
+
|
|
28
|
+
### Phase 3: Polish & Ship
|
|
29
|
+
**Goal:** TODO
|
|
30
|
+
**Requirements:** REQ-04
|
|
31
|
+
**Depends on:** Phase 2
|
|
32
|
+
**Status:** Not started
|
|
33
|
+
|
|
34
|
+
Plans:
|
|
35
|
+
- [ ] 03-01: TODO
|
|
36
|
+
|
|
37
|
+
## Progress
|
|
38
|
+
|
|
39
|
+
| Phase | Plans | Status | Completed |
|
|
40
|
+
|-------|-------|--------|-----------|
|
|
41
|
+
| 1. Foundation | 0/1 | Not started | - |
|
|
42
|
+
| 2. Core Features | 0/1 | Not started | - |
|
|
43
|
+
| 3. Polish & Ship | 0/1 | Not started | - |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# State
|
|
2
|
+
|
|
3
|
+
## Project Reference
|
|
4
|
+
|
|
5
|
+
- **Project:** See PROJECT.md
|
|
6
|
+
- **Last updated:** TODO
|
|
7
|
+
|
|
8
|
+
## Current Position
|
|
9
|
+
|
|
10
|
+
- **Phase:** 1 of 3 (Foundation)
|
|
11
|
+
- **Plan:** Not started
|
|
12
|
+
- **Status:** Ready to plan
|
|
13
|
+
- **Last activity:** Project initialized
|
|
14
|
+
|
|
15
|
+
Progress: ░░░░░░░░░░ 0%
|
|
16
|
+
|
|
17
|
+
## Decisions
|
|
18
|
+
|
|
19
|
+
| Phase | Decision | Rationale |
|
|
20
|
+
|-------|----------|-----------|
|
|
21
|
+
| - | - | - |
|
|
22
|
+
|
|
23
|
+
## Blockers / Concerns
|
|
24
|
+
|
|
25
|
+
<!-- Active blockers preventing progress -->
|
|
26
|
+
|
|
27
|
+
None
|
|
28
|
+
|
|
29
|
+
## Session Continuity
|
|
30
|
+
|
|
31
|
+
- **Last session:** TODO
|
|
32
|
+
- **Stopped at:** Project initialized
|
|
33
|
+
- **Resume with:** Run `gsd-plan-slice` for Phase 1
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "GSD: Bootstrap planning files (.planning/*)"
|
|
3
|
+
argument-hint: "Optional: tell me the product vision, constraints, and near-term goals."
|
|
4
|
+
agent: agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Create (or update) the repository planning artifacts under `.planning/`.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
1. If `.planning/` does not exist, create it.
|
|
12
|
+
2. If the files below do not exist, create them with lightweight templates.
|
|
13
|
+
3. If they already exist, do not rewrite them wholesale—only refine headings and fill obvious missing essentials.
|
|
14
|
+
|
|
15
|
+
## Files to ensure exist
|
|
16
|
+
|
|
17
|
+
- `.planning/PROJECT.md` — Product vision, constraints, non-goals
|
|
18
|
+
- `.planning/REQUIREMENTS.md` — v1/v2/out-of-scope requirements (checkable)
|
|
19
|
+
- `.planning/ROADMAP.md` — Phased slices with status tracking
|
|
20
|
+
- `.planning/STATE.md` — Current position, decisions, blockers, next action
|
|
21
|
+
|
|
22
|
+
Also ensure the phase workspace exists:
|
|
23
|
+
- `.planning/phases/` (for `*-PLAN.md` and `*-SUMMARY.md` files)
|
|
24
|
+
|
|
25
|
+
## Style
|
|
26
|
+
|
|
27
|
+
- Keep content concise and skimmable.
|
|
28
|
+
- Prefer checklists and short bullets.
|
|
29
|
+
- Don't invent product decisions—ask questions where needed.
|
|
30
|
+
|
|
31
|
+
## Questions
|
|
32
|
+
|
|
33
|
+
Before writing substantial content, ask me the minimum set of questions needed to make these files useful (aim for 5–10). Example questions:
|
|
34
|
+
|
|
35
|
+
1. What is the core product/feature you're building?
|
|
36
|
+
2. Who is the primary user?
|
|
37
|
+
3. What technology stack are you using?
|
|
38
|
+
4. What are 3–5 must-have features for v1?
|
|
39
|
+
5. What's explicitly out of scope?
|
|
40
|
+
6. Any hard constraints (timeline, budget, existing systems)?
|
|
41
|
+
7. How will you verify the work? (test commands, CI, manual checks)
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
After creating/updating files, summarize:
|
|
46
|
+
- What was created
|
|
47
|
+
- What needs my input next
|
|
48
|
+
- The recommended next prompt to run
|
|
49
|
+
|
|
50
|
+
Point to the vendor templates if helpful:
|
|
51
|
+
- `.github/vendor/get-shit-done/templates/phase-prompt.md`
|
|
52
|
+
- `.github/vendor/get-shit-done/templates/summary.md`
|