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.
Files changed (30) hide show
  1. package/README.md +57 -9
  2. package/dist/schemas/workflowSchema.d.ts +4 -0
  3. package/dist/schemas/workflowSchema.d.ts.map +1 -1
  4. package/dist/schemas/workflowSchema.js +2 -1
  5. package/dist/schemas/workflowSchema.js.map +1 -1
  6. package/dist/utils/workflowLoader.d.ts +6 -3
  7. package/dist/utils/workflowLoader.d.ts.map +1 -1
  8. package/docs/DOCUMENTATION.md +70 -9
  9. package/package.json +1 -1
  10. package/starter-kit/agents/PlanAgent.md +71 -29
  11. package/starter-kit/copilot-instructions.md +30 -1
  12. package/starter-kit/github-prompts/speckit.analyze.prompt.md +187 -35
  13. package/starter-kit/github-prompts/speckit.checklist.prompt.md +181 -45
  14. package/starter-kit/github-prompts/speckit.clarify.prompt.md +184 -18
  15. package/starter-kit/github-prompts/speckit.implement.prompt.md +161 -17
  16. package/starter-kit/github-prompts/speckit.plan.prompt.md +39 -8
  17. package/starter-kit/github-prompts/speckit.specify.prompt.md +129 -15
  18. package/starter-kit/github-prompts/speckit.tasks.prompt.md +203 -20
  19. package/starter-kit/prompts/plan.md +96 -5
  20. package/starter-kit/prompts/tasks.md +113 -38
  21. package/starter-kit/templates/contracts/api-template.yaml +317 -0
  22. package/starter-kit/templates/contracts/events-template.md +299 -0
  23. package/starter-kit/templates/data-model.md +160 -0
  24. package/starter-kit/templates/plan-template.md +73 -0
  25. package/starter-kit/templates/quickstart.md +188 -0
  26. package/starter-kit/templates/research.md +201 -0
  27. package/starter-kit/workflows/bugfix-git.yaml +198 -0
  28. package/starter-kit/workflows/feature-full.yaml +46 -8
  29. package/starter-kit/workflows/feature-git.yaml +198 -0
  30. 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**: Spécifications fonctionnelles, plans d'implémentation, rapports de bugs
33
- - **🛡️ Gouvernance Intégrée**: Constitution projet, principes de développement
34
- - **� Checklists de Qualité**: "Unit tests for English" pour valider vos requirements
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
- - **�🔗 Azure DevOps**: Intégration native via MCP
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
- │ │ ├── plan-template.md
101
- │ │ ├── tasks-template.md
102
- │ │ └── checklist-template.md # Template de checklist de qualité
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 ← NOUVEAU
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;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,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"}
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":"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"}
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;;;;;;;;;;;;;;;;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"}
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"}
@@ -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 format
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 an implementation plan from a specification.
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. Returns context for generating the plan
146
- 4. Output saved to `specs/plan.md`
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 a plan.
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. Returns context for generating tasks
172
- 4. Output saved to `specs/tasks.md`
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,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-spec-kit-mcp",
3
- "version": "2.4.6",
3
+ "version": "2.4.8",
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",
@@ -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
- - Break down features into technical tasks
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 dependencies between tasks
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 and requirements into actionable, well-structured implementation plans with clear tasks, dependencies, and estimates.
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. **Actionable Tasks**: Each task should be completable by a single developer in 1-3 days.
24
- 2. **Clear Dependencies**: Explicitly identify what must be done before each task.
25
- 3. **Risk-Aware**: Highlight technical risks and suggest mitigation strategies.
26
- 4. **Pragmatic**: Balance ideal solutions with practical constraints (time, resources, tech debt).
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
- ### Task Decomposition Guidelines
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
- - Start with the end-to-end happy path
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
- ### Estimation Approach
70
+ Use this EXACT format:
71
+ ```
72
+ - [ ] T### [P] [US#] Description with file path
73
+ ```
37
74
 
38
- - Use relative sizing (S/M/L/XL) or story points
39
- - Factor in unknowns and learning curves
40
- - Include buffer for integration and testing
41
- - Be explicit about assumptions affecting estimates
75
+ Where:
76
+ - `T###` = Task number
77
+ - `[P]` = Parallel marker (if can run in parallel)
78
+ - `[US#]` = User Story reference
42
79
 
43
- ### Output Format
80
+ ### Output Structure
44
81
 
45
- For each task, provide:
46
- - Clear title (verb + object)
47
- - Description with acceptance criteria
48
- - Size/effort estimate
49
- - Dependencies (task IDs)
50
- - Technical notes and implementation hints
51
- - Risk flags if applicable
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
- └── tasks-template.md
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: