smart-spec-kit-mcp 2.2.9 → 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/package.json +1 -1
- package/starter-kit/workflows/bugfix.yaml +41 -50
|
@@ -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/package.json
CHANGED
|
@@ -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
|