prizmkit 1.1.5 → 1.1.7
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/bundled/VERSION.json +3 -3
- package/bundled/dev-pipeline/README.md +1 -1
- package/bundled/dev-pipeline/assets/feature-list-example.json +2 -2
- package/bundled/dev-pipeline/reset-bug.sh +304 -0
- package/bundled/dev-pipeline/run-bugfix.sh +55 -8
- package/bundled/dev-pipeline/run-feature.sh +12 -4
- package/bundled/dev-pipeline/run-refactor.sh +5 -2
- package/bundled/dev-pipeline/scripts/init-pipeline.py +19 -5
- package/bundled/dev-pipeline/scripts/update-bug-status.py +2 -2
- package/bundled/dev-pipeline/scripts/update-feature-status.py +6 -6
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +111 -31
- package/bundled/dev-pipeline/templates/feature-list-schema.json +5 -5
- package/bundled/dev-pipeline/templates/refactor-list-schema.json +107 -28
- package/bundled/dev-pipeline/tests/test_auto_skip.py +1 -1
- package/bundled/skills/_metadata.json +10 -2
- package/bundled/skills/app-planner/SKILL.md +14 -3
- package/bundled/skills/bug-fix-workflow/SKILL.md +2 -0
- package/bundled/skills/bug-planner/SKILL.md +59 -4
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +9 -4
- package/bundled/skills/feature-planner/SKILL.md +73 -1
- package/bundled/skills/feature-planner/references/error-recovery.md +1 -1
- package/bundled/skills/feature-planner/scripts/validate-and-generate.py +7 -6
- package/bundled/skills/feature-workflow/SKILL.md +4 -1
- package/bundled/skills/prizmkit-committer/SKILL.md +1 -0
- package/bundled/skills/prizmkit-deploy/SKILL.md +1 -0
- package/bundled/skills/prizmkit-deploy/assets/deploy-template.md +1 -1
- package/bundled/skills/prizmkit-implement/SKILL.md +1 -1
- package/bundled/skills/prizmkit-implement/references/deploy-guide-protocol.md +4 -4
- package/bundled/skills/prizmkit-plan/SKILL.md +3 -3
- package/bundled/skills/prizmkit-retrospective/SKILL.md +40 -3
- package/bundled/skills/prizmkit-verify/SKILL.md +281 -0
- package/bundled/skills/prizmkit-verify/scripts/verify-light.py +402 -0
- package/bundled/skills/recovery-workflow/SKILL.md +1 -0
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +7 -3
- package/bundled/skills/refactor-planner/SKILL.md +51 -1
- package/bundled/skills/refactor-workflow/SKILL.md +4 -0
- package/package.json +1 -1
- package/src/scaffold.js +24 -12
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "Dev-Pipeline Bug Fix List",
|
|
4
|
-
"description": "Schema for bug-fix-list.json
|
|
4
|
+
"description": "Schema for bug-fix-list.json \u2014 standardized input for the Bug Fix Pipeline",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
6
|
+
"required": [
|
|
7
|
+
"$schema",
|
|
8
|
+
"project_name",
|
|
9
|
+
"bugs"
|
|
10
|
+
],
|
|
7
11
|
"properties": {
|
|
8
12
|
"$schema": {
|
|
9
13
|
"type": "string",
|
|
@@ -29,9 +33,14 @@
|
|
|
29
33
|
"items": {
|
|
30
34
|
"type": "object",
|
|
31
35
|
"required": [
|
|
32
|
-
"id",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
36
|
+
"id",
|
|
37
|
+
"title",
|
|
38
|
+
"description",
|
|
39
|
+
"severity",
|
|
40
|
+
"error_source",
|
|
41
|
+
"verification_type",
|
|
42
|
+
"acceptance_criteria",
|
|
43
|
+
"status"
|
|
35
44
|
],
|
|
36
45
|
"properties": {
|
|
37
46
|
"id": {
|
|
@@ -42,7 +51,7 @@
|
|
|
42
51
|
"title": {
|
|
43
52
|
"type": "string",
|
|
44
53
|
"minLength": 1,
|
|
45
|
-
"description": "Bug title
|
|
54
|
+
"description": "Bug title \u2014 brief description of the symptom"
|
|
46
55
|
},
|
|
47
56
|
"description": {
|
|
48
57
|
"type": "string",
|
|
@@ -51,17 +60,29 @@
|
|
|
51
60
|
},
|
|
52
61
|
"severity": {
|
|
53
62
|
"type": "string",
|
|
54
|
-
"enum": [
|
|
63
|
+
"enum": [
|
|
64
|
+
"critical",
|
|
65
|
+
"high",
|
|
66
|
+
"medium",
|
|
67
|
+
"low"
|
|
68
|
+
],
|
|
55
69
|
"description": "critical=crash/data-loss; high=core-feature-broken; medium=workaround-exists; low=cosmetic"
|
|
56
70
|
},
|
|
57
71
|
"priority": {
|
|
58
72
|
"type": "string",
|
|
59
|
-
"enum": [
|
|
60
|
-
|
|
73
|
+
"enum": [
|
|
74
|
+
"critical",
|
|
75
|
+
"high",
|
|
76
|
+
"medium",
|
|
77
|
+
"low"
|
|
78
|
+
],
|
|
79
|
+
"description": "Fix priority. Pipeline processes critical before high before medium before low; within same level, array order determines sequence."
|
|
61
80
|
},
|
|
62
81
|
"error_source": {
|
|
63
82
|
"type": "object",
|
|
64
|
-
"required": [
|
|
83
|
+
"required": [
|
|
84
|
+
"type"
|
|
85
|
+
],
|
|
65
86
|
"description": "Structured error source information extracted from various input formats",
|
|
66
87
|
"properties": {
|
|
67
88
|
"type": {
|
|
@@ -92,7 +113,9 @@
|
|
|
92
113
|
},
|
|
93
114
|
"reproduction_steps": {
|
|
94
115
|
"type": "array",
|
|
95
|
-
"items": {
|
|
116
|
+
"items": {
|
|
117
|
+
"type": "string"
|
|
118
|
+
},
|
|
96
119
|
"description": "User-reported reproduction steps (when type=user_report)"
|
|
97
120
|
}
|
|
98
121
|
}
|
|
@@ -104,28 +127,44 @@
|
|
|
104
127
|
},
|
|
105
128
|
"affected_modules": {
|
|
106
129
|
"type": "array",
|
|
107
|
-
"items": {
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "string"
|
|
132
|
+
},
|
|
108
133
|
"description": "Known affected module names (optional, triage will auto-detect)"
|
|
109
134
|
},
|
|
110
135
|
"environment": {
|
|
111
136
|
"type": "object",
|
|
112
137
|
"description": "Environment where the bug occurs",
|
|
113
138
|
"properties": {
|
|
114
|
-
"os": {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
139
|
+
"os": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"runtime": {
|
|
143
|
+
"type": "string"
|
|
144
|
+
},
|
|
145
|
+
"browser": {
|
|
146
|
+
"type": "string"
|
|
147
|
+
},
|
|
148
|
+
"version": {
|
|
149
|
+
"type": "string"
|
|
150
|
+
}
|
|
118
151
|
}
|
|
119
152
|
},
|
|
120
153
|
"verification_type": {
|
|
121
154
|
"type": "string",
|
|
122
|
-
"enum": [
|
|
155
|
+
"enum": [
|
|
156
|
+
"automated",
|
|
157
|
+
"manual",
|
|
158
|
+
"hybrid"
|
|
159
|
+
],
|
|
123
160
|
"description": "automated=unit/integration-test; manual=human-UAT; hybrid=both"
|
|
124
161
|
},
|
|
125
162
|
"acceptance_criteria": {
|
|
126
163
|
"type": "array",
|
|
127
164
|
"minItems": 1,
|
|
128
|
-
"items": {
|
|
165
|
+
"items": {
|
|
166
|
+
"type": "string"
|
|
167
|
+
},
|
|
129
168
|
"description": "Conditions that must be met for the bug to be considered fixed"
|
|
130
169
|
},
|
|
131
170
|
"status": {
|
|
@@ -142,6 +181,23 @@
|
|
|
142
181
|
"skipped"
|
|
143
182
|
],
|
|
144
183
|
"description": "Bug fix status, maps to pipeline phases"
|
|
184
|
+
},
|
|
185
|
+
"critic": {
|
|
186
|
+
"type": "boolean",
|
|
187
|
+
"description": "Enable adversarial critic review for this bug fix. Default: true for high severity bugs, false for others.",
|
|
188
|
+
"default": false
|
|
189
|
+
},
|
|
190
|
+
"critic_count": {
|
|
191
|
+
"type": "integer",
|
|
192
|
+
"description": "Number of parallel critic agents. 1 = single critic, 3 = multi-critic voting. Default: 1 for high severity, omit for others.",
|
|
193
|
+
"enum": [
|
|
194
|
+
1,
|
|
195
|
+
3
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
"model": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"description": "AI model ID for this bug fix. Overrides $MODEL env var."
|
|
145
201
|
}
|
|
146
202
|
}
|
|
147
203
|
}
|
|
@@ -150,19 +206,43 @@
|
|
|
150
206
|
"type": "object",
|
|
151
207
|
"description": "Global context for all bug fixes in this batch",
|
|
152
208
|
"properties": {
|
|
153
|
-
"tech_stack": {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
"
|
|
163
|
-
|
|
164
|
-
|
|
209
|
+
"tech_stack": {
|
|
210
|
+
"type": "string"
|
|
211
|
+
},
|
|
212
|
+
"language": {
|
|
213
|
+
"type": "string"
|
|
214
|
+
},
|
|
215
|
+
"runtime": {
|
|
216
|
+
"type": "string"
|
|
217
|
+
},
|
|
218
|
+
"frontend_framework": {
|
|
219
|
+
"type": "string"
|
|
220
|
+
},
|
|
221
|
+
"frontend_styling": {
|
|
222
|
+
"type": "string"
|
|
223
|
+
},
|
|
224
|
+
"backend_framework": {
|
|
225
|
+
"type": "string"
|
|
226
|
+
},
|
|
227
|
+
"database": {
|
|
228
|
+
"type": "string"
|
|
229
|
+
},
|
|
230
|
+
"orm": {
|
|
231
|
+
"type": "string"
|
|
232
|
+
},
|
|
233
|
+
"testing_strategy": {
|
|
234
|
+
"type": "string"
|
|
235
|
+
},
|
|
236
|
+
"bundler": {
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
"project_type": {
|
|
240
|
+
"type": "string"
|
|
241
|
+
},
|
|
242
|
+
"ci_pipeline": {
|
|
243
|
+
"type": "string"
|
|
244
|
+
}
|
|
165
245
|
}
|
|
166
246
|
}
|
|
167
247
|
}
|
|
168
|
-
}
|
|
248
|
+
}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
"title": "Dev-Pipeline Feature List",
|
|
4
4
|
"description": "Schema for .dev-pipeline/feature-list.json",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": ["$schema", "
|
|
6
|
+
"required": ["$schema", "project_name", "features"],
|
|
7
7
|
"properties": {
|
|
8
8
|
"$schema": {
|
|
9
9
|
"type": "string",
|
|
10
10
|
"const": "dev-pipeline-feature-list-v1"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
12
|
+
"project_name": {
|
|
13
13
|
"type": "string",
|
|
14
14
|
"minLength": 1
|
|
15
15
|
},
|
|
16
|
-
"
|
|
16
|
+
"project_description": {
|
|
17
17
|
"type": "string"
|
|
18
18
|
},
|
|
19
19
|
"created_at": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
},
|
|
48
48
|
"priority": {
|
|
49
49
|
"type": "string",
|
|
50
|
-
"enum": ["high", "medium", "low"],
|
|
51
|
-
"description": "Feature priority. Pipeline processes high before medium before low; within same level, array order determines sequence."
|
|
50
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
51
|
+
"description": "Feature priority. Pipeline processes critical before high before medium before low; within same level, array order determines sequence."
|
|
52
52
|
},
|
|
53
53
|
"estimated_complexity": {
|
|
54
54
|
"type": "string",
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "Dev-Pipeline Refactor List",
|
|
4
|
-
"description": "Schema for refactor-list.json
|
|
4
|
+
"description": "Schema for refactor-list.json \u2014 standardized input for the Refactor Pipeline",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
6
|
+
"required": [
|
|
7
|
+
"$schema",
|
|
8
|
+
"project_name",
|
|
9
|
+
"refactors"
|
|
10
|
+
],
|
|
7
11
|
"properties": {
|
|
8
12
|
"$schema": {
|
|
9
13
|
"type": "string",
|
|
@@ -29,9 +33,17 @@
|
|
|
29
33
|
"items": {
|
|
30
34
|
"type": "object",
|
|
31
35
|
"required": [
|
|
32
|
-
"id",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
36
|
+
"id",
|
|
37
|
+
"title",
|
|
38
|
+
"description",
|
|
39
|
+
"scope",
|
|
40
|
+
"type",
|
|
41
|
+
"priority",
|
|
42
|
+
"complexity",
|
|
43
|
+
"behavior_preservation",
|
|
44
|
+
"acceptance_criteria",
|
|
45
|
+
"dependencies",
|
|
46
|
+
"status"
|
|
35
47
|
],
|
|
36
48
|
"properties": {
|
|
37
49
|
"id": {
|
|
@@ -42,7 +54,7 @@
|
|
|
42
54
|
"title": {
|
|
43
55
|
"type": "string",
|
|
44
56
|
"minLength": 1,
|
|
45
|
-
"description": "Refactor title
|
|
57
|
+
"description": "Refactor title \u2014 brief description of the change"
|
|
46
58
|
},
|
|
47
59
|
"description": {
|
|
48
60
|
"type": "string",
|
|
@@ -55,39 +67,65 @@
|
|
|
55
67
|
"properties": {
|
|
56
68
|
"files": {
|
|
57
69
|
"type": "array",
|
|
58
|
-
"items": {
|
|
70
|
+
"items": {
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
59
73
|
"description": "File paths affected by this refactor"
|
|
60
74
|
},
|
|
61
75
|
"modules": {
|
|
62
76
|
"type": "array",
|
|
63
|
-
"items": {
|
|
77
|
+
"items": {
|
|
78
|
+
"type": "string"
|
|
79
|
+
},
|
|
64
80
|
"description": "Module names affected by this refactor"
|
|
65
81
|
}
|
|
66
82
|
}
|
|
67
83
|
},
|
|
68
84
|
"type": {
|
|
69
85
|
"type": "string",
|
|
70
|
-
"enum": [
|
|
86
|
+
"enum": [
|
|
87
|
+
"extract",
|
|
88
|
+
"rename",
|
|
89
|
+
"restructure",
|
|
90
|
+
"simplify",
|
|
91
|
+
"decouple",
|
|
92
|
+
"migrate"
|
|
93
|
+
],
|
|
71
94
|
"description": "extract=extract-function/module; rename=rename-symbols; restructure=move/reorganize; simplify=reduce-complexity; decouple=remove-dependencies; migrate=tech-migration"
|
|
72
95
|
},
|
|
73
96
|
"priority": {
|
|
74
97
|
"type": "string",
|
|
75
|
-
"enum": [
|
|
98
|
+
"enum": [
|
|
99
|
+
"critical",
|
|
100
|
+
"high",
|
|
101
|
+
"medium",
|
|
102
|
+
"low"
|
|
103
|
+
],
|
|
76
104
|
"description": "Refactor priority. Pipeline processes critical before high before medium before low; within same level, array order determines sequence."
|
|
77
105
|
},
|
|
78
106
|
"complexity": {
|
|
79
107
|
"type": "string",
|
|
80
|
-
"enum": [
|
|
108
|
+
"enum": [
|
|
109
|
+
"low",
|
|
110
|
+
"medium",
|
|
111
|
+
"high"
|
|
112
|
+
],
|
|
81
113
|
"description": "Estimated complexity of the refactor"
|
|
82
114
|
},
|
|
83
115
|
"behavior_preservation": {
|
|
84
116
|
"type": "object",
|
|
85
|
-
"required": [
|
|
117
|
+
"required": [
|
|
118
|
+
"strategy"
|
|
119
|
+
],
|
|
86
120
|
"description": "Strategy for ensuring no behavior changes",
|
|
87
121
|
"properties": {
|
|
88
122
|
"strategy": {
|
|
89
123
|
"type": "string",
|
|
90
|
-
"enum": [
|
|
124
|
+
"enum": [
|
|
125
|
+
"test-gate",
|
|
126
|
+
"snapshot",
|
|
127
|
+
"manual"
|
|
128
|
+
],
|
|
91
129
|
"description": "test-gate=existing-tests-must-pass; snapshot=before/after-snapshot-comparison; manual=human-verification"
|
|
92
130
|
},
|
|
93
131
|
"existing_tests": {
|
|
@@ -96,7 +134,9 @@
|
|
|
96
134
|
},
|
|
97
135
|
"new_tests_needed": {
|
|
98
136
|
"type": "array",
|
|
99
|
-
"items": {
|
|
137
|
+
"items": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
},
|
|
100
140
|
"description": "New tests that should be written before refactoring"
|
|
101
141
|
}
|
|
102
142
|
}
|
|
@@ -104,7 +144,9 @@
|
|
|
104
144
|
"acceptance_criteria": {
|
|
105
145
|
"type": "array",
|
|
106
146
|
"minItems": 1,
|
|
107
|
-
"items": {
|
|
147
|
+
"items": {
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
108
150
|
"description": "Conditions that must be met for the refactor to be considered complete"
|
|
109
151
|
},
|
|
110
152
|
"dependencies": {
|
|
@@ -133,6 +175,19 @@
|
|
|
133
175
|
"estimated_lines": {
|
|
134
176
|
"type": "integer",
|
|
135
177
|
"description": "Estimated number of lines affected by this refactor"
|
|
178
|
+
},
|
|
179
|
+
"critic": {
|
|
180
|
+
"type": "boolean",
|
|
181
|
+
"description": "Enable adversarial critic review for this refactor. Default: true for critical/high priority refactors, false for others.",
|
|
182
|
+
"default": false
|
|
183
|
+
},
|
|
184
|
+
"critic_count": {
|
|
185
|
+
"type": "integer",
|
|
186
|
+
"description": "Number of parallel critic agents. 1 = single critic, 3 = multi-critic voting. Default: 3 for critical, 1 for high, omit for others.",
|
|
187
|
+
"enum": [
|
|
188
|
+
1,
|
|
189
|
+
3
|
|
190
|
+
]
|
|
136
191
|
}
|
|
137
192
|
}
|
|
138
193
|
}
|
|
@@ -141,19 +196,43 @@
|
|
|
141
196
|
"type": "object",
|
|
142
197
|
"description": "Global context for all refactors in this batch",
|
|
143
198
|
"properties": {
|
|
144
|
-
"tech_stack": {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
"
|
|
154
|
-
|
|
155
|
-
|
|
199
|
+
"tech_stack": {
|
|
200
|
+
"type": "string"
|
|
201
|
+
},
|
|
202
|
+
"language": {
|
|
203
|
+
"type": "string"
|
|
204
|
+
},
|
|
205
|
+
"runtime": {
|
|
206
|
+
"type": "string"
|
|
207
|
+
},
|
|
208
|
+
"frontend_framework": {
|
|
209
|
+
"type": "string"
|
|
210
|
+
},
|
|
211
|
+
"frontend_styling": {
|
|
212
|
+
"type": "string"
|
|
213
|
+
},
|
|
214
|
+
"backend_framework": {
|
|
215
|
+
"type": "string"
|
|
216
|
+
},
|
|
217
|
+
"database": {
|
|
218
|
+
"type": "string"
|
|
219
|
+
},
|
|
220
|
+
"orm": {
|
|
221
|
+
"type": "string"
|
|
222
|
+
},
|
|
223
|
+
"testing_strategy": {
|
|
224
|
+
"type": "string"
|
|
225
|
+
},
|
|
226
|
+
"bundler": {
|
|
227
|
+
"type": "string"
|
|
228
|
+
},
|
|
229
|
+
"project_type": {
|
|
230
|
+
"type": "string"
|
|
231
|
+
},
|
|
232
|
+
"ci_pipeline": {
|
|
233
|
+
"type": "string"
|
|
234
|
+
}
|
|
156
235
|
}
|
|
157
236
|
}
|
|
158
237
|
}
|
|
159
|
-
}
|
|
238
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.
|
|
2
|
+
"version": "1.1.7",
|
|
3
3
|
"skills": {
|
|
4
4
|
"prizm-kit": {
|
|
5
5
|
"description": "Full-lifecycle dev toolkit. Covers spec-driven development, Prizm context docs, code quality, debugging, deployment, and knowledge management.",
|
|
@@ -71,6 +71,13 @@
|
|
|
71
71
|
"hasAssets": true,
|
|
72
72
|
"hasScripts": false
|
|
73
73
|
},
|
|
74
|
+
"prizmkit-verify": {
|
|
75
|
+
"description": "Automated framework verification for PrizmKit's 4-layer architecture. Checks structural integrity, contract consistency, and cross-scenario alignment.",
|
|
76
|
+
"tier": "1",
|
|
77
|
+
"category": "prizmkit-skill",
|
|
78
|
+
"hasAssets": false,
|
|
79
|
+
"hasScripts": true
|
|
80
|
+
},
|
|
74
81
|
"feature-workflow": {
|
|
75
82
|
"description": "One-stop entry point for feature development. Orchestrates feature-planner → feature-pipeline-launcher → background execution. Handles multi-feature batch development from a single request.",
|
|
76
83
|
"tier": "companion",
|
|
@@ -184,7 +191,8 @@
|
|
|
184
191
|
"refactor-planner",
|
|
185
192
|
"refactor-pipeline-launcher",
|
|
186
193
|
"bug-fix-workflow",
|
|
187
|
-
"recovery-workflow"
|
|
194
|
+
"recovery-workflow",
|
|
195
|
+
"prizmkit-verify"
|
|
188
196
|
]
|
|
189
197
|
},
|
|
190
198
|
"minimal": {
|
|
@@ -40,8 +40,11 @@ If you believe the task is better suited for a different workflow, you MUST:
|
|
|
40
40
|
**Your ONLY writable outputs are:**
|
|
41
41
|
1. `project-brief.md` (project root — accumulated project context brief)
|
|
42
42
|
2. `.prizmkit/project-conventions.json` (project convention answers)
|
|
43
|
-
3.
|
|
44
|
-
|
|
43
|
+
3. `.prizm-docs/root.prizm` (if architecture decisions are captured — see Architecture Decision Capture section)
|
|
44
|
+
- Contains architecture decisions, tech stack rationale, and key constraints
|
|
45
|
+
- Used as input by feature-planner and other workflows
|
|
46
|
+
4. Architecture decisions appended to `CLAUDE.md` / `CODEBUDDY.md` (with user consent)
|
|
47
|
+
5. Draft backups in `.prizmkit/planning/`
|
|
45
48
|
|
|
46
49
|
**After planning is complete**, you MUST:
|
|
47
50
|
1. Present the summary of captured vision, constraints, and decisions
|
|
@@ -158,6 +161,14 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
|
|
|
158
161
|
|
|
159
162
|
After Phase 2, if framework-shaping architecture decisions emerged during planning (tech stack, communication patterns, data model strategies — not individual feature details), read `${SKILL_DIR}/references/architecture-decisions.md` and follow the capture flow. Most sessions will NOT produce architecture decisions — only capture when genuinely impactful.
|
|
160
163
|
|
|
164
|
+
**Handoff to feature-planner**: Captured architecture decisions MUST be written to `.prizm-docs/root.prizm` so that feature-planner can read them as context. This ensures all downstream planners (feature, bug, refactor) share consistent architectural understanding.
|
|
165
|
+
|
|
166
|
+
**How it works**:
|
|
167
|
+
1. If decisions are captured → create `.prizm-docs/root.prizm` with decision summaries
|
|
168
|
+
2. Also append decisions to `CLAUDE.md` / `CODEBUDDY.md` for human reference
|
|
169
|
+
3. When feature-planner is invoked, it will read `.prizm-docs/root.prizm` as prerequisite context
|
|
170
|
+
4. Feature decomposition will respect captured architecture decisions (no conflicting tech choices)
|
|
171
|
+
|
|
161
172
|
## Project Brief Accumulation
|
|
162
173
|
|
|
163
174
|
During interactive planning, maintain a `project-brief.md` at the project root as a simple checklist of product ideas.
|
|
@@ -209,6 +220,6 @@ When the session appears to be ending:
|
|
|
209
220
|
After all checkpoints pass, present a summary and recommend next steps:
|
|
210
221
|
|
|
211
222
|
1. **Summary**: List captured vision, tech stack, constraints, architecture decisions, and project brief status
|
|
212
|
-
2. **Primary recommendation**: Invoke `feature-planner` to decompose the application into features and generate `feature-list.json`
|
|
223
|
+
2. **Primary recommendation**: Invoke `feature-planner` to decompose the application into features and generate `feature-list.json` (schema: `dev-pipeline-feature-list-v1`, uses `project_name` field for the app name)
|
|
213
224
|
3. **Alternative**: If the user wants to continue refining the vision or constraints, stay in app-planner
|
|
214
225
|
4. **Artifacts produced**: List files written (`project-brief.md`, `.prizmkit/project-conventions.json`, architecture decisions if any)
|
|
@@ -83,6 +83,8 @@ For trivial bugs with clear root cause and minimal scope:
|
|
|
83
83
|
|
|
84
84
|
**Goal**: Fully understand the bug before touching any code. Vague bug reports lead to incorrect fixes that mask the real issue or introduce new bugs.
|
|
85
85
|
|
|
86
|
+
**Fast Path Decision Point**: After initial information gathering (Step 1.1), evaluate the Fast Path Eligibility Criteria above. If ALL criteria are met, ask the user: "This looks like a straightforward fix. Use fast path? (Y/n)". If yes, skip directly to the Fast Path Workflow (branch setup already done in Phase 0). If no or uncertain, continue with full diagnosis.
|
|
87
|
+
|
|
86
88
|
**CRITICAL RULE**: Ask as many questions as needed until the bug is fully understood. Do NOT rush into code. A misdiagnosed bug leads to a wrong fix, which is worse than no fix.
|
|
87
89
|
|
|
88
90
|
#### Step 1.1: Initial Bug Information Gathering
|
|
@@ -116,6 +116,7 @@ ALERT: Error rate spike: 500 errors/min on /api/login endpoint
|
|
|
116
116
|
- Environment (ask or auto-detect from logs)
|
|
117
117
|
- Verification type (suggest `automated` by default, ask user)
|
|
118
118
|
- Acceptance criteria (auto-suggest based on description, user can edit)
|
|
119
|
+
- Model override (optional; if specified, overrides $MODEL env var for this bug fix)
|
|
119
120
|
|
|
120
121
|
**Per-bug clarification** — if the bug's root cause, reproduction steps, expected behavior, or scope is unclear from the provided information, ask focused questions one at a time (cite the unclear point, give a recommended answer with rationale) until the bug is fully understood. Do not finalize a bug entry with ambiguous details. No limit on the number of questions per bug.
|
|
121
122
|
|
|
@@ -152,13 +153,21 @@ Only finalize the bug entry after user confirms all three points.
|
|
|
152
153
|
|
|
153
154
|
### Phase 3: Prioritization & Review
|
|
154
155
|
|
|
155
|
-
1. **Auto-assign priorities**: Based on severity (critical
|
|
156
|
+
1. **Auto-assign priorities**: Based on severity (critical → high, high → high, medium → medium, low → low), adjustable by user
|
|
157
|
+
|
|
158
|
+
**Severity → Priority Mapping**:
|
|
159
|
+
- `critical` severity → `high` priority (treated with highest urgency)
|
|
160
|
+
- `high` severity → `high` priority
|
|
161
|
+
- `medium` severity → `medium` priority
|
|
162
|
+
- `low` severity → `low` priority
|
|
163
|
+
|
|
164
|
+
Note: Severity has 4 levels (critical, high, medium, low) but Priority has 3 levels (high, medium, low). Both critical and high severity bugs map to high priority.
|
|
156
165
|
2. **Display summary table**:
|
|
157
166
|
```
|
|
158
167
|
ID | Title | Severity | Priority | Verification
|
|
159
|
-
B-001 | Login null reference crash | critical |
|
|
160
|
-
B-002 | CSV export Chinese encoding | medium |
|
|
161
|
-
B-003 | Slow dashboard loading | low |
|
|
168
|
+
B-001 | Login null reference crash | critical | high | automated
|
|
169
|
+
B-002 | CSV export Chinese encoding | medium | medium | hybrid
|
|
170
|
+
B-003 | Slow dashboard loading | low | low | manual
|
|
162
171
|
```
|
|
163
172
|
3. **Ask for adjustments**: "Want to reorder priorities, change severity, or remove any bugs?"
|
|
164
173
|
4. **Detect potential duplicates**: If two bugs have similar error messages or affected modules, warn user
|
|
@@ -309,6 +318,52 @@ Affected Features: F-003 (1 bug), F-012 (1 bug), none (1 bug)
|
|
|
309
318
|
|
|
310
319
|
---
|
|
311
320
|
|
|
321
|
+
## Adversarial Critic Review (Testing Defaults)
|
|
322
|
+
|
|
323
|
+
All bug fixes support optional critic review for additional quality assurance. The critic mechanism is disabled by default but can be enabled per-bug based on severity and complexity.
|
|
324
|
+
|
|
325
|
+
### Default Critic Behavior
|
|
326
|
+
|
|
327
|
+
| Severity | `critic` | `critic_count` | Rationale |
|
|
328
|
+
|----------|----------|----------------|-----------|
|
|
329
|
+
| critical | `true` | `1` | Single critic review for critical bugs |
|
|
330
|
+
| high | `true` | `1` | Single critic review for high-severity bugs |
|
|
331
|
+
| medium | `false` | (omitted) | Skip critic for medium-severity bugs |
|
|
332
|
+
| low | `false` | (omitted) | Skip critic for low-severity bugs |
|
|
333
|
+
|
|
334
|
+
- `critic: true` — Enable adversarial review after fix implementation
|
|
335
|
+
- `critic_count: 1` — Single critic agent reviews the fix
|
|
336
|
+
- Critic verifies: fix addresses root cause, no regressions introduced, acceptance criteria met
|
|
337
|
+
|
|
338
|
+
**User Override**: During Phase 2 or Phase 3, users can opt to enable/disable critic on a per-bug basis.
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Browser Verification
|
|
343
|
+
|
|
344
|
+
**Browser verification is a feature-pipeline capability only.** Bug fixes use the `verification_type` field instead:
|
|
345
|
+
|
|
346
|
+
- `verification_type: automated` — Use unit/integration tests to verify the fix
|
|
347
|
+
- `verification_type: manual` — Describe manual testing steps in acceptance criteria (including any browser verification steps)
|
|
348
|
+
- `verification_type: hybrid` — Combine automated tests with manual browser verification steps
|
|
349
|
+
|
|
350
|
+
For UI-related bugs that require visual verification (e.g., "Button doesn't show error message"), describe the verification steps in your acceptance criteria:
|
|
351
|
+
|
|
352
|
+
Example:
|
|
353
|
+
```
|
|
354
|
+
Bug Title: Login error message not displaying
|
|
355
|
+
Verification Type: manual
|
|
356
|
+
Acceptance Criteria:
|
|
357
|
+
1. Navigate to /login with invalid credentials
|
|
358
|
+
2. Verify error message "Invalid email or password" appears below the email field
|
|
359
|
+
3. Verify error message is red (#FF0000)
|
|
360
|
+
4. Verify form fields are still enabled and can be re-submitted
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
The bugfix pipeline AI will use these criteria during manual verification.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
312
367
|
## Integration with Bug Fix Pipeline
|
|
313
368
|
|
|
314
369
|
After `bug-fix-list.json` is generated, the user can:
|