smart-spec-kit-mcp 2.4.6 → 2.4.8
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 +57 -9
- package/dist/schemas/workflowSchema.d.ts +4 -0
- package/dist/schemas/workflowSchema.d.ts.map +1 -1
- package/dist/schemas/workflowSchema.js +2 -1
- package/dist/schemas/workflowSchema.js.map +1 -1
- package/dist/utils/workflowLoader.d.ts +6 -3
- package/dist/utils/workflowLoader.d.ts.map +1 -1
- package/docs/DOCUMENTATION.md +70 -9
- package/package.json +1 -1
- package/starter-kit/agents/PlanAgent.md +71 -29
- package/starter-kit/copilot-instructions.md +30 -1
- package/starter-kit/github-prompts/speckit.analyze.prompt.md +187 -35
- package/starter-kit/github-prompts/speckit.checklist.prompt.md +181 -45
- package/starter-kit/github-prompts/speckit.clarify.prompt.md +184 -18
- package/starter-kit/github-prompts/speckit.implement.prompt.md +161 -17
- package/starter-kit/github-prompts/speckit.plan.prompt.md +39 -8
- package/starter-kit/github-prompts/speckit.specify.prompt.md +129 -15
- package/starter-kit/github-prompts/speckit.tasks.prompt.md +203 -20
- package/starter-kit/prompts/plan.md +96 -5
- package/starter-kit/prompts/tasks.md +113 -38
- package/starter-kit/templates/contracts/api-template.yaml +317 -0
- package/starter-kit/templates/contracts/events-template.md +299 -0
- package/starter-kit/templates/data-model.md +160 -0
- package/starter-kit/templates/plan-template.md +73 -0
- package/starter-kit/templates/quickstart.md +188 -0
- package/starter-kit/templates/research.md +201 -0
- package/starter-kit/workflows/bugfix-git.yaml +198 -0
- package/starter-kit/workflows/feature-full.yaml +46 -8
- package/starter-kit/workflows/feature-git.yaml +198 -0
- package/starter-kit/workflows/feature-standard.yaml +38 -5
package/README.md
CHANGED
|
@@ -29,15 +29,46 @@ Plateforme d'orchestration automatisée pour le **développement piloté par les
|
|
|
29
29
|
- **🤖 Commandes Naturelles**: Utilisez `speckit: spec`, `speckit: plan`, etc. directement dans Copilot Chat
|
|
30
30
|
- **📝 Prompts Versionnés**: Prompts personnalisables et versionnables dans `.spec-kit/prompts/`
|
|
31
31
|
- **🔄 Workflows YAML**: Processus personnalisables étape par étape
|
|
32
|
-
- **📋 Templates**:
|
|
33
|
-
- **🛡️ Gouvernance Intégrée**: Constitution projet, principes de développement
|
|
34
|
-
-
|
|
32
|
+
- **📋 Templates Complets**: Specs, plans, data-model, API contracts (OpenAPI), quickstart, research
|
|
33
|
+
- **🛡️ Gouvernance Intégrée**: Constitution projet, Phase -1 Gates, principes de développement
|
|
34
|
+
- **✅ Checklists de Qualité**: "Unit tests for English" pour valider vos requirements
|
|
35
35
|
- **🔍 Analyse de Traçabilité**: Vérification de cohérence entre specs, plans et tâches
|
|
36
|
-
-
|
|
36
|
+
- **🔗 Azure DevOps**: Intégration native via MCP
|
|
37
37
|
- **❓ Aide Contextuelle**: Demandez de l'aide sur Spec-Kit directement dans Copilot
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
+
## 🏆 Pourquoi Smart Spec-Kit vs GitHub Spec-Kit ?
|
|
42
|
+
|
|
43
|
+
| Aspect | GitHub Spec-Kit | **Smart Spec-Kit** |
|
|
44
|
+
|--------|-----------------|--------------------|
|
|
45
|
+
| **Installation** | Copier manuellement les fichiers | `npx smart-spec-kit-mcp setup` ✨ |
|
|
46
|
+
| **Distribution** | Dossier à cloner | Package npm installable |
|
|
47
|
+
| **Mise à jour** | Copier à nouveau | `npx smart-spec-kit-mcp@latest setup` |
|
|
48
|
+
| **Personnalisation** | Éditer les fichiers sources | Override dans `.spec-kit/` (non-destructif) |
|
|
49
|
+
| **Workflows** | Manuel (copier les commandes) | **Automatisé** avec YAML + approval gates |
|
|
50
|
+
| **Agents** | Prompts fixes | **Agents personnalisables** (`.spec-kit/agents/`) |
|
|
51
|
+
| **Validation** | Manuelle | **Automatique** (sécurité, RGPD, schéma) |
|
|
52
|
+
| **Phase -1 Gates** | Dans les templates | **Intégré dans le workflow** |
|
|
53
|
+
| **Supporting Docs** | Templates séparés | **Génération automatique** (data-model, contracts, quickstart) |
|
|
54
|
+
| **Mémoire Projet** | Non inclus | **Auto-enrichissement** des décisions/learnings |
|
|
55
|
+
| **Multi-langue** | Anglais | **Français + Anglais** |
|
|
56
|
+
| **MCP Server** | ❌ Non | ✅ **Oui** - communication native avec Copilot |
|
|
57
|
+
|
|
58
|
+
### 🎯 Smart Spec-Kit = GitHub Spec-Kit + Automatisation + MCP
|
|
59
|
+
|
|
60
|
+
Smart Spec-Kit implémente **100% de la méthodologie GitHub Spec-Kit** (spec-driven.md) avec :
|
|
61
|
+
|
|
62
|
+
1. **📦 Distribution packagée** - Un seul `npx` pour tout installer
|
|
63
|
+
2. **🔄 Workflows automatisés** - Enchaînement des étapes sans intervention
|
|
64
|
+
3. **📝 Documents de support auto-générés** - `data-model.md`, `contracts/`, `quickstart.md`
|
|
65
|
+
4. **🚦 Phase -1 Gates intégrées** - Validation architecturale avant implémentation
|
|
66
|
+
5. **🧠 Mémoire projet** - Enrichissement automatique des décisions et conventions
|
|
67
|
+
6. **🔌 Serveur MCP natif** - Communication directe avec GitHub Copilot
|
|
68
|
+
7. **🎨 Personnalisation non-destructive** - Vos overrides dans `.spec-kit/` survivent aux mises à jour
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
41
72
|
## ⚡ Installation Rapide
|
|
42
73
|
|
|
43
74
|
### Option 1: Installation Automatique (Recommandé)
|
|
@@ -95,11 +126,17 @@ smart-spec-kit-mcp/
|
|
|
95
126
|
│ │ ├── analyze.md # Analyse de traçabilité
|
|
96
127
|
│ │ └── checklist.md # Checklist de qualité des requirements
|
|
97
128
|
│ ├── templates/ # Templates de documents
|
|
98
|
-
│ │ ├── functional-spec.md
|
|
129
|
+
│ │ ├── functional-spec.md # Spécification fonctionnelle
|
|
130
|
+
│ │ ├── plan-template.md # Plan avec Phase -1 Gates
|
|
131
|
+
│ │ ├── tasks-template.md # Liste de tâches
|
|
132
|
+
│ │ ├── data-model.md # 🆕 Entités et relations
|
|
133
|
+
│ │ ├── quickstart.md # 🆕 Scénarios de validation
|
|
134
|
+
│ │ ├── research.md # 🆕 Recherche technique
|
|
135
|
+
│ │ ├── checklist-template.md
|
|
99
136
|
│ │ ├── bugfix-report.md
|
|
100
|
-
│ │
|
|
101
|
-
│ │
|
|
102
|
-
│ │
|
|
137
|
+
│ │ └── contracts/ # 🆕 Contrats API
|
|
138
|
+
│ │ ├── api-template.yaml # OpenAPI 3.0
|
|
139
|
+
│ │ └── events-template.md # WebSocket/SSE
|
|
103
140
|
│ ├── workflows/ # Workflows YAML prédéfinis
|
|
104
141
|
│ │ ├── feature-quick.yaml # 2-step (spécification rapide)
|
|
105
142
|
│ │ ├── feature-standard.yaml # 5-step (spec → plan → tasks → analyze → implement)
|
|
@@ -131,12 +168,23 @@ votre-projet/
|
|
|
131
168
|
├── .spec-kit/ # Configuration locale (personnalisations)
|
|
132
169
|
│ ├── prompts/ # Override les prompts par défaut
|
|
133
170
|
│ ├── templates/ # Override les templates par défaut
|
|
171
|
+
│ │ └── contracts/ # 🆕 Contrats API personnalisés
|
|
134
172
|
│ ├── workflows/ # Vos workflows personnalisés
|
|
135
|
-
│ ├── agents/ # Vos agents personnalisés
|
|
173
|
+
│ ├── agents/ # Vos agents personnalisés
|
|
136
174
|
│ ├── rules/ # Vos règles de validation
|
|
137
175
|
│ └── memory/
|
|
138
176
|
│ └── constitution.md # Principes de votre projet
|
|
139
177
|
└── specs/ # Spécifications générées
|
|
178
|
+
├── [feature-name]/ # 🆕 Dossier par feature
|
|
179
|
+
│ ├── spec.md # Spécification fonctionnelle
|
|
180
|
+
│ ├── plan.md # Plan d'implémentation
|
|
181
|
+
│ ├── data-model.md # 🆕 Entités et relations
|
|
182
|
+
│ ├── quickstart.md # 🆕 Scénarios validation
|
|
183
|
+
│ ├── tasks.md # Liste des tâches
|
|
184
|
+
│ ├── research.md # 🆕 Recherche technique (optionnel)
|
|
185
|
+
│ └── contracts/ # 🆕 Contrats API
|
|
186
|
+
│ ├── api.yaml # OpenAPI 3.0
|
|
187
|
+
│ └── events.md # Événements temps réel (optionnel)
|
|
140
188
|
└── validations/ # Rapports de validation
|
|
141
189
|
```
|
|
142
190
|
|
|
@@ -16,9 +16,11 @@ export declare const WorkflowStepSchema: z.ZodObject<{
|
|
|
16
16
|
review: "review";
|
|
17
17
|
create_file: "create_file";
|
|
18
18
|
call_agent: "call_agent";
|
|
19
|
+
call_tool: "call_tool";
|
|
19
20
|
}>;
|
|
20
21
|
description: z.ZodString;
|
|
21
22
|
agent: z.ZodOptional<z.ZodString>;
|
|
23
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
22
24
|
inputs: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
|
|
23
25
|
name: z.ZodString;
|
|
24
26
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -63,9 +65,11 @@ export declare const WorkflowSchema: z.ZodObject<{
|
|
|
63
65
|
review: "review";
|
|
64
66
|
create_file: "create_file";
|
|
65
67
|
call_agent: "call_agent";
|
|
68
|
+
call_tool: "call_tool";
|
|
66
69
|
}>;
|
|
67
70
|
description: z.ZodString;
|
|
68
71
|
agent: z.ZodOptional<z.ZodString>;
|
|
72
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
69
73
|
inputs: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
|
|
70
74
|
name: z.ZodString;
|
|
71
75
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflowSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/workflowSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB;;GAEG;AACH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"workflowSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/workflowSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;iBAoB7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzB,CAAC;AAGH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -32,10 +32,11 @@ const FlexibleInputsSchema = z.union([
|
|
|
32
32
|
export const WorkflowStepSchema = z.object({
|
|
33
33
|
id: z.string().describe("Unique identifier for the step"),
|
|
34
34
|
name: z.string().describe("Human-readable step name"),
|
|
35
|
-
action: z.enum(["fetch_ado", "generate_content", "review", "create_file", "call_agent"])
|
|
35
|
+
action: z.enum(["fetch_ado", "generate_content", "review", "create_file", "call_agent", "call_tool"])
|
|
36
36
|
.describe("The type of action to perform"),
|
|
37
37
|
description: z.string().describe("Detailed description of what this step does"),
|
|
38
38
|
agent: z.string().optional().describe("Agent to use for this step (e.g., SpecAgent, PlanAgent)"),
|
|
39
|
+
tool: z.string().optional().describe("MCP tool to call when action is 'call_tool'"),
|
|
39
40
|
inputs: FlexibleInputsSchema.describe("Input parameters for the step"),
|
|
40
41
|
outputs: z.array(z.string()).optional().describe("Expected outputs from this step"),
|
|
41
42
|
next: z.string().optional().describe("Next step ID (if not sequential)"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflowSchema.js","sourceRoot":"","sources":["../../src/schemas/workflowSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACjC,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACpB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IACnC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACxB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC;CACzC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"workflowSchema.js","sourceRoot":"","sources":["../../src/schemas/workflowSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,11 +48,12 @@ export declare function loadWorkflowWithTemplate(workflowName: string): Promise<
|
|
|
48
48
|
export declare function getWorkflowStep(workflow: Workflow, stepId: string): {
|
|
49
49
|
id: string;
|
|
50
50
|
name: string;
|
|
51
|
-
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
51
|
+
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent" | "call_tool";
|
|
52
52
|
description: string;
|
|
53
53
|
requiresApproval: boolean;
|
|
54
54
|
useSubagent: boolean;
|
|
55
55
|
agent?: string | undefined;
|
|
56
|
+
tool?: string | undefined;
|
|
56
57
|
inputs?: Record<string, string | string[]> | {
|
|
57
58
|
name: string;
|
|
58
59
|
description?: string | undefined;
|
|
@@ -68,11 +69,12 @@ export declare function getWorkflowStep(workflow: Workflow, stepId: string): {
|
|
|
68
69
|
export declare function getFirstStep(workflow: Workflow): {
|
|
69
70
|
id: string;
|
|
70
71
|
name: string;
|
|
71
|
-
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
72
|
+
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent" | "call_tool";
|
|
72
73
|
description: string;
|
|
73
74
|
requiresApproval: boolean;
|
|
74
75
|
useSubagent: boolean;
|
|
75
76
|
agent?: string | undefined;
|
|
77
|
+
tool?: string | undefined;
|
|
76
78
|
inputs?: Record<string, string | string[]> | {
|
|
77
79
|
name: string;
|
|
78
80
|
description?: string | undefined;
|
|
@@ -88,11 +90,12 @@ export declare function getFirstStep(workflow: Workflow): {
|
|
|
88
90
|
export declare function getNextStep(workflow: Workflow, currentStepId: string): {
|
|
89
91
|
id: string;
|
|
90
92
|
name: string;
|
|
91
|
-
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
93
|
+
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent" | "call_tool";
|
|
92
94
|
description: string;
|
|
93
95
|
requiresApproval: boolean;
|
|
94
96
|
useSubagent: boolean;
|
|
95
97
|
agent?: string | undefined;
|
|
98
|
+
tool?: string | undefined;
|
|
96
99
|
inputs?: Record<string, string | string[]> | {
|
|
97
100
|
name: string;
|
|
98
101
|
description?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflowLoader.d.ts","sourceRoot":"","sources":["../../src/utils/workflowLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7E,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAmH7D;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CACpD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAC9D,CAEA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8B1E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAaxE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"workflowLoader.d.ts","sourceRoot":"","sources":["../../src/utils/workflowLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7E,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAmH7D;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CACpD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAC9D,CAEA;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8B1E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAaxE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;cAEjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;cAE9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM;;;;;;;;;;;;;;;;;qBAepE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAiErD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3D,CASA"}
|
package/docs/DOCUMENTATION.md
CHANGED
|
@@ -30,8 +30,17 @@ Spec-Kit is an MCP (Model Context Protocol) server that provides **customizable
|
|
|
30
30
|
- Versioned and maintainable in your project
|
|
31
31
|
|
|
32
32
|
5. **Templates** (`.spec-kit/templates/`)
|
|
33
|
-
- Document templates for specs, plans, tasks
|
|
34
|
-
- Markdown
|
|
33
|
+
- Document templates for specs, plans, tasks, and supporting documents
|
|
34
|
+
- Markdown and YAML formats
|
|
35
|
+
- **Available templates**:
|
|
36
|
+
- `functional-spec.md` - Feature specification
|
|
37
|
+
- `plan-template.md` - Implementation plan with Phase -1 Gates
|
|
38
|
+
- `tasks-template.md` - Task breakdown
|
|
39
|
+
- `data-model.md` - Entity definitions, relations, validation
|
|
40
|
+
- `quickstart.md` - Manual validation scenarios
|
|
41
|
+
- `research.md` - Technical research and comparisons
|
|
42
|
+
- `contracts/api-template.yaml` - OpenAPI 3.0 specification
|
|
43
|
+
- `contracts/events-template.md` - WebSocket/SSE event contracts
|
|
35
44
|
|
|
36
45
|
6. **Constitution** (`.spec-kit/memory/constitution.md`)
|
|
37
46
|
- Project principles and conventions
|
|
@@ -121,7 +130,7 @@ speckit: spec user authentication with OAuth
|
|
|
121
130
|
|
|
122
131
|
### speckit_plan
|
|
123
132
|
|
|
124
|
-
**Purpose**: Create
|
|
133
|
+
**Purpose**: Create a complete implementation plan with supporting documents from a specification.
|
|
125
134
|
|
|
126
135
|
**Slash Command**: `/speckit.plan`
|
|
127
136
|
|
|
@@ -142,12 +151,40 @@ speckit: plan pour la spec specs/auth-spec.md
|
|
|
142
151
|
|
|
143
152
|
1. Finds the most recent specification in `specs/`
|
|
144
153
|
2. Loads prompt from `.spec-kit/prompts/plan.md`
|
|
145
|
-
3.
|
|
146
|
-
|
|
154
|
+
3. **Validates Phase -1 Gates** (mandatory before planning):
|
|
155
|
+
- Simplicity Gate (Article VII): ≤3 projects, no future-proofing
|
|
156
|
+
- Anti-Abstraction Gate (Article VIII): Use framework directly
|
|
157
|
+
- Integration-First Gate (Article IX): Contracts before code
|
|
158
|
+
- Test-First Gate (Article III): Tests derived from spec
|
|
159
|
+
4. Generates the main plan (`plan.md`)
|
|
160
|
+
5. **Generates supporting documents**:
|
|
161
|
+
- `data-model.md` - Entity definitions, relations, validation rules
|
|
162
|
+
- `contracts/api.yaml` - OpenAPI 3.0 specification
|
|
163
|
+
- `contracts/events.md` - Real-time events (if applicable)
|
|
164
|
+
- `quickstart.md` - Manual validation scenarios
|
|
165
|
+
- `research.md` - Technical research (optional)
|
|
166
|
+
|
|
167
|
+
**Output Structure**:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
specs/[branch-name]/
|
|
171
|
+
├── spec.md # Already exists
|
|
172
|
+
├── plan.md # Main implementation plan
|
|
173
|
+
├── data-model.md # Entity definitions
|
|
174
|
+
├── quickstart.md # Validation scenarios
|
|
175
|
+
├── research.md # Technical research (optional)
|
|
176
|
+
└── contracts/
|
|
177
|
+
├── api.yaml # OpenAPI 3.0
|
|
178
|
+
└── events.md # Real-time events (optional)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Phase -1 Gates**:
|
|
182
|
+
|
|
183
|
+
These gates enforce architectural discipline from the Constitution. All gates must pass before proceeding to implementation. Document justified exceptions in the Complexity Tracking section of the plan.
|
|
147
184
|
|
|
148
185
|
### speckit_tasks
|
|
149
186
|
|
|
150
|
-
**Purpose**: Generate a task breakdown from
|
|
187
|
+
**Purpose**: Generate a dependency-ordered task breakdown from plan and supporting documents.
|
|
151
188
|
|
|
152
189
|
**Slash Command**: `/speckit.tasks`
|
|
153
190
|
|
|
@@ -164,12 +201,36 @@ speckit: tasks
|
|
|
164
201
|
speckit: générer les tâches
|
|
165
202
|
```
|
|
166
203
|
|
|
204
|
+
**Input Sources**:
|
|
205
|
+
|
|
206
|
+
| Document | Required | What to Extract |
|
|
207
|
+
|----------|----------|------------------|
|
|
208
|
+
| `plan.md` | ✅ Yes | Phases, architecture, decisions |
|
|
209
|
+
| `data-model.md` | ✅ Yes | Entity CRUD tasks, migrations |
|
|
210
|
+
| `contracts/api.yaml` | ✅ Yes | Endpoint implementation tasks |
|
|
211
|
+
| `contracts/events.md` | If exists | Event handler tasks |
|
|
212
|
+
| `quickstart.md` | ✅ Yes | Validation test tasks |
|
|
213
|
+
| `research.md` | If exists | Setup/integration tasks |
|
|
214
|
+
|
|
215
|
+
**Task Format**:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
- [ ] T### [P] [US#] Description with file path
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Where:
|
|
222
|
+
- `T###` = Task number (T001, T002...)
|
|
223
|
+
- `[P]` = Parallel marker (if task can run in parallel)
|
|
224
|
+
- `[US#]` = User Story reference from spec
|
|
225
|
+
|
|
167
226
|
**Behavior**:
|
|
168
227
|
|
|
169
|
-
1. Finds the most recent plan in `specs/`
|
|
228
|
+
1. Finds the most recent plan and supporting docs in `specs/`
|
|
170
229
|
2. Loads prompt from `.spec-kit/prompts/tasks.md`
|
|
171
|
-
3.
|
|
172
|
-
4.
|
|
230
|
+
3. Derives tasks from all input sources
|
|
231
|
+
4. Organizes by phase (Setup → Data Layer → API → Events → Testing → Polish)
|
|
232
|
+
5. Identifies parallel groups and dependencies
|
|
233
|
+
6. Output saved to `specs/tasks.md`
|
|
173
234
|
|
|
174
235
|
### speckit_implement
|
|
175
236
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: PlanAgent
|
|
3
3
|
displayName: "Planning Agent"
|
|
4
|
-
description: "Expert in technical planning and task decomposition"
|
|
4
|
+
description: "Expert in technical planning, data modeling, API design, and task decomposition"
|
|
5
5
|
capabilities:
|
|
6
|
-
-
|
|
6
|
+
- Validate Phase -1 Gates (Simplicity, Anti-Abstraction, Integration-First, Test-First)
|
|
7
|
+
- Create data models with entities, relations, and validation rules
|
|
8
|
+
- Design API contracts (OpenAPI 3.0) and event contracts
|
|
9
|
+
- Generate quickstart validation scenarios from user stories
|
|
10
|
+
- Break down features into technical tasks with dependencies
|
|
7
11
|
- Estimate effort and complexity
|
|
8
|
-
- Identify
|
|
9
|
-
- Suggest implementation approaches
|
|
10
|
-
- Create sprint-ready work items
|
|
12
|
+
- Identify critical path and parallel work opportunities
|
|
11
13
|
---
|
|
12
14
|
|
|
13
15
|
## System Prompt
|
|
@@ -16,36 +18,76 @@ You are PlanAgent, an expert technical architect specialized in implementation p
|
|
|
16
18
|
|
|
17
19
|
### Your Role
|
|
18
20
|
|
|
19
|
-
You transform specifications
|
|
21
|
+
You transform specifications into comprehensive implementation plans including:
|
|
22
|
+
1. **Main Plan** (`plan.md`) - Architecture, phases, decisions
|
|
23
|
+
2. **Data Model** (`data-model.md`) - Entities, relations, validation
|
|
24
|
+
3. **API Contracts** (`contracts/api.yaml`) - OpenAPI 3.0 specification
|
|
25
|
+
4. **Event Contracts** (`contracts/events.md`) - Real-time events (if applicable)
|
|
26
|
+
5. **Quickstart** (`quickstart.md`) - Manual validation scenarios
|
|
27
|
+
6. **Research** (`research.md`) - Technical comparisons (optional)
|
|
28
|
+
7. **Tasks** (`tasks.md`) - Actionable task breakdown
|
|
29
|
+
|
|
30
|
+
### Phase -1 Gates (MANDATORY)
|
|
31
|
+
|
|
32
|
+
Before creating any plan, validate:
|
|
33
|
+
|
|
34
|
+
**Simplicity Gate (Article VII)**:
|
|
35
|
+
- Using ≤3 projects for initial implementation?
|
|
36
|
+
- No future-proofing or speculative features?
|
|
37
|
+
|
|
38
|
+
**Anti-Abstraction Gate (Article VIII)**:
|
|
39
|
+
- Using framework features directly?
|
|
40
|
+
- Single model representation per entity?
|
|
41
|
+
|
|
42
|
+
**Integration-First Gate (Article IX)**:
|
|
43
|
+
- Contracts defined before implementation?
|
|
44
|
+
- Using real dependencies (not mocks)?
|
|
45
|
+
|
|
46
|
+
**Test-First Gate (Article III)**:
|
|
47
|
+
- Tests derived from spec?
|
|
48
|
+
- Quickstart scenarios ready?
|
|
20
49
|
|
|
21
50
|
### Core Principles
|
|
22
51
|
|
|
23
|
-
1. **
|
|
24
|
-
2. **
|
|
25
|
-
3. **
|
|
26
|
-
4. **
|
|
52
|
+
1. **Contracts First**: Define data-model and API contracts BEFORE implementation plan.
|
|
53
|
+
2. **Actionable Tasks**: Each task should be completable by a single developer in 1-3 days.
|
|
54
|
+
3. **Clear Dependencies**: Explicitly identify what must be done before each task.
|
|
55
|
+
4. **Risk-Aware**: Highlight technical risks and suggest mitigation strategies.
|
|
56
|
+
5. **Pragmatic**: Balance ideal solutions with practical constraints.
|
|
57
|
+
|
|
58
|
+
### Document Generation Order
|
|
27
59
|
|
|
28
|
-
|
|
60
|
+
1. Validate Phase -1 Gates
|
|
61
|
+
2. Generate `data-model.md` (entities from spec)
|
|
62
|
+
3. Generate `contracts/api.yaml` (endpoints from entities)
|
|
63
|
+
4. Generate `contracts/events.md` (if real-time features)
|
|
64
|
+
5. Generate `quickstart.md` (scenarios from user stories)
|
|
65
|
+
6. Generate `plan.md` (architecture, phases)
|
|
66
|
+
7. Generate `research.md` (only if tech decisions needed)
|
|
29
67
|
|
|
30
|
-
|
|
31
|
-
- Add error handling and edge cases as separate tasks
|
|
32
|
-
- Include tasks for testing, documentation, and deployment
|
|
33
|
-
- Consider database migrations, API changes, and breaking changes
|
|
34
|
-
- Account for code review and QA time
|
|
68
|
+
### Task Format
|
|
35
69
|
|
|
36
|
-
|
|
70
|
+
Use this EXACT format:
|
|
71
|
+
```
|
|
72
|
+
- [ ] T### [P] [US#] Description with file path
|
|
73
|
+
```
|
|
37
74
|
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
75
|
+
Where:
|
|
76
|
+
- `T###` = Task number
|
|
77
|
+
- `[P]` = Parallel marker (if can run in parallel)
|
|
78
|
+
- `[US#]` = User Story reference
|
|
42
79
|
|
|
43
|
-
### Output
|
|
80
|
+
### Output Structure
|
|
44
81
|
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
82
|
+
```
|
|
83
|
+
specs/[branch-name]/
|
|
84
|
+
├── spec.md # Already exists
|
|
85
|
+
├── plan.md # Main implementation plan
|
|
86
|
+
├── data-model.md # Entity definitions
|
|
87
|
+
├── quickstart.md # Validation scenarios
|
|
88
|
+
├── tasks.md # Task breakdown
|
|
89
|
+
├── research.md # Technical research (optional)
|
|
90
|
+
└── contracts/
|
|
91
|
+
├── api.yaml # OpenAPI 3.0
|
|
92
|
+
└── events.md # Real-time events (optional)
|
|
93
|
+
```
|
|
@@ -95,7 +95,13 @@ speckit_constitution → speckit_specify → speckit_plan → speckit_tasks →
|
|
|
95
95
|
├── templates/ # Document templates
|
|
96
96
|
│ ├── functional-spec.md
|
|
97
97
|
│ ├── plan-template.md
|
|
98
|
-
│
|
|
98
|
+
│ ├── tasks-template.md
|
|
99
|
+
│ ├── data-model.md # NEW: Entity definitions
|
|
100
|
+
│ ├── quickstart.md # NEW: Validation scenarios
|
|
101
|
+
│ ├── research.md # NEW: Technical research
|
|
102
|
+
│ └── contracts/ # NEW: API contracts
|
|
103
|
+
│ ├── api-template.yaml # OpenAPI 3.0
|
|
104
|
+
│ └── events-template.md # WebSocket/SSE events
|
|
99
105
|
├── rules/ # Validation rules
|
|
100
106
|
│ ├── security-rules.md
|
|
101
107
|
│ └── rgpd-rules.md
|
|
@@ -105,9 +111,32 @@ speckit_constitution → speckit_specify → speckit_plan → speckit_tasks →
|
|
|
105
111
|
└── feature-quick.yaml # Quick wins (lightweight)
|
|
106
112
|
|
|
107
113
|
specs/ # Generated specifications (output)
|
|
114
|
+
├── [branch-name]/ # Feature folder (e.g., 003-chat-system)
|
|
115
|
+
│ ├── spec.md # Functional specification
|
|
116
|
+
│ ├── plan.md # Implementation plan
|
|
117
|
+
│ ├── data-model.md # Entity definitions
|
|
118
|
+
│ ├── quickstart.md # Validation scenarios
|
|
119
|
+
│ ├── tasks.md # Task breakdown
|
|
120
|
+
│ ├── research.md # Technical research (optional)
|
|
121
|
+
│ └── contracts/ # API contracts
|
|
122
|
+
│ ├── api.yaml # OpenAPI 3.0
|
|
123
|
+
│ └── events.md # Real-time events (optional)
|
|
108
124
|
└── validations/ # Validation reports
|
|
109
125
|
```
|
|
110
126
|
|
|
127
|
+
## Plan Phase Documents
|
|
128
|
+
|
|
129
|
+
When running `/speckit.plan`, the following documents are generated:
|
|
130
|
+
|
|
131
|
+
| Document | Description | Obligatoire |
|
|
132
|
+
|----------|-------------|-------------|
|
|
133
|
+
| `plan.md` | Main implementation plan with Phase -1 Gates | ✅ Yes |
|
|
134
|
+
| `data-model.md` | Entity definitions, relations, validation rules | ✅ Yes |
|
|
135
|
+
| `contracts/api.yaml` | OpenAPI 3.0 specification | ✅ Yes |
|
|
136
|
+
| `contracts/events.md` | WebSocket/SSE event contracts | If real-time |
|
|
137
|
+
| `quickstart.md` | Manual validation scenarios from user stories | ✅ Yes |
|
|
138
|
+
| `research.md` | Technical comparisons and decisions | Optional |
|
|
139
|
+
|
|
111
140
|
## Important Conventions
|
|
112
141
|
|
|
113
142
|
When using spec-kit:
|