smart-spec-kit-mcp 2.2.8 → 2.3.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/dist/schemas/workflowSchema.d.ts +10 -2
- package/dist/schemas/workflowSchema.d.ts.map +1 -1
- package/dist/schemas/workflowSchema.js +23 -1
- package/dist/schemas/workflowSchema.js.map +1 -1
- package/dist/utils/workflowLoader.d.ts +15 -3
- package/dist/utils/workflowLoader.d.ts.map +1 -1
- package/docs/DOCUMENTATION.md +19 -8
- package/package.json +1 -1
- package/starter-kit/copilot-instructions.md +21 -24
- package/starter-kit/github-prompts/speckit.help.prompt.md +50 -23
- package/starter-kit/github-prompts/speckit.workflow.prompt.md +26 -68
- package/starter-kit/workflows/bugfix.yaml +41 -50
- package/starter-kit/workflows/feature-full.yaml +87 -262
- package/starter-kit/workflows/feature-standard.yaml +62 -58
|
@@ -19,7 +19,11 @@ export declare const WorkflowStepSchema: z.ZodObject<{
|
|
|
19
19
|
}>;
|
|
20
20
|
description: z.ZodString;
|
|
21
21
|
agent: z.ZodOptional<z.ZodString>;
|
|
22
|
-
inputs: z.ZodOptional<z.
|
|
22
|
+
inputs: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
|
|
23
|
+
name: z.ZodString;
|
|
24
|
+
description: z.ZodOptional<z.ZodString>;
|
|
25
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
26
|
+
}, z.core.$strip>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>]>>;
|
|
23
27
|
outputs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
28
|
next: z.ZodOptional<z.ZodString>;
|
|
25
29
|
}, z.core.$strip>;
|
|
@@ -59,7 +63,11 @@ export declare const WorkflowSchema: z.ZodObject<{
|
|
|
59
63
|
}>;
|
|
60
64
|
description: z.ZodString;
|
|
61
65
|
agent: z.ZodOptional<z.ZodString>;
|
|
62
|
-
inputs: z.ZodOptional<z.
|
|
66
|
+
inputs: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
|
|
67
|
+
name: z.ZodString;
|
|
68
|
+
description: z.ZodOptional<z.ZodString>;
|
|
69
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
70
|
+
}, z.core.$strip>>, z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>]>>;
|
|
63
71
|
outputs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
64
72
|
next: z.ZodOptional<z.ZodString>;
|
|
65
73
|
}, z.core.$strip>>;
|
|
@@ -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;
|
|
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;;;;;;;;;;;;;;;;;;;iBAU7B,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"}
|
|
@@ -4,6 +4,28 @@
|
|
|
4
4
|
* Zod schemas for validating workflow YAML files
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
|
+
/**
|
|
8
|
+
* Schema for input parameter (flexible format)
|
|
9
|
+
*/
|
|
10
|
+
const InputItemSchema = z.object({
|
|
11
|
+
name: z.string(),
|
|
12
|
+
description: z.string().optional(),
|
|
13
|
+
required: z.boolean().optional(),
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Flexible input value: can be string or array of strings
|
|
17
|
+
*/
|
|
18
|
+
const FlexibleInputValue = z.union([
|
|
19
|
+
z.string(),
|
|
20
|
+
z.array(z.string()),
|
|
21
|
+
]);
|
|
22
|
+
/**
|
|
23
|
+
* Flexible inputs: can be array of objects or key-value record with flexible values
|
|
24
|
+
*/
|
|
25
|
+
const FlexibleInputsSchema = z.union([
|
|
26
|
+
z.array(InputItemSchema),
|
|
27
|
+
z.record(z.string(), FlexibleInputValue),
|
|
28
|
+
]).optional();
|
|
7
29
|
/**
|
|
8
30
|
* Schema for a single workflow step
|
|
9
31
|
*/
|
|
@@ -14,7 +36,7 @@ export const WorkflowStepSchema = z.object({
|
|
|
14
36
|
.describe("The type of action to perform"),
|
|
15
37
|
description: z.string().describe("Detailed description of what this step does"),
|
|
16
38
|
agent: z.string().optional().describe("Agent to use for this step (e.g., SpecAgent, PlanAgent)"),
|
|
17
|
-
inputs:
|
|
39
|
+
inputs: FlexibleInputsSchema.describe("Input parameters for the step"),
|
|
18
40
|
outputs: z.array(z.string()).optional().describe("Expected outputs from this step"),
|
|
19
41
|
next: z.string().optional().describe("Next step ID (if not sequential)"),
|
|
20
42
|
});
|
|
@@ -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,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;SACrF,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IAChG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"workflowSchema.js","sourceRoot":"","sources":["../../src/schemas/workflowSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,11 @@ export declare function getWorkflowStep(workflow: Workflow, stepId: string): {
|
|
|
51
51
|
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
52
52
|
description: string;
|
|
53
53
|
agent?: string | undefined;
|
|
54
|
-
inputs?: Record<string, string> |
|
|
54
|
+
inputs?: Record<string, string | string[]> | {
|
|
55
|
+
name: string;
|
|
56
|
+
description?: string | undefined;
|
|
57
|
+
required?: boolean | undefined;
|
|
58
|
+
}[] | undefined;
|
|
55
59
|
outputs?: string[] | undefined;
|
|
56
60
|
next?: string | undefined;
|
|
57
61
|
} | undefined;
|
|
@@ -64,7 +68,11 @@ export declare function getFirstStep(workflow: Workflow): {
|
|
|
64
68
|
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
65
69
|
description: string;
|
|
66
70
|
agent?: string | undefined;
|
|
67
|
-
inputs?: Record<string, string> |
|
|
71
|
+
inputs?: Record<string, string | string[]> | {
|
|
72
|
+
name: string;
|
|
73
|
+
description?: string | undefined;
|
|
74
|
+
required?: boolean | undefined;
|
|
75
|
+
}[] | undefined;
|
|
68
76
|
outputs?: string[] | undefined;
|
|
69
77
|
next?: string | undefined;
|
|
70
78
|
} | undefined;
|
|
@@ -77,7 +85,11 @@ export declare function getNextStep(workflow: Workflow, currentStepId: string):
|
|
|
77
85
|
action: "fetch_ado" | "generate_content" | "review" | "create_file" | "call_agent";
|
|
78
86
|
description: string;
|
|
79
87
|
agent?: string | undefined;
|
|
80
|
-
inputs?: Record<string, string> |
|
|
88
|
+
inputs?: Record<string, string | string[]> | {
|
|
89
|
+
name: string;
|
|
90
|
+
description?: string | undefined;
|
|
91
|
+
required?: boolean | undefined;
|
|
92
|
+
}[] | undefined;
|
|
81
93
|
outputs?: string[] | undefined;
|
|
82
94
|
next?: string | undefined;
|
|
83
95
|
} | null | 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
|
@@ -369,25 +369,36 @@ Then use: `speckit: validate my-custom`
|
|
|
369
369
|
**Examples**:
|
|
370
370
|
|
|
371
371
|
```text
|
|
372
|
-
speckit
|
|
373
|
-
speckit
|
|
374
|
-
speckit
|
|
375
|
-
speckit: workflow status
|
|
372
|
+
/speckit.workflow feature-standard Multi-View
|
|
373
|
+
/speckit.workflow feature-quick
|
|
374
|
+
/speckit.workflow bugfix
|
|
376
375
|
/speckit.workflow list
|
|
376
|
+
/speckit.workflow status
|
|
377
377
|
```
|
|
378
378
|
|
|
379
|
+
**Simplified Usage**:
|
|
380
|
+
|
|
381
|
+
Just type the workflow name after `/speckit.workflow`:
|
|
382
|
+
|
|
383
|
+
- `/speckit.workflow feature-standard` → Starts the standard workflow
|
|
384
|
+
- `/speckit.workflow bugfix` → Starts the bugfix workflow
|
|
385
|
+
- Any text after the workflow name becomes the `contextId`
|
|
386
|
+
|
|
379
387
|
**Behavior**:
|
|
380
388
|
|
|
381
389
|
**Action: list**
|
|
390
|
+
|
|
382
391
|
1. Scans `.spec-kit/workflows/` (local) and `starter-kit/workflows/` (built-in)
|
|
383
392
|
2. Displays table with workflow name, description, and source (🔧 Local / 📦 Built-in)
|
|
384
393
|
|
|
385
394
|
**Action: start**
|
|
395
|
+
|
|
386
396
|
1. Validates workflow exists
|
|
387
|
-
2.
|
|
397
|
+
2. Calls `start_workflow` MCP tool to begin the workflow
|
|
388
398
|
3. Workflow will guide through each step automatically
|
|
389
399
|
|
|
390
400
|
**Action: status**
|
|
401
|
+
|
|
391
402
|
1. Checks active workflow session
|
|
392
403
|
2. Shows current step, completed actions, next required action
|
|
393
404
|
|
|
@@ -395,9 +406,9 @@ speckit: workflow status
|
|
|
395
406
|
|
|
396
407
|
| Workflow | Description | Steps |
|
|
397
408
|
|----------|-------------|-------|
|
|
398
|
-
| `feature-quick` | Quick feature implementation |
|
|
399
|
-
| `feature-standard` | Standard feature workflow |
|
|
400
|
-
| `feature-full` | Full feature with validation |
|
|
409
|
+
| `feature-quick` | Quick feature implementation | spec → implement |
|
|
410
|
+
| `feature-standard` | Standard feature workflow | spec → plan → tasks → implement |
|
|
411
|
+
| `feature-full` | Full feature with validation | spec → security review → RGPD review → plan → tasks → implement |
|
|
401
412
|
| `bugfix` | Bug fix with reproduction | reproduce → analyze → fix → test |
|
|
402
413
|
|
|
403
414
|
**Creating Custom Workflows**:
|
package/package.json
CHANGED
|
@@ -15,6 +15,7 @@ Users can type `/speckit.` to see available slash commands:
|
|
|
15
15
|
| `/speckit.clarify` | `speckit_clarify` | Clarify requirements |
|
|
16
16
|
| `/speckit.validate` | `speckit_validate` | Validate compliance (security, RGPD, etc.) |
|
|
17
17
|
| `/speckit.memory` | `speckit_memory` | Manage project memory |
|
|
18
|
+
| `/speckit.workflow` | `start_workflow` | Start an automated workflow |
|
|
18
19
|
| `/speckit.help` | `speckit_help` | Get help and documentation |
|
|
19
20
|
|
|
20
21
|
## Keyword Commands (Alternative)
|
|
@@ -30,6 +31,7 @@ When the user mentions **"speckit:"** followed by a command, or uses these keywo
|
|
|
30
31
|
| `speckit: clarify`, `clarifier`, `préciser` | `speckit_clarify` | Clarify requirements |
|
|
31
32
|
| `speckit: validate`, `valider`, `vérifier` | `speckit_validate` | Validate compliance (security, RGPD, etc.) |
|
|
32
33
|
| `speckit: memory`, `enrichir la mémoire`, `ajouter au contexte` | `speckit_memory` | Manage project memory |
|
|
34
|
+
| `speckit: workflow feature-standard`, `démarrer workflow` | `start_workflow` | Start an automated workflow |
|
|
33
35
|
| `speckit: help`, `aide sur speckit`, questions about spec-kit | `speckit_help` | Get help and documentation |
|
|
34
36
|
|
|
35
37
|
## Getting Help
|
|
@@ -113,21 +115,28 @@ After calling a spec-kit tool, follow the instructions in the tool response. The
|
|
|
113
115
|
- Specific instructions for what to generate
|
|
114
116
|
- Suggested next step
|
|
115
117
|
|
|
116
|
-
## Automated Workflows
|
|
118
|
+
## Automated Workflows
|
|
117
119
|
|
|
118
|
-
|
|
120
|
+
Workflows automate multi-step processes. Use `/speckit.workflow` or `start_workflow`:
|
|
119
121
|
|
|
120
|
-
|
|
|
121
|
-
|
|
122
|
-
| `
|
|
123
|
-
| `
|
|
124
|
-
| `
|
|
122
|
+
| Workflow | Description |
|
|
123
|
+
|----------|-------------|
|
|
124
|
+
| `feature-quick` | Quick win: spec → implement |
|
|
125
|
+
| `feature-standard` | Standard: spec → plan → tasks → implement |
|
|
126
|
+
| `feature-full` | Complete with security/RGPD validations |
|
|
127
|
+
| `bugfix` | Bug fix with reproduction |
|
|
125
128
|
|
|
126
|
-
|
|
129
|
+
### Examples
|
|
130
|
+
|
|
131
|
+
- `/speckit.workflow feature-standard Multi-View` → Start standard workflow for "Multi-View"
|
|
132
|
+
- `/speckit.workflow feature-quick` → Start quick workflow
|
|
133
|
+
- `/speckit.workflow bugfix` → Start bugfix workflow
|
|
134
|
+
|
|
135
|
+
**Auto Mode**: Add `auto=true` to proceed without approval prompts.
|
|
127
136
|
|
|
128
137
|
## Example Interactions
|
|
129
138
|
|
|
130
|
-
**User**: `/speckit.specify
|
|
139
|
+
**User**: `/speckit.specify système de notifications push`
|
|
131
140
|
**Action**: Call `speckit_specify` with `requirements: "système de notifications push"`
|
|
132
141
|
|
|
133
142
|
**User**: `/speckit.plan`
|
|
@@ -139,25 +148,13 @@ For multi-step automation, use `start_workflow`:
|
|
|
139
148
|
**User**: `/speckit.memory list`
|
|
140
149
|
**Action**: Call `speckit_memory` with `action: "list"`
|
|
141
150
|
|
|
142
|
-
**User**: `/speckit.memory ajouter une décision technique`
|
|
143
|
-
**Action**: Call `speckit_memory` with `action: "add"`, `category: "decisions"`
|
|
144
|
-
|
|
145
|
-
**User**: `/speckit.memory auto`
|
|
146
|
-
**Action**: Call `speckit_memory` with `action: "auto"` to auto-enrich from context
|
|
147
|
-
|
|
148
151
|
**User**: `/speckit.validate security`
|
|
149
152
|
**Action**: Call `speckit_validate` with `ruleType: "security"`
|
|
150
153
|
|
|
151
|
-
**User**: `/speckit.
|
|
152
|
-
**Action**: Call `
|
|
153
|
-
|
|
154
|
-
**User**: `/speckit.validate architecture-rules`
|
|
155
|
-
**Action**: Call `speckit_validate` with `ruleType: "architecture"` (uses custom rules file)
|
|
156
|
-
|
|
157
|
-
**User**: `speckit: start_workflow workflow_name="feature-standard" PiP Support auto=true`
|
|
158
|
-
**Action**: Call `start_workflow` with `workflow_name: "feature-standard"`, `context_id: "PiP Support"`, `auto: true`
|
|
154
|
+
**User**: `/speckit.workflow feature-standard Multi-View`
|
|
155
|
+
**Action**: Call `start_workflow` with `workflow_name: "feature-standard"`, `context_id: "Multi-View"`
|
|
159
156
|
|
|
160
|
-
**User**: `/speckit.help
|
|
157
|
+
**User**: `/speckit.help workflows`
|
|
161
158
|
**Action**: Call `speckit_help` with `topic: "workflows"`
|
|
162
159
|
|
|
163
160
|
**User**: "Comment fonctionne spec-kit ?"
|
|
@@ -1,46 +1,73 @@
|
|
|
1
|
+
````prompt
|
|
1
2
|
---
|
|
2
|
-
description: "
|
|
3
|
+
description: "Afficher l'aide et les commandes Spec-Kit disponibles"
|
|
3
4
|
mode: "agent"
|
|
4
5
|
tools: ["mcp_spec-kit_speckit_help"]
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Spec-Kit: Aide
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Instructions
|
|
12
|
-
|
|
13
|
-
Appelez l'outil MCP `speckit_help` pour obtenir de l'aide.
|
|
10
|
+
## Arguments utilisateur
|
|
14
11
|
|
|
15
12
|
```
|
|
16
13
|
$ARGUMENTS
|
|
17
14
|
```
|
|
18
15
|
|
|
19
|
-
##
|
|
16
|
+
## Instructions
|
|
20
17
|
|
|
21
|
-
-
|
|
22
|
-
- **templates** : Comment utiliser et personnaliser les templates
|
|
23
|
-
- **prompts** : Comment modifier les prompts des commandes
|
|
24
|
-
- **customization** : Personnalisation avancée de Spec-Kit
|
|
25
|
-
- **troubleshooting** : Résolution de problèmes courants
|
|
18
|
+
Affiche l'aide Spec-Kit. Si un sujet est fourni, donne des détails sur ce sujet.
|
|
26
19
|
|
|
27
|
-
## Commandes
|
|
20
|
+
## 🚀 Commandes Slash Disponibles
|
|
28
21
|
|
|
29
|
-
| Commande | Description |
|
|
22
|
+
| Commande | Description | Exemple |
|
|
23
|
+
|----------|-------------|---------|
|
|
24
|
+
| `/speckit.specify` | Créer une spécification | `/speckit.specify système de login` |
|
|
25
|
+
| `/speckit.plan` | Créer un plan d'implémentation | `/speckit.plan` |
|
|
26
|
+
| `/speckit.tasks` | Générer les tâches | `/speckit.tasks` |
|
|
27
|
+
| `/speckit.implement` | Implémenter les tâches | `/speckit.implement` ou `/speckit.implement task 3` |
|
|
28
|
+
| `/speckit.clarify` | Clarifier les exigences | `/speckit.clarify` |
|
|
29
|
+
| `/speckit.validate` | Valider conformité (sécurité, RGPD) | `/speckit.validate security` |
|
|
30
|
+
| `/speckit.memory` | Gérer la mémoire projet | `/speckit.memory list` |
|
|
31
|
+
| `/speckit.workflow` | Démarrer un workflow automatisé | `/speckit.workflow feature-standard` |
|
|
32
|
+
| `/speckit.help` | Cette aide | `/speckit.help workflows` |
|
|
33
|
+
|
|
34
|
+
## 📋 Workflows Automatisés
|
|
35
|
+
|
|
36
|
+
| Workflow | Description |
|
|
30
37
|
|----------|-------------|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| `/speckit.memory` | Gérer la mémoire projet |
|
|
38
|
-
| `/speckit.help` | Cette aide |
|
|
38
|
+
| `feature-quick` | Rapide: spec → implement |
|
|
39
|
+
| `feature-standard` | Standard: spec → plan → tasks → implement |
|
|
40
|
+
| `feature-full` | Complet avec validations sécurité/RGPD |
|
|
41
|
+
| `bugfix` | Correction de bug |
|
|
42
|
+
|
|
43
|
+
**Usage:** `/speckit.workflow feature-standard Mon Feature`
|
|
39
44
|
|
|
40
|
-
## Workflow
|
|
45
|
+
## 🔄 Workflow Typique
|
|
41
46
|
|
|
42
47
|
```
|
|
43
48
|
specify → plan → tasks → implement
|
|
44
49
|
↑
|
|
45
50
|
clarify (si nécessaire)
|
|
46
51
|
```
|
|
52
|
+
|
|
53
|
+
## 📁 Structure du Projet
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
.spec-kit/
|
|
57
|
+
├── prompts/ # Personnaliser les commandes
|
|
58
|
+
├── templates/ # Templates des documents
|
|
59
|
+
├── memory/ # Constitution projet
|
|
60
|
+
├── rules/ # Règles de validation
|
|
61
|
+
└── workflows/ # Workflows custom
|
|
62
|
+
specs/ # Specs générées
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 🎯 Sujets d'Aide
|
|
66
|
+
|
|
67
|
+
- **workflows** : Créer et personnaliser des workflows
|
|
68
|
+
- **templates** : Utiliser et modifier les templates
|
|
69
|
+
- **prompts** : Modifier le comportement des commandes
|
|
70
|
+
- **customization** : Personnalisation avancée
|
|
71
|
+
- **troubleshooting** : Résolution de problèmes
|
|
72
|
+
|
|
73
|
+
````
|
|
@@ -1,90 +1,48 @@
|
|
|
1
1
|
````prompt
|
|
2
2
|
---
|
|
3
|
-
description: "
|
|
3
|
+
description: "Démarrer un workflow Spec-Kit automatisé"
|
|
4
4
|
mode: "agent"
|
|
5
|
-
tools: ["mcp_spec-
|
|
5
|
+
tools: ["mcp_spec-kit_start_workflow", "mcp_spec-kit_workflow_status", "mcp_spec-kit_abort_workflow"]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Spec-Kit:
|
|
8
|
+
# Spec-Kit: Workflows
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Démarre un workflow automatisé multi-étapes.
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
1. **Appeler l'outil MCP** `speckit_workflow` pour gérer les workflows
|
|
15
|
-
2. **Interpréter les arguments** fournis par l'utilisateur
|
|
12
|
+
## Arguments utilisateur
|
|
16
13
|
|
|
17
14
|
```
|
|
18
15
|
$ARGUMENTS
|
|
19
16
|
```
|
|
20
17
|
|
|
21
|
-
##
|
|
22
|
-
|
|
23
|
-
### Lister les workflows
|
|
24
|
-
```
|
|
25
|
-
action: "list"
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Affiche tous les workflows disponibles (locaux et intégrés).
|
|
29
|
-
|
|
30
|
-
### Démarrer un workflow
|
|
31
|
-
```
|
|
32
|
-
action: "start"
|
|
33
|
-
workflow_name: "feature-standard"
|
|
34
|
-
context_id: "MonFeature" # Optionnel
|
|
35
|
-
auto: false # Optionnel (true = automatique)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Démarre un workflow multi-étapes. Le workflow guide automatiquement à travers les étapes.
|
|
39
|
-
|
|
40
|
-
### Vérifier le statut
|
|
41
|
-
```
|
|
42
|
-
action: "status"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Affiche l'état du workflow actif (étape en cours, actions complétées).
|
|
46
|
-
|
|
47
|
-
## Workflows intégrés
|
|
48
|
-
|
|
49
|
-
| Workflow | Description |
|
|
50
|
-
|----------|-------------|
|
|
51
|
-
| `feature-quick` | Feature rapide (léger, sans breakdown de tâches) |
|
|
52
|
-
| `feature-standard` | Feature standard (spec → plan → tasks → implement) |
|
|
53
|
-
| `feature-full` | Feature complète avec validation et tests |
|
|
54
|
-
| `bugfix` | Correction de bug avec reproduction |
|
|
18
|
+
## Comment interpréter
|
|
55
19
|
|
|
56
|
-
|
|
20
|
+
1. **Si l'utilisateur donne un nom de workflow** → Démarrer ce workflow avec `start_workflow`
|
|
21
|
+
2. **Si l'utilisateur dit "list"** → Lister les workflows disponibles
|
|
22
|
+
3. **Si l'utilisateur dit "status"** → Vérifier le statut avec `workflow_status`
|
|
23
|
+
4. **Si l'utilisateur dit "stop" ou "abort"** → Annuler avec `abort_workflow`
|
|
57
24
|
|
|
58
|
-
|
|
59
|
-
→ Appeler `speckit_workflow` avec `action: "list"`
|
|
25
|
+
## Workflows disponibles
|
|
60
26
|
|
|
61
|
-
|
|
62
|
-
|
|
27
|
+
| Nom | Description |
|
|
28
|
+
|-----|-------------|
|
|
29
|
+
| `feature-quick` | Quick win (spec → implement) |
|
|
30
|
+
| `feature-standard` | Standard (spec → plan → tasks → implement) |
|
|
31
|
+
| `feature-full` | Avec validations sécurité/RGPD |
|
|
32
|
+
| `bugfix` | Correction de bug |
|
|
63
33
|
|
|
64
|
-
|
|
65
|
-
→ Appeler `speckit_workflow` avec:
|
|
66
|
-
- `action: "start"`
|
|
67
|
-
- `workflow_name: "feature-full"`
|
|
68
|
-
- `context_id: "MyFeature"`
|
|
69
|
-
- `auto: true`
|
|
34
|
+
## Exemples
|
|
70
35
|
|
|
71
|
-
|
|
72
|
-
|
|
36
|
+
- `/speckit.workflow feature-standard Multi-View` → `start_workflow` avec `workflow_name="feature-standard"`, `context_id="Multi-View"`
|
|
37
|
+
- `/speckit.workflow list` → Afficher la liste des workflows
|
|
38
|
+
- `/speckit.workflow status` → Vérifier le statut
|
|
73
39
|
|
|
74
|
-
##
|
|
40
|
+
## Simplification
|
|
75
41
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
## Workflow typique
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
specify → plan → tasks → implement
|
|
84
|
-
↑
|
|
85
|
-
clarify (si nécessaire)
|
|
86
|
-
```
|
|
42
|
+
Si l'utilisateur tape juste un nom de workflow sans "start":
|
|
43
|
+
- `/speckit.workflow feature-standard` → Démarrer feature-standard
|
|
44
|
+
- `/speckit.workflow bugfix` → Démarrer bugfix
|
|
87
45
|
|
|
88
|
-
|
|
46
|
+
Le texte après le nom du workflow devient le `context_id`.
|
|
89
47
|
|
|
90
48
|
````
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Bugfix Workflow
|
|
2
|
-
#
|
|
2
|
+
# Structured process for bug fixes
|
|
3
3
|
|
|
4
4
|
name: bugfix
|
|
5
5
|
displayName: "Bug Fix"
|
|
6
6
|
description: "Structured workflow for analyzing, fixing, and validating bug corrections"
|
|
7
7
|
|
|
8
8
|
metadata:
|
|
9
|
-
version: "
|
|
9
|
+
version: "2.0"
|
|
10
10
|
author: "Spec-Kit"
|
|
11
11
|
tags:
|
|
12
12
|
- bugfix
|
|
@@ -17,31 +17,37 @@ template: bugfix-report.md
|
|
|
17
17
|
defaultAgent: SpecAgent
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
|
+
# Step 1: Analyze Bug
|
|
20
21
|
- id: analyze-bug
|
|
21
|
-
name: "Analyze Bug
|
|
22
|
-
action:
|
|
22
|
+
name: "1. Analyze Bug"
|
|
23
|
+
action: call_agent
|
|
24
|
+
agent: SpecAgent
|
|
23
25
|
description: |
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
26
|
+
Analyze the bug based on user description:
|
|
27
|
+
|
|
28
|
+
- Understand the symptoms
|
|
29
|
+
- Identify reproduction steps
|
|
30
|
+
- Locate affected components
|
|
31
|
+
- Determine root cause
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
Document findings clearly.
|
|
34
|
+
inputs:
|
|
35
|
+
bug_description: "Description from user"
|
|
31
36
|
outputs:
|
|
32
|
-
- bug_data
|
|
33
37
|
- root_cause_analysis
|
|
34
38
|
|
|
39
|
+
# Step 2: Plan Fix
|
|
35
40
|
- id: plan-fix
|
|
36
|
-
name: "Plan Correction"
|
|
41
|
+
name: "2. Plan Correction"
|
|
37
42
|
action: call_agent
|
|
38
43
|
agent: PlanAgent
|
|
39
44
|
description: |
|
|
40
|
-
Create a correction plan
|
|
45
|
+
Create a correction plan:
|
|
46
|
+
|
|
41
47
|
- Proposed fix approach
|
|
42
48
|
- Files/components to modify
|
|
43
49
|
- Potential side effects
|
|
44
|
-
-
|
|
50
|
+
- Test cases to verify fix
|
|
45
51
|
|
|
46
52
|
Keep the fix minimal and focused.
|
|
47
53
|
inputs:
|
|
@@ -49,51 +55,36 @@ steps:
|
|
|
49
55
|
outputs:
|
|
50
56
|
- fix_plan
|
|
51
57
|
|
|
52
|
-
|
|
53
|
-
name: "Security Validation"
|
|
54
|
-
action: review
|
|
55
|
-
agent: GovAgent
|
|
56
|
-
description: |
|
|
57
|
-
Quick security review of the proposed fix:
|
|
58
|
-
- [ ] No new vulnerabilities introduced
|
|
59
|
-
- [ ] Input validation maintained
|
|
60
|
-
- [ ] No sensitive data exposure
|
|
61
|
-
- [ ] Authentication/Authorization intact
|
|
62
|
-
inputs:
|
|
63
|
-
document: "fix_plan"
|
|
64
|
-
outputs:
|
|
65
|
-
- security_clearance
|
|
66
|
-
|
|
58
|
+
# Step 3: Implement Fix
|
|
67
59
|
- id: implement-fix
|
|
68
|
-
name: "Implement
|
|
69
|
-
action:
|
|
60
|
+
name: "3. Implement Fix"
|
|
61
|
+
action: call_agent
|
|
62
|
+
agent: SpecAgent
|
|
70
63
|
description: |
|
|
71
|
-
Implement the fix
|
|
72
|
-
1. Write the code fix
|
|
73
|
-
2. Add unit tests for the bug scenario
|
|
74
|
-
3. Add regression tests
|
|
75
|
-
4. Update documentation if needed
|
|
64
|
+
Implement the bug fix:
|
|
76
65
|
|
|
77
|
-
|
|
66
|
+
- Make minimal changes
|
|
67
|
+
- Follow project conventions
|
|
68
|
+
- Add/update tests
|
|
69
|
+
- Document the fix
|
|
78
70
|
inputs:
|
|
79
|
-
|
|
71
|
+
source: "fix_plan"
|
|
80
72
|
outputs:
|
|
81
|
-
-
|
|
82
|
-
- test_cases
|
|
73
|
+
- implementation
|
|
83
74
|
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
# Step 4: Verify
|
|
76
|
+
- id: verify-fix
|
|
77
|
+
name: "4. Verify Fix"
|
|
86
78
|
action: review
|
|
87
79
|
agent: GovAgent
|
|
88
80
|
description: |
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- [ ]
|
|
81
|
+
Verify the fix is complete:
|
|
82
|
+
|
|
83
|
+
- [ ] Bug is resolved
|
|
84
|
+
- [ ] No regressions introduced
|
|
92
85
|
- [ ] Tests pass
|
|
93
|
-
- [ ]
|
|
94
|
-
- [ ] Documentation updated
|
|
86
|
+
- [ ] No security issues
|
|
95
87
|
inputs:
|
|
96
|
-
|
|
97
|
-
tests: "test_cases"
|
|
88
|
+
source: "implementation"
|
|
98
89
|
outputs:
|
|
99
|
-
-
|
|
90
|
+
- verification_report
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# Full
|
|
2
|
-
# Complete workflow with
|
|
1
|
+
# Feature Full Workflow
|
|
2
|
+
# Complete workflow with validation checkpoints
|
|
3
3
|
|
|
4
4
|
name: feature-full
|
|
5
|
-
displayName: "Feature with
|
|
6
|
-
description: "Complete feature workflow
|
|
5
|
+
displayName: "Feature with Validation"
|
|
6
|
+
description: "Complete feature workflow with security and RGPD validations"
|
|
7
7
|
|
|
8
8
|
metadata:
|
|
9
|
-
version: "
|
|
9
|
+
version: "2.0"
|
|
10
10
|
author: "Spec-Kit"
|
|
11
11
|
tags:
|
|
12
12
|
- feature
|
|
13
13
|
- governance
|
|
14
|
-
-
|
|
14
|
+
- validation
|
|
15
15
|
|
|
16
16
|
template: functional-spec.md
|
|
17
17
|
defaultAgent: SpecAgent
|
|
@@ -20,86 +20,40 @@ steps:
|
|
|
20
20
|
# ═══════════════════════════════════════════════════════════════
|
|
21
21
|
# PHASE 1: SPECIFICATION
|
|
22
22
|
# ═══════════════════════════════════════════════════════════════
|
|
23
|
-
|
|
24
|
-
- id: fetch-requirements
|
|
25
|
-
name: "1.1 Fetch Requirements"
|
|
26
|
-
action: fetch_ado
|
|
27
|
-
description: |
|
|
28
|
-
Retrieve the Feature work item and all linked items from Azure DevOps.
|
|
29
|
-
|
|
30
|
-
Extract:
|
|
31
|
-
- Title and description
|
|
32
|
-
- Acceptance criteria
|
|
33
|
-
- Parent Epic context
|
|
34
|
-
- Linked User Stories
|
|
35
|
-
- Attachments (mockups, documents)
|
|
36
|
-
outputs:
|
|
37
|
-
- workitem_data
|
|
38
|
-
- linked_items
|
|
39
|
-
- attachments
|
|
40
23
|
|
|
41
|
-
- id:
|
|
42
|
-
name: "1.
|
|
24
|
+
- id: create-spec
|
|
25
|
+
name: "1. Create Specification"
|
|
43
26
|
action: call_agent
|
|
44
27
|
agent: SpecAgent
|
|
45
28
|
description: |
|
|
46
|
-
|
|
29
|
+
Create a comprehensive functional specification.
|
|
47
30
|
|
|
48
|
-
|
|
31
|
+
Include:
|
|
32
|
+
- Feature summary and objectives
|
|
49
33
|
- User stories with acceptance criteria
|
|
50
|
-
-
|
|
34
|
+
- Functional requirements
|
|
35
|
+
- Non-functional requirements
|
|
51
36
|
- Data requirements
|
|
37
|
+
- Dependencies and constraints
|
|
52
38
|
|
|
53
|
-
|
|
54
|
-
- Performance targets
|
|
55
|
-
- Availability requirements
|
|
56
|
-
- Scalability needs
|
|
57
|
-
|
|
58
|
-
Mark uncertain sections with [TO FILL] for human review.
|
|
39
|
+
Mark unclear sections with [NEEDS CLARIFICATION] for review.
|
|
59
40
|
inputs:
|
|
60
|
-
|
|
41
|
+
- name: requirements
|
|
42
|
+
description: "Feature description from user"
|
|
43
|
+
required: true
|
|
61
44
|
outputs:
|
|
62
|
-
-
|
|
45
|
+
- spec_document
|
|
63
46
|
|
|
64
47
|
# ═══════════════════════════════════════════════════════════════
|
|
65
|
-
# PHASE 2: VALIDATION
|
|
48
|
+
# PHASE 2: VALIDATION
|
|
66
49
|
# ═══════════════════════════════════════════════════════════════
|
|
67
50
|
|
|
68
|
-
- id: rgpd-review
|
|
69
|
-
name: "2.1 🛡️ RGPD Compliance Review"
|
|
70
|
-
action: review
|
|
71
|
-
agent: GovAgent
|
|
72
|
-
description: |
|
|
73
|
-
Validate GDPR/RGPD compliance:
|
|
74
|
-
|
|
75
|
-
**Data Collection**
|
|
76
|
-
- [ ] Personal data identified and documented
|
|
77
|
-
- [ ] Legal basis for processing defined
|
|
78
|
-
- [ ] Data minimization principle applied
|
|
79
|
-
|
|
80
|
-
**User Rights**
|
|
81
|
-
- [ ] Right to access implemented
|
|
82
|
-
- [ ] Right to rectification supported
|
|
83
|
-
- [ ] Right to erasure (RTBF) supported
|
|
84
|
-
- [ ] Data portability considered
|
|
85
|
-
|
|
86
|
-
**Security & Governance**
|
|
87
|
-
- [ ] Data retention period defined
|
|
88
|
-
- [ ] Third-party processors identified
|
|
89
|
-
- [ ] Privacy by design applied
|
|
90
|
-
- [ ] DPIA required? (if high risk)
|
|
91
|
-
inputs:
|
|
92
|
-
spec: "functional_spec"
|
|
93
|
-
outputs:
|
|
94
|
-
- rgpd_report
|
|
95
|
-
- rgpd_status
|
|
96
|
-
|
|
97
51
|
- id: security-review
|
|
98
|
-
name: "2.
|
|
52
|
+
name: "2.1 🔒 Security Review"
|
|
99
53
|
action: review
|
|
100
54
|
agent: GovAgent
|
|
101
55
|
description: |
|
|
102
|
-
Security assessment
|
|
56
|
+
Security assessment based on the specification:
|
|
103
57
|
|
|
104
58
|
**Authentication & Authorization**
|
|
105
59
|
- [ ] Auth mechanism defined
|
|
@@ -107,238 +61,109 @@ steps:
|
|
|
107
61
|
- [ ] Session management
|
|
108
62
|
|
|
109
63
|
**Data Protection**
|
|
110
|
-
- [ ] Encryption
|
|
111
|
-
- [ ] Encryption in transit (TLS)
|
|
64
|
+
- [ ] Encryption requirements
|
|
112
65
|
- [ ] Sensitive data handling
|
|
113
66
|
|
|
114
67
|
**Input/Output Security**
|
|
115
68
|
- [ ] Input validation strategy
|
|
116
69
|
- [ ] Output encoding
|
|
117
|
-
- [ ]
|
|
118
|
-
- [ ] XSS prevention
|
|
119
|
-
- [ ] CSRF protection
|
|
70
|
+
- [ ] Injection prevention
|
|
120
71
|
|
|
121
|
-
|
|
122
|
-
- [ ] Secrets management
|
|
123
|
-
- [ ] Logging (without PII)
|
|
124
|
-
- [ ] Rate limiting
|
|
125
|
-
- [ ] DDoS considerations
|
|
72
|
+
Identify any security concerns and recommendations.
|
|
126
73
|
inputs:
|
|
127
|
-
spec: "
|
|
74
|
+
spec: "spec_document"
|
|
128
75
|
outputs:
|
|
129
76
|
- security_report
|
|
130
|
-
- security_status
|
|
131
77
|
|
|
132
|
-
- id:
|
|
133
|
-
name: "2.
|
|
134
|
-
action: review
|
|
135
|
-
agent: GovAgent
|
|
136
|
-
description: |
|
|
137
|
-
Architecture validation:
|
|
138
|
-
|
|
139
|
-
**Consistency**
|
|
140
|
-
- [ ] Aligns with existing architecture
|
|
141
|
-
- [ ] Follows established patterns
|
|
142
|
-
- [ ] Uses approved technologies
|
|
143
|
-
|
|
144
|
-
**Quality Attributes**
|
|
145
|
-
- [ ] Scalability addressed
|
|
146
|
-
- [ ] Performance requirements met
|
|
147
|
-
- [ ] Reliability/Availability design
|
|
148
|
-
- [ ] Maintainability considered
|
|
149
|
-
|
|
150
|
-
**Technical Debt**
|
|
151
|
-
- [ ] No unnecessary complexity
|
|
152
|
-
- [ ] Reuses existing components
|
|
153
|
-
- [ ] Technical debt acceptable
|
|
154
|
-
|
|
155
|
-
**Integration**
|
|
156
|
-
- [ ] API contracts defined
|
|
157
|
-
- [ ] Event/message schemas
|
|
158
|
-
- [ ] Database changes documented
|
|
159
|
-
inputs:
|
|
160
|
-
spec: "functional_spec"
|
|
161
|
-
outputs:
|
|
162
|
-
- architecture_report
|
|
163
|
-
- architecture_status
|
|
164
|
-
|
|
165
|
-
- id: design-review
|
|
166
|
-
name: "2.4 🎨 Design System Review"
|
|
78
|
+
- id: rgpd-review
|
|
79
|
+
name: "2.2 🛡️ RGPD Review"
|
|
167
80
|
action: review
|
|
168
81
|
agent: GovAgent
|
|
169
82
|
description: |
|
|
170
|
-
|
|
83
|
+
GDPR/RGPD compliance check:
|
|
171
84
|
|
|
172
|
-
**
|
|
173
|
-
- [ ]
|
|
174
|
-
- [ ]
|
|
175
|
-
- [ ]
|
|
176
|
-
|
|
177
|
-
**Visual Consistency**
|
|
178
|
-
- [ ] Color tokens used correctly
|
|
179
|
-
- [ ] Typography follows guidelines
|
|
180
|
-
- [ ] Spacing uses standard scale
|
|
181
|
-
- [ ] Icons from approved library
|
|
182
|
-
|
|
183
|
-
**Accessibility (WCAG 2.1 AA)**
|
|
184
|
-
- [ ] Color contrast ratios
|
|
185
|
-
- [ ] Keyboard navigation
|
|
186
|
-
- [ ] Screen reader support
|
|
187
|
-
- [ ] Focus indicators
|
|
85
|
+
**Data Collection**
|
|
86
|
+
- [ ] Personal data identified
|
|
87
|
+
- [ ] Legal basis for processing
|
|
88
|
+
- [ ] Data minimization applied
|
|
188
89
|
|
|
189
|
-
**
|
|
190
|
-
- [ ]
|
|
191
|
-
- [ ]
|
|
192
|
-
- [ ]
|
|
90
|
+
**User Rights**
|
|
91
|
+
- [ ] Right to access
|
|
92
|
+
- [ ] Right to rectification
|
|
93
|
+
- [ ] Right to erasure
|
|
94
|
+
|
|
95
|
+
**Governance**
|
|
96
|
+
- [ ] Data retention period
|
|
97
|
+
- [ ] Third-party processors
|
|
98
|
+
- [ ] Privacy by design
|
|
193
99
|
inputs:
|
|
194
|
-
spec: "
|
|
100
|
+
spec: "spec_document"
|
|
195
101
|
outputs:
|
|
196
|
-
-
|
|
197
|
-
- design_status
|
|
102
|
+
- rgpd_report
|
|
198
103
|
|
|
199
104
|
# ═══════════════════════════════════════════════════════════════
|
|
200
|
-
# PHASE 3:
|
|
105
|
+
# PHASE 3: PLANNING
|
|
201
106
|
# ═══════════════════════════════════════════════════════════════
|
|
202
107
|
|
|
203
|
-
- id:
|
|
204
|
-
name: "3.
|
|
108
|
+
- id: create-plan
|
|
109
|
+
name: "3. Create Implementation Plan"
|
|
205
110
|
action: call_agent
|
|
206
111
|
agent: PlanAgent
|
|
207
112
|
description: |
|
|
208
|
-
Create detailed
|
|
113
|
+
Create a detailed implementation plan incorporating validation feedback.
|
|
209
114
|
|
|
210
|
-
|
|
115
|
+
Include:
|
|
116
|
+
- Technical approach
|
|
211
117
|
- Components to create/modify
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
|
|
216
|
-
**Task Breakdown**
|
|
217
|
-
- Granular tasks (1-3 days each)
|
|
218
|
-
- Clear acceptance criteria
|
|
219
|
-
- Dependencies mapped
|
|
220
|
-
- Effort estimates (S/M/L/XL)
|
|
221
|
-
|
|
222
|
-
**Risk Mitigation**
|
|
223
|
-
- Technical risks identified
|
|
224
|
-
- Mitigation strategies
|
|
225
|
-
- Spike tasks if needed
|
|
226
|
-
inputs:
|
|
227
|
-
spec: "functional_spec"
|
|
228
|
-
reviews: ["rgpd_report", "security_report", "architecture_report"]
|
|
229
|
-
outputs:
|
|
230
|
-
- technical_plan
|
|
231
|
-
- task_list
|
|
232
|
-
|
|
233
|
-
- id: test-strategy
|
|
234
|
-
name: "3.2 🧪 Test Strategy"
|
|
235
|
-
action: call_agent
|
|
236
|
-
agent: TestAgent
|
|
237
|
-
description: |
|
|
238
|
-
Define comprehensive test strategy:
|
|
239
|
-
|
|
240
|
-
**Unit Tests**
|
|
241
|
-
- Critical business logic
|
|
242
|
-
- Edge cases
|
|
243
|
-
- Error handling
|
|
244
|
-
- Target: >80% coverage
|
|
245
|
-
|
|
246
|
-
**Integration Tests**
|
|
247
|
-
- API contracts
|
|
248
|
-
- Database operations
|
|
249
|
-
- External service mocks
|
|
250
|
-
|
|
251
|
-
**E2E Tests**
|
|
252
|
-
- Critical user journeys
|
|
253
|
-
- Happy path scenarios
|
|
254
|
-
- Key error scenarios
|
|
255
|
-
|
|
256
|
-
**Non-Functional Tests**
|
|
257
|
-
- Performance benchmarks
|
|
258
|
-
- Load testing thresholds
|
|
259
|
-
- Security scan requirements
|
|
118
|
+
- Security measures to implement
|
|
119
|
+
- RGPD compliance measures
|
|
120
|
+
- Dependencies and order
|
|
121
|
+
- Risk assessment
|
|
260
122
|
inputs:
|
|
261
|
-
spec: "
|
|
262
|
-
|
|
123
|
+
spec: "spec_document"
|
|
124
|
+
reviews: ["security_report", "rgpd_report"]
|
|
263
125
|
outputs:
|
|
264
|
-
-
|
|
265
|
-
- test_cases
|
|
126
|
+
- plan_document
|
|
266
127
|
|
|
267
128
|
# ═══════════════════════════════════════════════════════════════
|
|
268
|
-
# PHASE 4:
|
|
129
|
+
# PHASE 4: TASKS
|
|
269
130
|
# ═══════════════════════════════════════════════════════════════
|
|
270
131
|
|
|
271
|
-
- id:
|
|
272
|
-
name: "4.
|
|
273
|
-
action:
|
|
132
|
+
- id: generate-tasks
|
|
133
|
+
name: "4. Generate Tasks"
|
|
134
|
+
action: call_agent
|
|
135
|
+
agent: PlanAgent
|
|
274
136
|
description: |
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
**User Documentation**
|
|
278
|
-
- [ ] User guide updates
|
|
279
|
-
- [ ] FAQ additions
|
|
280
|
-
- [ ] Tutorial/walkthrough
|
|
137
|
+
Break down the plan into atomic tasks.
|
|
281
138
|
|
|
282
|
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
**Release Documentation**
|
|
289
|
-
- [ ] Changelog entry
|
|
290
|
-
- [ ] Release notes
|
|
291
|
-
- [ ] Migration guide (if breaking changes)
|
|
139
|
+
Each task should:
|
|
140
|
+
- Be completable in 1-2 hours
|
|
141
|
+
- Have clear acceptance criteria
|
|
142
|
+
- Include security/RGPD considerations
|
|
143
|
+
- Be independently testable
|
|
292
144
|
inputs:
|
|
293
|
-
|
|
294
|
-
plan: "technical_plan"
|
|
145
|
+
source: "plan_document"
|
|
295
146
|
outputs:
|
|
296
|
-
-
|
|
147
|
+
- tasks_document
|
|
297
148
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
agent: GovAgent
|
|
302
|
-
description: |
|
|
303
|
-
Final checklist before development starts:
|
|
304
|
-
|
|
305
|
-
**Specification**
|
|
306
|
-
- [ ] Functional spec complete and approved
|
|
307
|
-
- [ ] All [TO FILL] sections resolved
|
|
308
|
-
- [ ] Stakeholder sign-off obtained
|
|
309
|
-
|
|
310
|
-
**Compliance**
|
|
311
|
-
- [ ] RGPD review: PASSED
|
|
312
|
-
- [ ] Security review: PASSED
|
|
313
|
-
- [ ] Architecture review: PASSED
|
|
314
|
-
- [ ] Design review: PASSED (if applicable)
|
|
315
|
-
|
|
316
|
-
**Planning**
|
|
317
|
-
- [ ] Technical plan approved
|
|
318
|
-
- [ ] Tasks created in ADO
|
|
319
|
-
- [ ] Test strategy defined
|
|
320
|
-
- [ ] Documentation plan ready
|
|
321
|
-
|
|
322
|
-
**Ready for Development** ✅
|
|
323
|
-
inputs:
|
|
324
|
-
all_artifacts: true
|
|
325
|
-
outputs:
|
|
326
|
-
- final_approval
|
|
327
|
-
- development_ready
|
|
149
|
+
# ═══════════════════════════════════════════════════════════════
|
|
150
|
+
# PHASE 5: IMPLEMENTATION
|
|
151
|
+
# ═══════════════════════════════════════════════════════════════
|
|
328
152
|
|
|
329
|
-
- id:
|
|
330
|
-
name: "
|
|
331
|
-
action:
|
|
153
|
+
- id: implement
|
|
154
|
+
name: "5. Implement"
|
|
155
|
+
action: call_agent
|
|
156
|
+
agent: SpecAgent
|
|
332
157
|
description: |
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
338
|
-
|
|
339
|
-
|
|
158
|
+
Implement the tasks following security and RGPD guidelines.
|
|
159
|
+
|
|
160
|
+
For each task:
|
|
161
|
+
- Implement following project conventions
|
|
162
|
+
- Apply security measures
|
|
163
|
+
- Ensure RGPD compliance
|
|
164
|
+
- Write appropriate tests
|
|
165
|
+
- Update task status when complete
|
|
340
166
|
inputs:
|
|
341
|
-
|
|
342
|
-
feature_id: "context_id"
|
|
167
|
+
source: "tasks_document"
|
|
343
168
|
outputs:
|
|
344
|
-
-
|
|
169
|
+
- implementation
|
|
@@ -1,92 +1,96 @@
|
|
|
1
1
|
# Feature Standard Workflow
|
|
2
|
-
#
|
|
2
|
+
# Standard workflow: spec → plan → tasks → implement
|
|
3
3
|
|
|
4
4
|
name: feature-standard
|
|
5
|
-
displayName: "Feature
|
|
6
|
-
description: "
|
|
5
|
+
displayName: "Standard Feature"
|
|
6
|
+
description: "Standard feature workflow: specification → plan → tasks → implementation"
|
|
7
7
|
|
|
8
8
|
metadata:
|
|
9
|
-
version: "
|
|
9
|
+
version: "2.0"
|
|
10
10
|
author: "Spec-Kit"
|
|
11
11
|
tags:
|
|
12
12
|
- feature
|
|
13
13
|
- specification
|
|
14
|
-
-
|
|
14
|
+
- standard
|
|
15
15
|
|
|
16
16
|
template: functional-spec.md
|
|
17
17
|
defaultAgent: SpecAgent
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
description: |
|
|
24
|
-
Retrieve the Feature work item from Azure DevOps.
|
|
25
|
-
Extract: Title, Description, Acceptance Criteria, Tags, Links, and Parent/Child relationships.
|
|
26
|
-
outputs:
|
|
27
|
-
- workitem_data
|
|
28
|
-
- linked_items
|
|
29
|
-
|
|
30
|
-
- id: analyze-requirements
|
|
31
|
-
name: "Analyze Requirements"
|
|
20
|
+
# Step 1: Create Specification
|
|
21
|
+
- id: create-spec
|
|
22
|
+
name: "1. Create Specification"
|
|
32
23
|
action: call_agent
|
|
33
24
|
agent: SpecAgent
|
|
34
25
|
description: |
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
26
|
+
Create a functional specification based on user requirements.
|
|
27
|
+
|
|
28
|
+
Include:
|
|
29
|
+
- Feature summary and objectives
|
|
30
|
+
- User stories with acceptance criteria
|
|
31
|
+
- Functional requirements
|
|
32
|
+
- Non-functional requirements (if applicable)
|
|
39
33
|
- Dependencies and constraints
|
|
40
|
-
|
|
34
|
+
|
|
35
|
+
Mark unclear sections with [NEEDS CLARIFICATION] for review.
|
|
41
36
|
inputs:
|
|
42
|
-
|
|
37
|
+
- name: requirements
|
|
38
|
+
description: "Feature description from user"
|
|
39
|
+
required: true
|
|
43
40
|
outputs:
|
|
44
|
-
-
|
|
41
|
+
- spec_document
|
|
45
42
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
# Step 2: Create Implementation Plan
|
|
44
|
+
- id: create-plan
|
|
45
|
+
name: "2. Create Implementation Plan"
|
|
46
|
+
action: call_agent
|
|
47
|
+
agent: PlanAgent
|
|
50
48
|
description: |
|
|
51
|
-
|
|
49
|
+
Create a detailed implementation plan based on the specification.
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
51
|
+
Include:
|
|
52
|
+
- Technical approach
|
|
53
|
+
- Components to create/modify
|
|
54
|
+
- Dependencies and order
|
|
55
|
+
- Risk assessment
|
|
56
|
+
- Estimated effort
|
|
58
57
|
inputs:
|
|
59
|
-
|
|
60
|
-
data: "requirements_analysis"
|
|
58
|
+
source: "spec_document"
|
|
61
59
|
outputs:
|
|
62
|
-
-
|
|
60
|
+
- plan_document
|
|
63
61
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
# Step 3: Generate Task Breakdown
|
|
63
|
+
- id: generate-tasks
|
|
64
|
+
name: "3. Generate Tasks"
|
|
65
|
+
action: call_agent
|
|
66
|
+
agent: PlanAgent
|
|
68
67
|
description: |
|
|
69
|
-
|
|
70
|
-
- Completeness (all required sections filled)
|
|
71
|
-
- Consistency (no contradictions)
|
|
72
|
-
- Clarity (understandable by all stakeholders)
|
|
73
|
-
- Traceability (links to source requirements)
|
|
68
|
+
Break down the plan into atomic, actionable tasks.
|
|
74
69
|
|
|
75
|
-
|
|
70
|
+
Each task should:
|
|
71
|
+
- Be completable in 1-2 hours
|
|
72
|
+
- Have clear acceptance criteria
|
|
73
|
+
- Be independent when possible
|
|
74
|
+
- Include file paths if known
|
|
76
75
|
inputs:
|
|
77
|
-
|
|
76
|
+
source: "plan_document"
|
|
78
77
|
outputs:
|
|
79
|
-
-
|
|
80
|
-
- validated_spec
|
|
78
|
+
- tasks_document
|
|
81
79
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
# Step 4: Implement
|
|
81
|
+
- id: implement
|
|
82
|
+
name: "4. Implement"
|
|
83
|
+
action: call_agent
|
|
84
|
+
agent: SpecAgent
|
|
85
85
|
description: |
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
Implement the tasks one by one.
|
|
87
|
+
|
|
88
|
+
For each task:
|
|
89
|
+
- Read the task description
|
|
90
|
+
- Implement following project conventions
|
|
91
|
+
- Update task status when complete
|
|
92
|
+
- Proceed to next task
|
|
88
93
|
inputs:
|
|
89
|
-
|
|
90
|
-
filename_pattern: "{context_id}-functional-spec.md"
|
|
94
|
+
source: "tasks_document"
|
|
91
95
|
outputs:
|
|
92
|
-
-
|
|
96
|
+
- implementation
|