smart-spec-kit-mcp 2.0.3 β 2.0.5
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/README.md +128 -60
- package/dist/cli.js +75 -35
- package/dist/cli.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/promptTools.d.ts +12 -0
- package/dist/tools/promptTools.d.ts.map +1 -0
- package/dist/tools/promptTools.js +524 -0
- package/dist/tools/promptTools.js.map +1 -0
- package/dist/utils/starterKitInstaller.d.ts +2 -1
- package/dist/utils/starterKitInstaller.d.ts.map +1 -1
- package/dist/utils/starterKitInstaller.js +51 -29
- package/dist/utils/starterKitInstaller.js.map +1 -1
- package/docs/DOCUMENTATION.md +379 -0
- package/docs/PACKAGING.md +323 -0
- package/package.json +6 -5
- package/starter-kit/copilot-instructions.md +96 -0
- package/starter-kit/prompts/clarify.md +73 -0
- package/starter-kit/prompts/implement.md +79 -0
- package/starter-kit/prompts/plan.md +69 -0
- package/starter-kit/prompts/specify.md +74 -0
- package/starter-kit/prompts/tasks.md +76 -0
- package/starter-kit/prompts/speckit.clarify.md +0 -129
- package/starter-kit/prompts/speckit.implement.md +0 -122
- package/starter-kit/prompts/speckit.init.md +0 -153
- package/starter-kit/prompts/speckit.plan.md +0 -145
- package/starter-kit/prompts/speckit.specify.md +0 -123
- package/starter-kit/prompts/speckit.tasks.md +0 -137
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# π¦ Guide de Packaging et Distribution
|
|
2
|
+
|
|
3
|
+
Ce guide explique comment Spec-Kit est conΓ§u pour Γͺtre utilisΓ© dans n'importe quel projet.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## π― Principe: Zero Config + Override Local
|
|
8
|
+
|
|
9
|
+
Spec-Kit fonctionne **immΓ©diatement** avec les workflows par dΓ©faut, mais permet aux Γ©quipes de **personnaliser** pour leur stack.
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
13
|
+
β Votre Projet β
|
|
14
|
+
β βββ .spec-kit/ β Overrides locaux (optionnel) β
|
|
15
|
+
β β βββ workflows/ β
|
|
16
|
+
β β β βββ react-feature.yaml β Votre workflow custom β
|
|
17
|
+
β β βββ templates/ β
|
|
18
|
+
β β βββ react-spec.md β Votre template custom β
|
|
19
|
+
β βββ src/ β
|
|
20
|
+
β βββ ... β
|
|
21
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
22
|
+
β
|
|
23
|
+
β utilise
|
|
24
|
+
βΌ
|
|
25
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
26
|
+
β Package spec-kit-mcp (npm) β
|
|
27
|
+
β βββ workflows/ β Workflows par dΓ©faut β
|
|
28
|
+
β β βββ feature-standard.yaml β
|
|
29
|
+
β β βββ feature-full.yaml β
|
|
30
|
+
β β βββ bugfix.yaml β
|
|
31
|
+
β βββ templates/ β Templates par dΓ©faut β
|
|
32
|
+
β βββ functional-spec.md β
|
|
33
|
+
β βββ bugfix-report.md β
|
|
34
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## π₯ Installation pour l'Utilisateur Final
|
|
40
|
+
|
|
41
|
+
### Option 1: NPX (RecommandΓ©)
|
|
42
|
+
|
|
43
|
+
Aucune installation nΓ©cessaire, toujours Γ jour:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"mcp": {
|
|
48
|
+
"servers": {
|
|
49
|
+
"spec-kit": {
|
|
50
|
+
"command": "npx",
|
|
51
|
+
"args": ["-y", "spec-kit-mcp"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Option 2: Installation Globale
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm install -g spec-kit-mcp
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcp": {
|
|
67
|
+
"servers": {
|
|
68
|
+
"spec-kit": {
|
|
69
|
+
"command": "spec-kit-mcp"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## π§ Personnalisation par Projet
|
|
79
|
+
|
|
80
|
+
### Initialiser la config locale
|
|
81
|
+
|
|
82
|
+
Dans Copilot Chat:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
@spec-kit init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Cela crΓ©e:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
.spec-kit/
|
|
92
|
+
βββ workflows/
|
|
93
|
+
β βββ custom-feature.yaml β Exemple modifiable
|
|
94
|
+
βββ templates/
|
|
95
|
+
βββ custom-spec.md β Exemple modifiable
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Ordre de rΓ©solution
|
|
99
|
+
|
|
100
|
+
Quand vous appelez `start_workflow workflow_name="X"`:
|
|
101
|
+
|
|
102
|
+
1. **D'abord**: `.spec-kit/workflows/X.yaml` (local)
|
|
103
|
+
2. **Ensuite**: `workflows/X.yaml` (dans le projet)
|
|
104
|
+
3. **Enfin**: Package defaults (feature-standard, etc.)
|
|
105
|
+
|
|
106
|
+
> Le **premier trouvΓ© gagne** - vous pouvez override les workflows par dΓ©faut!
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## π CrΓ©er un Workflow pour votre Stack
|
|
111
|
+
|
|
112
|
+
### Exemple: React + TypeScript
|
|
113
|
+
|
|
114
|
+
`.spec-kit/workflows/react-feature.yaml`:
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
name: react-feature
|
|
118
|
+
displayName: "React Feature Specification"
|
|
119
|
+
description: "Workflow adaptΓ© pour les features React/TypeScript"
|
|
120
|
+
template: react-spec.md
|
|
121
|
+
defaultAgent: SpecAgent
|
|
122
|
+
|
|
123
|
+
steps:
|
|
124
|
+
- id: fetch-requirements
|
|
125
|
+
name: "Fetch Requirements"
|
|
126
|
+
action: fetch_ado
|
|
127
|
+
description: "Récupère la User Story depuis Azure DevOps"
|
|
128
|
+
outputs:
|
|
129
|
+
- user_story
|
|
130
|
+
|
|
131
|
+
- id: generate-spec
|
|
132
|
+
name: "Generate Specification"
|
|
133
|
+
action: call_agent
|
|
134
|
+
agent: SpecAgent
|
|
135
|
+
description: |
|
|
136
|
+
Génère une spécification React avec:
|
|
137
|
+
- Structure des composants
|
|
138
|
+
- Props/State attendus
|
|
139
|
+
- Hooks nΓ©cessaires
|
|
140
|
+
inputs:
|
|
141
|
+
source: user_story
|
|
142
|
+
|
|
143
|
+
- id: component-plan
|
|
144
|
+
name: "Component Architecture"
|
|
145
|
+
action: call_agent
|
|
146
|
+
agent: PlanAgent
|
|
147
|
+
description: |
|
|
148
|
+
Planifie l'architecture des composants:
|
|
149
|
+
- DΓ©coupage en composants atomiques
|
|
150
|
+
- Shared state (Context/Redux)
|
|
151
|
+
- API calls (React Query)
|
|
152
|
+
inputs:
|
|
153
|
+
source: user_story
|
|
154
|
+
|
|
155
|
+
- id: review
|
|
156
|
+
name: "Technical Review"
|
|
157
|
+
action: review
|
|
158
|
+
agent: GovAgent
|
|
159
|
+
description: |
|
|
160
|
+
Valide les aspects techniques:
|
|
161
|
+
- Performance (memo, useMemo, useCallback)
|
|
162
|
+
- AccessibilitΓ© (ARIA, semantic HTML)
|
|
163
|
+
- Tests (Jest, Testing Library)
|
|
164
|
+
|
|
165
|
+
- id: create-output
|
|
166
|
+
name: "Create Output"
|
|
167
|
+
action: create_file
|
|
168
|
+
description: "CrΓ©e le fichier de spΓ©cification"
|
|
169
|
+
inputs:
|
|
170
|
+
filename: "specs/{contextId}-react-spec.md"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Template associΓ©
|
|
174
|
+
|
|
175
|
+
`.spec-kit/templates/react-spec.md`:
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
# {{title}} - React Specification
|
|
179
|
+
|
|
180
|
+
## Context
|
|
181
|
+
- **Work Item**: {{contextId}}
|
|
182
|
+
- **Date**: {{date}}
|
|
183
|
+
- **Stack**: React 18 + TypeScript
|
|
184
|
+
|
|
185
|
+
## User Story
|
|
186
|
+
{{description}}
|
|
187
|
+
|
|
188
|
+
## Component Architecture
|
|
189
|
+
|
|
190
|
+
### Components Tree
|
|
191
|
+
<!-- Γ remplir par SpecAgent -->
|
|
192
|
+
|
|
193
|
+
### Props & State
|
|
194
|
+
<!-- Γ remplir par SpecAgent -->
|
|
195
|
+
|
|
196
|
+
## Technical Considerations
|
|
197
|
+
|
|
198
|
+
### Performance
|
|
199
|
+
- [ ] Lazy loading si nΓ©cessaire
|
|
200
|
+
- [ ] Memoization des composants lourds
|
|
201
|
+
- [ ] Optimistic updates pour l'UX
|
|
202
|
+
|
|
203
|
+
### Accessibility
|
|
204
|
+
- [ ] ARIA labels
|
|
205
|
+
- [ ] Keyboard navigation
|
|
206
|
+
- [ ] Screen reader support
|
|
207
|
+
|
|
208
|
+
### Testing
|
|
209
|
+
- [ ] Unit tests (Jest)
|
|
210
|
+
- [ ] Component tests (Testing Library)
|
|
211
|
+
- [ ] E2E si applicable (Playwright)
|
|
212
|
+
|
|
213
|
+
## Tasks
|
|
214
|
+
<!-- Γ remplir par PlanAgent -->
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## π Publication sur NPM
|
|
220
|
+
|
|
221
|
+
### PrΓ©requis
|
|
222
|
+
|
|
223
|
+
1. Compte npm
|
|
224
|
+
2. `npm login`
|
|
225
|
+
|
|
226
|
+
### Publish
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
npm run build
|
|
230
|
+
npm publish
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Le package inclut
|
|
234
|
+
|
|
235
|
+
DΓ©fini dans `package.json`:
|
|
236
|
+
|
|
237
|
+
```json
|
|
238
|
+
{
|
|
239
|
+
"files": [
|
|
240
|
+
"dist",
|
|
241
|
+
"workflows",
|
|
242
|
+
"templates",
|
|
243
|
+
"README.md"
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## ποΈ Architecture pour Maintainers
|
|
251
|
+
|
|
252
|
+
### Structure du package publiΓ©
|
|
253
|
+
|
|
254
|
+
```text
|
|
255
|
+
spec-kit-mcp/
|
|
256
|
+
βββ dist/ β Code compilΓ©
|
|
257
|
+
β βββ index.js β Entry point
|
|
258
|
+
β βββ engine/
|
|
259
|
+
β βββ tools/
|
|
260
|
+
β βββ prompts/
|
|
261
|
+
β βββ schemas/
|
|
262
|
+
β βββ utils/
|
|
263
|
+
βββ workflows/ β Workflows par dΓ©faut
|
|
264
|
+
β βββ feature-standard.yaml
|
|
265
|
+
β βββ feature-full.yaml
|
|
266
|
+
β βββ bugfix.yaml
|
|
267
|
+
βββ templates/ β Templates par dΓ©faut
|
|
268
|
+
β βββ functional-spec.md
|
|
269
|
+
β βββ bugfix-report.md
|
|
270
|
+
βββ package.json
|
|
271
|
+
βββ README.md
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### RΓ©solution des chemins
|
|
275
|
+
|
|
276
|
+
Le `workflowLoader.ts` gère la résolution:
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
// Ordre de recherche
|
|
280
|
+
const searchPaths = [
|
|
281
|
+
// 1. Local override
|
|
282
|
+
path.join(process.cwd(), ".spec-kit", "workflows"),
|
|
283
|
+
// 2. Project root (pour projets dΓ©diΓ©s)
|
|
284
|
+
path.join(process.cwd(), "workflows"),
|
|
285
|
+
// 3. Package defaults
|
|
286
|
+
path.join(__dirname, "..", "..", "workflows"),
|
|
287
|
+
];
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## π Commandes de Debug
|
|
293
|
+
|
|
294
|
+
### Voir la configuration actuelle
|
|
295
|
+
|
|
296
|
+
```text
|
|
297
|
+
@spec-kit config
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
Affiche:
|
|
301
|
+
- Chemins de recherche
|
|
302
|
+
- Workflows disponibles (local vs package)
|
|
303
|
+
- Projet courant vs package
|
|
304
|
+
|
|
305
|
+
### Tester un workflow custom
|
|
306
|
+
|
|
307
|
+
```text
|
|
308
|
+
@spec-kit start_workflow workflow_name="custom-feature" context_id="TEST"
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## π Stacks PrΓ©-configurΓ©es (Roadmap)
|
|
314
|
+
|
|
315
|
+
Future versions pourraient inclure des presets:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
npx spec-kit-mcp init --preset=react
|
|
319
|
+
npx spec-kit-mcp init --preset=dotnet
|
|
320
|
+
npx spec-kit-mcp init --preset=python
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Chaque preset crΓ©erait `.spec-kit/` avec des workflows optimisΓ©s pour la stack.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "smart-spec-kit-mcp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "AI-driven specification platform using MCP (Model Context Protocol) for VS Code & GitHub Copilot",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
|
+
"docs",
|
|
13
14
|
"workflows",
|
|
14
15
|
"templates",
|
|
15
16
|
"starter-kit",
|
|
@@ -39,15 +40,15 @@
|
|
|
39
40
|
"workflow",
|
|
40
41
|
"automation"
|
|
41
42
|
],
|
|
42
|
-
"author": "
|
|
43
|
+
"author": "Fazzani <heni.fazzani@gmail.com>",
|
|
43
44
|
"license": "MIT",
|
|
44
45
|
"repository": {
|
|
45
46
|
"type": "git",
|
|
46
|
-
"url": "https://github.com/
|
|
47
|
+
"url": "https://github.com/fazzani/smart-spec-kit.git"
|
|
47
48
|
},
|
|
48
|
-
"homepage": "https://github.com/
|
|
49
|
+
"homepage": "https://github.com/fazzani/smart-spec-kit#readme",
|
|
49
50
|
"bugs": {
|
|
50
|
-
"url": "https://github.com/
|
|
51
|
+
"url": "https://github.com/fazzani/smart-spec-kit/issues"
|
|
51
52
|
},
|
|
52
53
|
"engines": {
|
|
53
54
|
"node": ">=18.0.0"
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Copilot Instructions for Spec-Kit
|
|
2
|
+
|
|
3
|
+
This project uses **Spec-Kit** for specification-driven development. Spec-Kit provides MCP tools to guide you through a structured workflow from requirements to implementation.
|
|
4
|
+
|
|
5
|
+
## How to Use Spec-Kit
|
|
6
|
+
|
|
7
|
+
When the user mentions **"speckit:"** followed by a command, or uses these keywords in French/English, call the corresponding MCP tool:
|
|
8
|
+
|
|
9
|
+
| User Says | MCP Tool | Description |
|
|
10
|
+
|-----------|----------|-------------|
|
|
11
|
+
| `speckit: spec`, `speckit: specify`, `crΓ©er une spec` | `speckit_specify` | Create a functional specification |
|
|
12
|
+
| `speckit: plan`, `planifier`, `crΓ©er un plan` | `speckit_plan` | Create an implementation plan |
|
|
13
|
+
| `speckit: tasks`, `gΓ©nΓ©rer les tΓ’ches`, `crΓ©er les tΓ’ches` | `speckit_tasks` | Generate task breakdown |
|
|
14
|
+
| `speckit: implement`, `implΓ©menter`, `coder` | `speckit_implement` | Implement tasks |
|
|
15
|
+
| `speckit: clarify`, `clarifier`, `prΓ©ciser` | `speckit_clarify` | Clarify requirements |
|
|
16
|
+
| `speckit: help`, `aide sur speckit`, questions about spec-kit | `speckit_help` | Get help and documentation |
|
|
17
|
+
|
|
18
|
+
## Getting Help
|
|
19
|
+
|
|
20
|
+
When the user asks questions about Spec-Kit (how to use it, how to customize, how to create workflows, troubleshooting), call `speckit_help` with the relevant topic:
|
|
21
|
+
|
|
22
|
+
**Examples**:
|
|
23
|
+
- "speckit: help comment crΓ©er un workflow ?" β `speckit_help` with topic: "workflows"
|
|
24
|
+
- "Comment personnaliser les templates spec-kit ?" β `speckit_help` with topic: "templates"
|
|
25
|
+
- "speckit aide" β `speckit_help` without topic (general help)
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
The typical spec-kit workflow is:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
speckit_specify β speckit_plan β speckit_tasks β speckit_implement
|
|
33
|
+
β
|
|
34
|
+
speckit_clarify (if needed)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
1. **Specify**: Transform requirements into a structured specification
|
|
38
|
+
2. **Plan**: Create a technical implementation plan from the spec
|
|
39
|
+
3. **Tasks**: Break down the plan into atomic, actionable tasks
|
|
40
|
+
4. **Implement**: Execute tasks one by one
|
|
41
|
+
5. **Clarify**: Resolve ambiguities at any point
|
|
42
|
+
|
|
43
|
+
## Project Structure
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
.spec-kit/
|
|
47
|
+
βββ prompts/ # Prompt-as-code files (read by MCP tools)
|
|
48
|
+
β βββ specify.md
|
|
49
|
+
β βββ plan.md
|
|
50
|
+
β βββ tasks.md
|
|
51
|
+
β βββ implement.md
|
|
52
|
+
β βββ clarify.md
|
|
53
|
+
βββ templates/ # Document templates
|
|
54
|
+
β βββ functional-spec.md
|
|
55
|
+
β βββ plan-template.md
|
|
56
|
+
β βββ tasks-template.md
|
|
57
|
+
βββ memory/ # Project context
|
|
58
|
+
β βββ constitution.md
|
|
59
|
+
βββ workflows/ # Automated workflows
|
|
60
|
+
|
|
61
|
+
specs/ # Generated specifications (output)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Important Conventions
|
|
65
|
+
|
|
66
|
+
When using spec-kit:
|
|
67
|
+
|
|
68
|
+
1. **Always read the constitution** (`.spec-kit/memory/constitution.md`) for project principles
|
|
69
|
+
2. **Follow the templates** in `.spec-kit/templates/`
|
|
70
|
+
3. **Save outputs to `specs/`** directory
|
|
71
|
+
4. **Suggest the next step** after each tool completes
|
|
72
|
+
|
|
73
|
+
## Tool Response Format
|
|
74
|
+
|
|
75
|
+
After calling a spec-kit tool, follow the instructions in the tool response. The response will include:
|
|
76
|
+
- Context from prompts and templates
|
|
77
|
+
- User input
|
|
78
|
+
- Specific instructions for what to generate
|
|
79
|
+
- Suggested next step
|
|
80
|
+
|
|
81
|
+
## Example Interactions
|
|
82
|
+
|
|
83
|
+
**User**: "speckit: créer une spec pour un système de notifications push"
|
|
84
|
+
**Action**: Call `speckit_specify` with `requirements: "système de notifications push"`
|
|
85
|
+
|
|
86
|
+
**User**: "speckit: planifier l'implΓ©mentation"
|
|
87
|
+
**Action**: Call `speckit_plan` (will find the most recent spec automatically)
|
|
88
|
+
|
|
89
|
+
**User**: "speckit: implement task 3"
|
|
90
|
+
**Action**: Call `speckit_implement` with `taskId: "3"`
|
|
91
|
+
|
|
92
|
+
**User**: "speckit: help comment crΓ©er un nouveau workflow ?"
|
|
93
|
+
**Action**: Call `speckit_help` with `topic: "workflows"`
|
|
94
|
+
|
|
95
|
+
**User**: "Comment fonctionne spec-kit ?"
|
|
96
|
+
**Action**: Call `speckit_help` without topic for general help
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Clarify Prompt
|
|
2
|
+
|
|
3
|
+
You are clarifying ambiguous requirements in a specification. Follow this structured approach:
|
|
4
|
+
|
|
5
|
+
## 1. Find Ambiguities
|
|
6
|
+
|
|
7
|
+
Scan the specification for:
|
|
8
|
+
- `[NEEDS CLARIFICATION]` markers
|
|
9
|
+
- Vague terms ("fast", "easy", "simple")
|
|
10
|
+
- Missing details (undefined behaviors)
|
|
11
|
+
- Conflicting requirements
|
|
12
|
+
- Unstated assumptions
|
|
13
|
+
|
|
14
|
+
## 2. Prioritize Clarifications
|
|
15
|
+
|
|
16
|
+
Focus on ambiguities that:
|
|
17
|
+
- Block implementation
|
|
18
|
+
- Could lead to rework
|
|
19
|
+
- Affect user experience significantly
|
|
20
|
+
- Have security implications
|
|
21
|
+
|
|
22
|
+
## 3. Ask Targeted Questions
|
|
23
|
+
|
|
24
|
+
For each ambiguity:
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
### Clarification Needed: {Topic}
|
|
28
|
+
|
|
29
|
+
**Context**: {Where this appears in the spec}
|
|
30
|
+
|
|
31
|
+
**Ambiguity**: {What's unclear}
|
|
32
|
+
|
|
33
|
+
**Options**:
|
|
34
|
+
1. {Option A} - {implication}
|
|
35
|
+
2. {Option B} - {implication}
|
|
36
|
+
3. {Option C} - {implication}
|
|
37
|
+
|
|
38
|
+
**Recommendation**: {Your suggested choice and why}
|
|
39
|
+
|
|
40
|
+
**Question**: {Specific question for stakeholder}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 4. Question Guidelines
|
|
44
|
+
|
|
45
|
+
Good questions are:
|
|
46
|
+
- **Specific**: One topic per question
|
|
47
|
+
- **Bounded**: Offer options when possible
|
|
48
|
+
- **Contextual**: Explain why it matters
|
|
49
|
+
- **Actionable**: Answer leads to decision
|
|
50
|
+
|
|
51
|
+
Avoid:
|
|
52
|
+
- Open-ended questions
|
|
53
|
+
- Technical jargon (unless spec is technical)
|
|
54
|
+
- Compound questions
|
|
55
|
+
- Leading questions
|
|
56
|
+
|
|
57
|
+
## 5. Update Specification
|
|
58
|
+
|
|
59
|
+
After receiving answers:
|
|
60
|
+
1. Update the relevant section
|
|
61
|
+
2. Remove the `[NEEDS CLARIFICATION]` marker
|
|
62
|
+
3. Add rationale for the decision
|
|
63
|
+
4. Note any assumptions made
|
|
64
|
+
|
|
65
|
+
## 6. Output
|
|
66
|
+
|
|
67
|
+
Report:
|
|
68
|
+
- Number of clarifications found
|
|
69
|
+
- Questions asked
|
|
70
|
+
- Answers received (if any)
|
|
71
|
+
- Specification updates made
|
|
72
|
+
- Remaining ambiguities (if any)
|
|
73
|
+
- Next step: `speckit_plan` if all clarified
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Implement Prompt
|
|
2
|
+
|
|
3
|
+
You are implementing tasks from the task breakdown. Follow this structured approach:
|
|
4
|
+
|
|
5
|
+
## 1. Task Selection
|
|
6
|
+
|
|
7
|
+
If no specific task ID provided:
|
|
8
|
+
- Find the first task with status "Not Started"
|
|
9
|
+
- Check dependencies are satisfied (all dependent tasks are "Done")
|
|
10
|
+
- If dependencies not met, suggest which task to do instead
|
|
11
|
+
|
|
12
|
+
## 2. Before Implementation
|
|
13
|
+
|
|
14
|
+
Read and understand:
|
|
15
|
+
- The task description and acceptance criteria
|
|
16
|
+
- The original specification (for context)
|
|
17
|
+
- The project constitution (for conventions)
|
|
18
|
+
- Related code files
|
|
19
|
+
|
|
20
|
+
## 3. Implementation Guidelines
|
|
21
|
+
|
|
22
|
+
### Code Quality
|
|
23
|
+
- Follow project conventions from constitution
|
|
24
|
+
- Write clean, self-documenting code
|
|
25
|
+
- Add comments for complex logic only
|
|
26
|
+
- Follow existing patterns in the codebase
|
|
27
|
+
|
|
28
|
+
### Testing
|
|
29
|
+
- Write tests alongside implementation
|
|
30
|
+
- Cover happy path and edge cases
|
|
31
|
+
- Follow existing test patterns
|
|
32
|
+
|
|
33
|
+
### Error Handling
|
|
34
|
+
- Handle errors gracefully
|
|
35
|
+
- Provide meaningful error messages
|
|
36
|
+
- Log appropriately
|
|
37
|
+
|
|
38
|
+
## 4. Implementation Process
|
|
39
|
+
|
|
40
|
+
For each task:
|
|
41
|
+
|
|
42
|
+
1. **Read** the task requirements
|
|
43
|
+
2. **Identify** files to create/modify
|
|
44
|
+
3. **Implement** the changes
|
|
45
|
+
4. **Verify** acceptance criteria are met
|
|
46
|
+
5. **Update** task status in tasks.md
|
|
47
|
+
|
|
48
|
+
## 5. Status Updates
|
|
49
|
+
|
|
50
|
+
After implementing, update the task in `specs/tasks.md`:
|
|
51
|
+
- Change status from "Not Started" to "Done"
|
|
52
|
+
- Add any notes about implementation decisions
|
|
53
|
+
|
|
54
|
+
## 6. Commit Guidelines
|
|
55
|
+
|
|
56
|
+
Suggest a commit message following format:
|
|
57
|
+
```
|
|
58
|
+
feat({scope}): {short description}
|
|
59
|
+
|
|
60
|
+
- {detail 1}
|
|
61
|
+
- {detail 2}
|
|
62
|
+
|
|
63
|
+
Task: {task ID}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 7. Output
|
|
67
|
+
|
|
68
|
+
Report:
|
|
69
|
+
- What was implemented
|
|
70
|
+
- Files created/modified
|
|
71
|
+
- Any deviations from plan
|
|
72
|
+
- Next task to implement (if continuing)
|
|
73
|
+
|
|
74
|
+
## 8. Iteration
|
|
75
|
+
|
|
76
|
+
Ask the user:
|
|
77
|
+
- "Task {ID} completed. Continue with {next task}? (yes/no)"
|
|
78
|
+
- If yes, proceed with next task
|
|
79
|
+
- If no, summarize progress made
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Plan Prompt
|
|
2
|
+
|
|
3
|
+
You are creating a technical implementation plan from a specification. Follow this structured approach:
|
|
4
|
+
|
|
5
|
+
## 1. Understand the Specification
|
|
6
|
+
|
|
7
|
+
Read and analyze:
|
|
8
|
+
- All functional requirements
|
|
9
|
+
- Non-functional requirements
|
|
10
|
+
- Technical constraints
|
|
11
|
+
- Dependencies
|
|
12
|
+
|
|
13
|
+
## 2. Architecture Analysis
|
|
14
|
+
|
|
15
|
+
Identify:
|
|
16
|
+
- **Components to create or modify**
|
|
17
|
+
- **Integration points**
|
|
18
|
+
- **Data flows**
|
|
19
|
+
- **API contracts** (if applicable)
|
|
20
|
+
|
|
21
|
+
## 3. Create Implementation Plan
|
|
22
|
+
|
|
23
|
+
Structure the plan with:
|
|
24
|
+
|
|
25
|
+
### Phases
|
|
26
|
+
Break work into logical phases:
|
|
27
|
+
1. **Foundation** - Core infrastructure, models, utilities
|
|
28
|
+
2. **Core Features** - Main functionality
|
|
29
|
+
3. **Integration** - Connecting components
|
|
30
|
+
4. **Polish** - Error handling, edge cases, UX
|
|
31
|
+
5. **Testing** - Unit, integration, E2E tests
|
|
32
|
+
|
|
33
|
+
### For Each Phase
|
|
34
|
+
|
|
35
|
+
Define:
|
|
36
|
+
- **Objectives**: What this phase accomplishes
|
|
37
|
+
- **Deliverables**: Concrete outputs
|
|
38
|
+
- **Dependencies**: What must be done first
|
|
39
|
+
- **Risks**: Potential blockers
|
|
40
|
+
- **Estimated effort**: T-shirt size (S/M/L/XL)
|
|
41
|
+
|
|
42
|
+
### Technical Decisions
|
|
43
|
+
|
|
44
|
+
Document key decisions:
|
|
45
|
+
- Patterns to use
|
|
46
|
+
- Libraries to adopt
|
|
47
|
+
- Trade-offs made
|
|
48
|
+
|
|
49
|
+
## 4. Risk Assessment
|
|
50
|
+
|
|
51
|
+
Identify and mitigate:
|
|
52
|
+
- Technical risks
|
|
53
|
+
- Dependency risks
|
|
54
|
+
- Timeline risks
|
|
55
|
+
|
|
56
|
+
## 5. Quality Gates
|
|
57
|
+
|
|
58
|
+
Define checkpoints:
|
|
59
|
+
- Code review requirements
|
|
60
|
+
- Test coverage targets
|
|
61
|
+
- Performance benchmarks
|
|
62
|
+
|
|
63
|
+
## 6. Output
|
|
64
|
+
|
|
65
|
+
Save to `specs/plan.md` and report:
|
|
66
|
+
- Plan summary
|
|
67
|
+
- Total phases count
|
|
68
|
+
- Key risks identified
|
|
69
|
+
- Next step: `speckit_tasks` to generate task breakdown
|