prizmkit 1.1.7 → 1.1.9
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/adapters/codebuddy/skill-adapter.js +21 -7
- package/bundled/agents/prizm-dev-team-reviewer.md +53 -173
- package/bundled/dev-pipeline/.env.example +45 -0
- package/bundled/dev-pipeline/README.md +64 -64
- package/bundled/dev-pipeline/SCHEMA_ANALYSIS.md +535 -0
- package/bundled/dev-pipeline/assets/feature-list-example.json +0 -1
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +64 -18
- package/bundled/dev-pipeline/launch-feature-daemon.sh +15 -12
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +64 -18
- package/bundled/dev-pipeline/lib/branch.sh +6 -1
- package/bundled/dev-pipeline/lib/common.sh +71 -0
- package/bundled/dev-pipeline/lib/heartbeat.sh +2 -2
- package/bundled/dev-pipeline/reset-bug.sh +10 -9
- package/bundled/dev-pipeline/reset-feature.sh +9 -8
- package/bundled/dev-pipeline/reset-refactor.sh +10 -9
- package/bundled/dev-pipeline/retry-bugfix.sh +67 -29
- package/bundled/dev-pipeline/retry-feature.sh +54 -18
- package/bundled/dev-pipeline/retry-refactor.sh +112 -29
- package/bundled/dev-pipeline/run-bugfix.sh +281 -59
- package/bundled/dev-pipeline/run-feature.sh +53 -18
- package/bundled/dev-pipeline/run-refactor.sh +392 -66
- package/bundled/dev-pipeline/scripts/check-session-status.py +24 -1
- package/bundled/dev-pipeline/scripts/cleanup-logs.py +2 -2
- package/bundled/dev-pipeline/scripts/detect-stuck.py +195 -85
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +57 -33
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +25 -9
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +104 -17
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +34 -9
- package/bundled/dev-pipeline/scripts/init-pipeline.py +10 -10
- package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +19 -8
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -5
- package/bundled/dev-pipeline/scripts/patch-completion-notes.py +191 -0
- package/bundled/dev-pipeline/scripts/update-bug-status.py +167 -22
- package/bundled/dev-pipeline/scripts/update-feature-status.py +104 -62
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +351 -21
- package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +1 -1
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +7 -11
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +41 -7
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +27 -3
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +43 -19
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +54 -26
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +6 -15
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +36 -25
- package/bundled/dev-pipeline/templates/feature-list-schema.json +109 -31
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +270 -0
- package/bundled/dev-pipeline/templates/refactor-list-schema.json +11 -3
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +3 -1
- package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +1 -0
- package/bundled/dev-pipeline/templates/sections/feature-context.md +2 -0
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +29 -2
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +22 -0
- package/bundled/dev-pipeline/templates/sections/phase-deploy-verification.md +2 -2
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +8 -6
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +7 -5
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +3 -3
- package/bundled/skills/_metadata.json +5 -22
- package/bundled/skills/app-planner/SKILL.md +98 -72
- package/bundled/skills/app-planner/assets/app-design-guide.md +1 -1
- package/bundled/skills/app-planner/references/architecture-decisions.md +1 -1
- package/bundled/skills/app-planner/references/project-brief-guide.md +69 -66
- package/bundled/skills/bug-fix-workflow/SKILL.md +52 -9
- package/bundled/skills/bug-planner/SKILL.md +139 -197
- package/bundled/skills/bug-planner/assets/bug-confirmation-template.md +43 -0
- package/bundled/skills/bug-planner/references/critic-and-verification.md +44 -0
- package/bundled/skills/bug-planner/references/error-recovery.md +73 -0
- package/bundled/skills/bug-planner/references/input-formats.md +53 -0
- package/bundled/skills/bug-planner/references/schema-validation.md +25 -0
- package/bundled/skills/bug-planner/references/severity-rules.md +16 -0
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +4 -8
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +34 -39
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +49 -36
- package/bundled/skills/feature-pipeline-launcher/scripts/preflight-check.py +3 -3
- package/bundled/skills/feature-planner/SKILL.md +53 -142
- package/bundled/skills/feature-planner/assets/evaluation-guide.md +1 -1
- package/bundled/skills/feature-planner/assets/planning-guide.md +21 -5
- package/bundled/skills/feature-planner/references/browser-interaction.md +2 -4
- package/bundled/skills/feature-planner/references/completeness-review.md +57 -0
- package/bundled/skills/feature-planner/references/error-recovery.md +16 -35
- package/bundled/skills/feature-planner/references/incremental-feature-planning.md +1 -1
- package/bundled/skills/feature-planner/references/new-project-planning.md +2 -2
- package/bundled/skills/feature-planner/scripts/validate-and-generate.py +19 -20
- package/bundled/skills/feature-workflow/SKILL.md +24 -25
- package/bundled/skills/prizm-kit/SKILL.md +39 -49
- package/bundled/skills/prizmkit-code-review/SKILL.md +51 -64
- package/bundled/skills/prizmkit-code-review/rules/dimensions.md +85 -0
- package/bundled/skills/prizmkit-code-review/rules/fix-strategy.md +11 -11
- package/bundled/skills/prizmkit-committer/SKILL.md +3 -31
- package/bundled/skills/prizmkit-deploy/SKILL.md +34 -31
- package/bundled/skills/prizmkit-deploy/assets/deploy-template.md +1 -1
- package/bundled/skills/prizmkit-implement/SKILL.md +35 -68
- package/bundled/skills/prizmkit-init/SKILL.md +112 -65
- package/bundled/skills/prizmkit-init/assets/project-brief-template.md +82 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +120 -79
- package/bundled/skills/prizmkit-plan/assets/plan-template.md +28 -18
- package/bundled/skills/prizmkit-plan/assets/spec-template.md +28 -11
- package/bundled/skills/prizmkit-plan/references/clarify-guide.md +3 -3
- package/bundled/skills/prizmkit-plan/references/verification-checklist.md +60 -0
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +10 -81
- package/bundled/skills/prizmkit-prizm-docs/assets/{PRIZM-SPEC.md → prizm-docs-format.md} +41 -526
- package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +46 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +16 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +14 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +19 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +17 -0
- package/bundled/skills/prizmkit-retrospective/SKILL.md +27 -65
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -4
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +7 -25
- package/bundled/skills/recovery-workflow/SKILL.md +22 -22
- package/bundled/skills/recovery-workflow/evals/evals.json +5 -5
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +43 -10
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +48 -40
- package/bundled/skills/refactor-planner/SKILL.md +43 -61
- package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +17 -17
- package/bundled/skills/refactor-workflow/SKILL.md +23 -24
- package/bundled/team/prizm-dev-team.json +1 -1
- package/bundled/{skills/prizm-kit/assets → templates}/project-memory-template.md +1 -1
- package/package.json +1 -1
- package/src/clean.js +3 -4
- package/src/gitignore-template.js +7 -9
- package/src/scaffold.js +14 -5
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +0 -5
- package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +0 -19
- package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +0 -19
- package/bundled/skills/app-planner/references/project-conventions.md +0 -93
- package/bundled/skills/prizmkit-analyze/SKILL.md +0 -207
- package/bundled/skills/prizmkit-code-review/rules/dimensions-bugfix.md +0 -25
- package/bundled/skills/prizmkit-code-review/rules/dimensions-feature.md +0 -43
- package/bundled/skills/prizmkit-code-review/rules/dimensions-refactor.md +0 -25
- package/bundled/skills/prizmkit-implement/references/deploy-guide-protocol.md +0 -69
- package/bundled/skills/prizmkit-verify/SKILL.md +0 -281
- package/bundled/skills/prizmkit-verify/scripts/verify-light.py +0 -402
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "bug-fix-workflow"
|
|
3
|
-
|
|
4
|
-
description: "Interactive single-bug fix in current session. Guides through deep diagnosis Q&A → triage → reproduce → fix → review → commit without the background pipeline. Use this skill when the user wants to fix one specific bug right now, interactively. Trigger on: 'fix this bug', 'debug this', 'fix B-001', 'help me fix', 'let me fix this bug myself', 'fix this bug', 'interactive fix', 'manually fix bug'. (project)"
|
|
3
|
+
description: "Interactive single-bug fix in current session. Guides through deep diagnosis Q&A → triage → reproduce → fix → review → commit without the background pipeline. Use this skill when the user wants to fix one specific bug right now, interactively. Trigger on: 'fix this bug', 'debug this', 'fix B-001', 'help me fix', 'let me fix this bug myself', 'fix this bug', 'interactive fix', 'manually fix bug'."
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Bug Fix Workflow
|
|
@@ -27,7 +26,7 @@ Fix a single bug interactively within the current AI CLI session. This is the in
|
|
|
27
26
|
|
|
28
27
|
| Input Source | Detection | Example |
|
|
29
28
|
|---|---|---|
|
|
30
|
-
| Bug-fix-list.json entry | User says "fix B-001" → read entry from
|
|
29
|
+
| Bug-fix-list.json entry | User says "fix B-001" → read entry from `.prizmkit/plans/bug-fix-list.json` | `fix B-001` |
|
|
31
30
|
| Stack trace / error message | User pastes error directly | `TypeError: Cannot read property...` |
|
|
32
31
|
| Natural language description | User describes the problem | "login page crashes on submit" |
|
|
33
32
|
| Failed test | User references a failing test file | `src/auth/__tests__/login.test.ts` |
|
|
@@ -83,13 +82,13 @@ For trivial bugs with clear root cause and minimal scope:
|
|
|
83
82
|
|
|
84
83
|
**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
84
|
|
|
86
|
-
**Fast Path Decision Point**: After initial information gathering (Step 1.1), evaluate the Fast Path Eligibility Criteria
|
|
85
|
+
**Fast Path Decision Point**: After initial information gathering (Step 1.1), evaluate the Fast Path Eligibility Criteria in Step 1.4. If ALL simple bug 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
87
|
**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.
|
|
89
88
|
|
|
90
89
|
#### Step 1.1: Initial Bug Information Gathering
|
|
91
90
|
|
|
92
|
-
- If bug ID given (e.g. B-001): read entry from
|
|
91
|
+
- If bug ID given (e.g. B-001): read entry from `.prizmkit/plans/bug-fix-list.json` — but DO NOT assume the description is complete
|
|
93
92
|
- If raw error/stack trace: extract error message, affected files, line numbers
|
|
94
93
|
- If natural language description: start the deep-dive Q&A below
|
|
95
94
|
|
|
@@ -146,6 +145,35 @@ Ask the user: "Is this summary accurate? Any details to add?"
|
|
|
146
145
|
|
|
147
146
|
---
|
|
148
147
|
|
|
148
|
+
#### Step 1.4: Complexity Assessment
|
|
149
|
+
|
|
150
|
+
After confirming bug understanding, assess whether this bug needs structured planning:
|
|
151
|
+
|
|
152
|
+
**Simple bug → Fast Path** (ALL must be true):
|
|
153
|
+
- Root cause is immediately obvious (typo, missing null check, wrong variable name, off-by-one)
|
|
154
|
+
- Fix is ≤10 lines of code in a single file
|
|
155
|
+
- No cross-module impact
|
|
156
|
+
- Existing tests cover the affected path (or bug is in untested utility)
|
|
157
|
+
- No data model or API changes
|
|
158
|
+
|
|
159
|
+
→ Proceed with Fast Path Workflow (Phase 0 branch already set up)
|
|
160
|
+
|
|
161
|
+
**Complex bug → Planning Path** (ANY is true):
|
|
162
|
+
- Cross-module impact (>2 files affected)
|
|
163
|
+
- Data model or API changes required
|
|
164
|
+
- Root cause is uncertain or multi-layered
|
|
165
|
+
- Fix requires structural changes
|
|
166
|
+
- Multiple interrelated symptoms
|
|
167
|
+
|
|
168
|
+
→ Invoke `/prizmkit-plan` with `artifact_dir=.prizmkit/bugfix/<BUG_ID>/`:
|
|
169
|
+
1. prizmkit-plan generates `spec.md` + `plan.md` under `.prizmkit/bugfix/<BUG_ID>/`
|
|
170
|
+
2. Invoke `/prizmkit-implement` to execute the plan
|
|
171
|
+
3. After implementation, resume this workflow at Phase 5 (Review)
|
|
172
|
+
|
|
173
|
+
Ask the user: "This bug appears [simple/complex]. Use [fast path/structured planning]? (Y/n)"
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
149
177
|
### Phase 2: Triage
|
|
150
178
|
|
|
151
179
|
**Goal**: Locate affected code, identify root cause, classify severity.
|
|
@@ -169,6 +197,8 @@ Ask the user: "Is this summary accurate? Any details to add?"
|
|
|
169
197
|
```
|
|
170
198
|
Ask: "Does this diagnosis look right? Should I proceed with the fix?"
|
|
171
199
|
|
|
200
|
+
**CHECKPOINT CP-BFW-2**: Root cause identified and diagnosis confirmed by user.
|
|
201
|
+
|
|
172
202
|
### Phase 3: Reproduce
|
|
173
203
|
|
|
174
204
|
**Goal**: Create a failing test that proves the bug exists.
|
|
@@ -186,6 +216,8 @@ If the bug is hard to reproduce automatically (e.g. environment-specific):
|
|
|
186
216
|
- Write a manual reproduction checklist instead
|
|
187
217
|
- Proceed to Phase 4 with the manual checklist
|
|
188
218
|
|
|
219
|
+
**CHECKPOINT CP-BFW-3**: Bug reproduction test written and confirmed failing.
|
|
220
|
+
|
|
189
221
|
### Phase 4: Fix
|
|
190
222
|
|
|
191
223
|
**Goal**: Implement the minimal fix. Red test → green.
|
|
@@ -202,6 +234,8 @@ If the bug is hard to reproduce automatically (e.g. environment-specific):
|
|
|
202
234
|
- Test results (reproduction + regression)
|
|
203
235
|
- Ask: "Fix looks good? Any concerns?"
|
|
204
236
|
|
|
237
|
+
**CHECKPOINT CP-BFW-4**: Fix implemented and all tests passing (reproduction + regression).
|
|
238
|
+
|
|
205
239
|
If the fix causes test regressions:
|
|
206
240
|
- Show which tests broke and why
|
|
207
241
|
- Revise the fix (max 3 attempts)
|
|
@@ -228,6 +262,8 @@ If the fix causes test regressions:
|
|
|
228
262
|
Ready to commit.
|
|
229
263
|
```
|
|
230
264
|
|
|
265
|
+
**CHECKPOINT CP-BFW-5**: Code review completed and quality verified.
|
|
266
|
+
|
|
231
267
|
### Phase 6: User Verification
|
|
232
268
|
|
|
233
269
|
**Goal**: Let the user verify the fix works as expected before committing.
|
|
@@ -244,6 +280,8 @@ If user reports the fix is NOT working:
|
|
|
244
280
|
- Return to Phase 4 (max 2 more attempts)
|
|
245
281
|
- If still failing: escalate with analysis
|
|
246
282
|
|
|
283
|
+
**CHECKPOINT CP-BFW-6**: Fix manually verified by user and working as expected.
|
|
284
|
+
|
|
247
285
|
---
|
|
248
286
|
|
|
249
287
|
### Phase 7: Commit & Merge
|
|
@@ -254,7 +292,10 @@ If user reports the fix is NOT working:
|
|
|
254
292
|
- Commit message: `fix(<scope>): <description>`
|
|
255
293
|
- Include both fix code and reproduction test
|
|
256
294
|
- Do NOT push (user decides when to push)
|
|
257
|
-
-
|
|
295
|
+
- **Bug Fix Documentation Policy**:
|
|
296
|
+
- DEFAULT: Run `/prizmkit-retrospective` with structural sync only (update file counts, interfaces, dependencies). Skip knowledge injection.
|
|
297
|
+
- UPDATE DOCS when bug fix causes: interface signature changes, dependency additions/removals, observable behavior changes to existing features, or newly discovered TRAPs (gotchas/pitfalls)
|
|
298
|
+
- When any of the above apply, run full `/prizmkit-retrospective` (Job 1 + Job 2)
|
|
258
299
|
- `/prizmkit-committer` is a pure commit tool — it does NOT modify `.prizm-docs/` or any project files
|
|
259
300
|
2. **Ask merge preference**:
|
|
260
301
|
```
|
|
@@ -271,13 +312,15 @@ If user reports the fix is NOT working:
|
|
|
271
312
|
git branch -d fix/<BUG_ID>-<short-description>
|
|
272
313
|
```
|
|
273
314
|
4. **If (b)**: Inform user: "Branch `fix/<BUG_ID>-<short-desc>` retained. Create a PR when ready."
|
|
274
|
-
5. **If bug came from bug-fix-list.json**: inform user to update bug status
|
|
315
|
+
5. **If bug came from .prizmkit/plans/bug-fix-list.json**: inform user to update bug status
|
|
275
316
|
```
|
|
276
317
|
Bug B-001 fixed and committed.
|
|
277
|
-
To update the bug list: manually set B-001 status to "fixed" in bug-fix-list.json
|
|
318
|
+
To update the bug list: manually set B-001 status to "fixed" in .prizmkit/plans/bug-fix-list.json
|
|
278
319
|
Or retry the pipeline to pick up remaining bugs.
|
|
279
320
|
```
|
|
280
321
|
|
|
322
|
+
**CHECKPOINT CP-BFW-7**: Fix committed and merge decision made.
|
|
323
|
+
|
|
281
324
|
## Resume — Interruption Recovery
|
|
282
325
|
|
|
283
326
|
The workflow supports resuming from the last completed phase by detecting existing artifacts.
|
|
@@ -323,7 +366,7 @@ Only 2 artifact files per bug, consistent with the pipeline convention.
|
|
|
323
366
|
|
|
324
367
|
| Scenario | Action |
|
|
325
368
|
|----------|--------|
|
|
326
|
-
| Bug ID not found in bug-fix-list.json | Ask user to provide bug details directly |
|
|
369
|
+
| Bug ID not found in .prizmkit/plans/bug-fix-list.json | Ask user to provide bug details directly |
|
|
327
370
|
| User's bug description is too vague | Ask systematic clarification questions (Phase 1) |
|
|
328
371
|
| Cannot reproduce the bug | Ask for more context, try alternative reproduction |
|
|
329
372
|
| Fix causes regressions | Revert, analyze, retry (max 3 rounds) |
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "bug-planner"
|
|
3
|
-
|
|
4
|
-
description: "Interactive bug planning that produces bug-fix-list.json for the Bug Fix Pipeline. Supports multiple input formats: error logs, stack traces, user reports, failed tests, monitoring alerts. Use this skill whenever the user has bugs to report, errors to parse, or test failures to organize. Trigger on: 'plan bug fixes', 'report bugs', 'I have some bugs', 'these tests are failing', 'here is an error log', 'parse these errors', 'generate bug list'. (project)"
|
|
3
|
+
description: "Interactive bug planning that produces .prizmkit/plans/bug-fix-list.json for the Bug Fix Pipeline. Supports multiple input formats: error logs, stack traces, user reports, failed tests, monitoring alerts. Use this skill whenever the user has bugs to report, errors to parse, or test failures to organize. Trigger on: 'plan bug fixes', 'report bugs', 'I have some bugs', 'these tests are failing', 'here is an error log', 'parse these errors', 'generate bug list'."
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Bug Planner
|
|
8
7
|
|
|
9
|
-
Interactive skill that collects bug information from various input formats and generates a standardized
|
|
8
|
+
Interactive skill that collects bug information from various input formats and generates a standardized `.prizmkit/plans/bug-fix-list.json` for the Bug Fix Pipeline.
|
|
9
|
+
|
|
10
|
+
## Invocation Commitment (Hard Rule)
|
|
11
|
+
|
|
12
|
+
When the user invokes `/bug-planner`, you MUST execute the bug-planner workflow. You must NEVER:
|
|
13
|
+
- Decide on the user's behalf that the task "doesn't need bug-planner"
|
|
14
|
+
- Skip bug-planner to jump directly to implementation or any other skill
|
|
15
|
+
- Bypass the interactive phases because you judge the task to be "simple"
|
|
16
|
+
|
|
17
|
+
If you believe the task is better suited for a different workflow, you MUST:
|
|
18
|
+
1. Explain why you think a different path is more appropriate
|
|
19
|
+
2. Ask the user explicitly whether they want to switch or continue with bug-planner
|
|
20
|
+
3. Only switch if the user confirms
|
|
21
|
+
|
|
22
|
+
The user chose this skill intentionally. Respect that choice.
|
|
23
|
+
|
|
24
|
+
## Scope Boundary (Hard Rule)
|
|
25
|
+
|
|
26
|
+
This skill is PLANNING ONLY. You must NEVER:
|
|
27
|
+
- Create, modify, or delete source code files (*.js, *.ts, *.py, *.go, *.html, *.css, etc.)
|
|
28
|
+
- Run build/install/test commands
|
|
29
|
+
- Execute any bug fix action
|
|
30
|
+
- Execute any implementation action beyond writing `.prizmkit/plans/bug-fix-list.json`
|
|
31
|
+
|
|
32
|
+
Your ONLY writable outputs are:
|
|
33
|
+
1. `.prizmkit/plans/bug-fix-list.json`
|
|
34
|
+
2. Draft backups in `.prizmkit/plans/` (e.g., `bug-fix-list.draft.json`)
|
|
35
|
+
|
|
36
|
+
After planning is complete, you MUST:
|
|
37
|
+
1. Present the summary and recommended next step (invoking `bugfix-pipeline-launcher`)
|
|
38
|
+
2. Ask the user explicitly whether they want to proceed to execution
|
|
39
|
+
3. If the user wants to adjust → continue refining the bug list
|
|
40
|
+
4. NEVER auto-execute the pipeline, launcher, or any fix step
|
|
10
41
|
|
|
11
42
|
## When to Use
|
|
12
43
|
|
|
@@ -17,9 +48,9 @@ User says:
|
|
|
17
48
|
- After receiving bug reports, error logs, or failed test output
|
|
18
49
|
|
|
19
50
|
**Do NOT use when:**
|
|
20
|
-
- User wants to start fixing bugs now
|
|
21
|
-
- User wants to fix a single bug interactively
|
|
22
|
-
- User wants to plan features
|
|
51
|
+
- User wants to start fixing bugs now → use `bugfix-pipeline-launcher`
|
|
52
|
+
- User wants to fix a single bug interactively → use `bug-fix-workflow`
|
|
53
|
+
- User wants to plan features → use `feature-planner`
|
|
23
54
|
|
|
24
55
|
## Intent Routing
|
|
25
56
|
|
|
@@ -30,9 +61,31 @@ This skill handles multiple operations. Determine the user's intent and execute
|
|
|
30
61
|
| Plan bugs interactively | **Interactive Planning** | "plan bug fixes", "report bugs" |
|
|
31
62
|
| Parse error logs into bugs | **From Log** | "parse this error log", "here's a stack trace", "parse these errors" |
|
|
32
63
|
| Parse test failures into bugs | **From Tests** | "these tests are failing", "parse test output" |
|
|
33
|
-
| Validate existing bug list | **Validate** | "validate bug list", "check bug-fix-list.json" |
|
|
64
|
+
| Validate existing bug list | **Validate** | "validate bug list", "check .prizmkit/plans/bug-fix-list.json" |
|
|
34
65
|
| Summarize bug list | **Summary** | "bug summary", "show bug list", "list bugs" |
|
|
35
66
|
|
|
67
|
+
## Scenario Routing
|
|
68
|
+
|
|
69
|
+
Classify user intent first:
|
|
70
|
+
|
|
71
|
+
### Route A: New Bug List (No Existing Plan)
|
|
72
|
+
|
|
73
|
+
Use when no `.prizmkit/plans/bug-fix-list.json` exists.
|
|
74
|
+
|
|
75
|
+
Actions:
|
|
76
|
+
1. Run full Interactive Planning (Phase 1-5)
|
|
77
|
+
2. Generate initial `.prizmkit/plans/bug-fix-list.json`
|
|
78
|
+
|
|
79
|
+
### Route B: Append to Existing Bug List
|
|
80
|
+
|
|
81
|
+
Use when `.prizmkit/plans/bug-fix-list.json` already exists and user wants to add more bugs.
|
|
82
|
+
|
|
83
|
+
Actions:
|
|
84
|
+
1. Read existing `.prizmkit/plans/bug-fix-list.json` first (if missing, ask whether to start new plan)
|
|
85
|
+
2. Continue with next sequential `B-NNN` IDs
|
|
86
|
+
3. Preserve existing entries, append new bugs
|
|
87
|
+
4. Re-run validation on the merged list
|
|
88
|
+
|
|
36
89
|
---
|
|
37
90
|
|
|
38
91
|
## Operation: Interactive Planning
|
|
@@ -41,78 +94,40 @@ Launch the interactive bug planning process through 5 phases.
|
|
|
41
94
|
|
|
42
95
|
### Phase 1: Project Context
|
|
43
96
|
|
|
44
|
-
|
|
45
|
-
|
|
97
|
+
Gather project metadata from the project's own configuration and documentation — bug-planner is independent of feature-planner, so it reads project-level sources directly rather than depending on feature-list.json.
|
|
98
|
+
|
|
99
|
+
1. **Identify project**: Read project name and description from these sources (first match wins):
|
|
100
|
+
- `.prizmkit/config.json` (`project_name`, `description` fields)
|
|
101
|
+
- `.prizm-docs/root.prizm` (project overview section)
|
|
102
|
+
- `CLAUDE.md` or `CODEBUDDY.md` (project instructions)
|
|
103
|
+
- `package.json` / `pyproject.toml` / `Cargo.toml` (name + description fields)
|
|
104
|
+
- If none found, ask the user
|
|
105
|
+
2. **Identify tech stack**: Read from these sources (first match wins):
|
|
106
|
+
- `.prizmkit/config.json` `tech_stack` (preferred — contains language, frameworks, DB, etc.)
|
|
107
|
+
- `.prizm-docs/root.prizm` (architecture section)
|
|
108
|
+
- Auto-detect from project files (`package.json`, `requirements.txt`, `go.mod`, etc.)
|
|
109
|
+
- If none found, ask the user
|
|
46
110
|
3. **Identify testing framework**: Read from `.prizmkit/config.json` `tech_stack.testing`, or auto-detect from package.json/requirements.txt/etc., or ask user
|
|
47
111
|
4. **Clarify context** — if the project context, affected systems, or bug scope is unclear, ask questions one at a time (cite the unclear point, give a recommended answer with rationale) until you fully understand the environment. No limit on rounds or number of questions.
|
|
48
112
|
|
|
49
113
|
Output: `project_name`, `project_description`, `global_context` fields populated.
|
|
50
114
|
|
|
115
|
+
**Gate → CP-BP-1**: Tech stack and project info confirmed before proceeding.
|
|
116
|
+
|
|
51
117
|
### Phase 2: Bug Collection
|
|
52
118
|
|
|
53
119
|
Accept bug information in ANY of these formats (auto-detect):
|
|
54
120
|
|
|
55
|
-
#### Severity
|
|
56
|
-
|
|
57
|
-
When extracting bugs, apply these rules to auto-suggest severity:
|
|
121
|
+
#### Severity & Input Format References
|
|
58
122
|
|
|
59
|
-
|
|
60
|
-
|----------|------------|----------|
|
|
61
|
-
| **critical** | System crash, data loss, security breach, OOM, unrecoverable error | `Segmentation fault`, `OutOfMemoryError`, `SQL injection vulnerability`, `Database corrupted` |
|
|
62
|
-
| **high** | Core feature broken, authentication failure, data integrity issue, timeout | `Auth token invalid`, `Payment failed`, `Connection timeout`, `500 Internal Server Error` |
|
|
63
|
-
| **medium** | Feature partially broken, workaround exists, incorrect output | `CSV encoding issue`, `Pagination not working`, `Wrong date format`, `Missing validation` |
|
|
64
|
-
| **low** | Cosmetic issue, minor inconvenience, edge case | `UI misalignment`, `Typo in error message`, `Slow loading (non-critical page)`, `Non-breaking warning` |
|
|
123
|
+
When classifying severity, read `${SKILL_DIR}/references/severity-rules.md` for the auto-classification table (critical/high/medium/low indicators and special cases).
|
|
65
124
|
|
|
66
|
-
|
|
67
|
-
- Failed test → medium (unless test covers critical path, then high)
|
|
68
|
-
- User report with "cannot use app" → high
|
|
69
|
-
- User report with "annoying but works" → low
|
|
70
|
-
|
|
71
|
-
#### Format A: Stack Trace / Error Log
|
|
72
|
-
```
|
|
73
|
-
TypeError: Cannot read property 'token' of null
|
|
74
|
-
at AuthService.handleLogin (src/services/auth.ts:42)
|
|
75
|
-
at LoginPage.onSubmit (src/pages/login.tsx:28)
|
|
76
|
-
```
|
|
77
|
-
→ Auto-extract: `error_source.type="stack_trace"`, `error_message`, `stack_trace`, `affected_modules`
|
|
78
|
-
|
|
79
|
-
#### Format B: Natural Language User Report
|
|
80
|
-
```
|
|
81
|
-
When I click the login button with correct credentials, the page turns white.
|
|
82
|
-
Expected: redirect to home page.
|
|
83
|
-
Actual: white screen with no error message visible.
|
|
84
|
-
```
|
|
85
|
-
→ Auto-extract: `error_source.type="user_report"`, `reproduction_steps`, `description` (expected vs actual)
|
|
86
|
-
|
|
87
|
-
#### Format C: Failed Test Output
|
|
88
|
-
```
|
|
89
|
-
FAIL src/services/__tests__/auth.test.ts
|
|
90
|
-
● AuthService > handleLogin > should return token on success
|
|
91
|
-
Expected: "abc123"
|
|
92
|
-
Received: null
|
|
93
|
-
```
|
|
94
|
-
→ Auto-extract: `error_source.type="failed_test"`, `failed_test_path`, `error_message`
|
|
95
|
-
|
|
96
|
-
#### Format D: Log Pattern
|
|
97
|
-
```
|
|
98
|
-
[2026-03-07 10:23:45] ERROR [auth-service] Connection timeout after 30000ms
|
|
99
|
-
[2026-03-07 10:23:45] ERROR [auth-service] Failed to authenticate user: ETIMEDOUT
|
|
100
|
-
[2026-03-07 10:23:46] ERROR [auth-service] Connection timeout after 30000ms
|
|
101
|
-
```
|
|
102
|
-
→ Auto-extract: `error_source.type="log_pattern"`, `log_snippet`, `affected_modules`
|
|
103
|
-
|
|
104
|
-
#### Format E: Monitoring Alert
|
|
105
|
-
```
|
|
106
|
-
ALERT: CPU usage > 95% for auth-service pod (5min avg)
|
|
107
|
-
ALERT: Error rate spike: 500 errors/min on /api/login endpoint
|
|
108
|
-
```
|
|
109
|
-
→ Auto-extract: `error_source.type="monitoring_alert"`, `error_message`, `affected_modules`
|
|
125
|
+
When parsing user input, auto-detect the format and read `${SKILL_DIR}/references/input-formats.md` for extraction patterns. Supported formats: stack traces, user reports, failed tests, log patterns, monitoring alerts.
|
|
110
126
|
|
|
111
127
|
**For each bug collected**, interactively confirm or fill in:
|
|
112
128
|
- Title (auto-suggest from error message, user can edit)
|
|
113
129
|
- Description (auto-generate expected vs actual, user can edit)
|
|
114
130
|
- Severity (auto-suggest based on error type, user can override)
|
|
115
|
-
- Affected feature (ask if known, map to existing F-NNN IDs)
|
|
116
131
|
- Environment (ask or auto-detect from logs)
|
|
117
132
|
- Verification type (suggest `automated` by default, ask user)
|
|
118
133
|
- Acceptance criteria (auto-suggest based on description, user can edit)
|
|
@@ -120,30 +135,7 @@ ALERT: Error rate spike: 500 errors/min on /api/login endpoint
|
|
|
120
135
|
|
|
121
136
|
**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.
|
|
122
137
|
|
|
123
|
-
**Per-bug confirmation (mandatory)** — after extracting and clarifying each bug, present a structured summary
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
┌─ Bug Confirmation: B-NNN ─────────────────────────────
|
|
127
|
-
│ Title: <auto-suggested title>
|
|
128
|
-
│ Description: <expected vs actual behavior>
|
|
129
|
-
│ Severity: <auto-classified> | Verification: <type>
|
|
130
|
-
│
|
|
131
|
-
│ Reproduction: <steps if available, or "not provided">
|
|
132
|
-
│ Affected: <module/feature or "unknown">
|
|
133
|
-
│
|
|
134
|
-
│ ✅ Acceptance Criteria (fix verified when):
|
|
135
|
-
│ 1. <criterion — specific enough for automated pipeline to verify>
|
|
136
|
-
│ 2. <criterion>
|
|
137
|
-
│
|
|
138
|
-
│ ⚠️ Open Questions:
|
|
139
|
-
│ - <any unclear points, or "None">
|
|
140
|
-
└────────────────────────────────────────────────────────
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Then ask three confirmation questions:
|
|
144
|
-
1. "描述是否准确?是否需要修改?" / "Is the description accurate? Any corrections?"
|
|
145
|
-
2. "是否需要补充更多细节?(复现步骤、环境信息、相关代码位置等)" / "Need to add more details? (reproduction steps, environment, related code locations, etc.)"
|
|
146
|
-
3. "验证条件是否具体到 pipeline 可以自主判断修复成功?" / "Are the acceptance criteria specific enough that the pipeline can autonomously verify the fix?"
|
|
138
|
+
**Per-bug confirmation (mandatory)** — after extracting and clarifying each bug, present a structured summary using the template in `${SKILL_DIR}/assets/bug-confirmation-template.md`, then ask the three confirmation questions defined there.
|
|
147
139
|
|
|
148
140
|
The acceptance criteria are critical — they directly determine how the bugfix pipeline judges success or failure. Vague criteria like "login works" lead to shallow fixes; prefer specific, verifiable conditions like "POST /api/login with valid credentials returns 200 and a JWT token in the response body."
|
|
149
141
|
|
|
@@ -151,16 +143,18 @@ Only finalize the bug entry after user confirms all three points.
|
|
|
151
143
|
|
|
152
144
|
**Multiple bugs per session**: After each bug, ask "Any more bugs to add? (yes/no)"
|
|
153
145
|
|
|
146
|
+
**Gate → CP-BP-2**: All bugs extracted and confirmed by user.
|
|
147
|
+
|
|
154
148
|
### Phase 3: Prioritization & Review
|
|
155
149
|
|
|
156
|
-
1. **Auto-assign priorities**: Based on severity
|
|
157
|
-
|
|
150
|
+
1. **Auto-assign priorities**: Based on severity, adjustable by user
|
|
151
|
+
|
|
158
152
|
**Severity → Priority Mapping**:
|
|
159
153
|
- `critical` severity → `high` priority (treated with highest urgency)
|
|
160
154
|
- `high` severity → `high` priority
|
|
161
155
|
- `medium` severity → `medium` priority
|
|
162
156
|
- `low` severity → `low` priority
|
|
163
|
-
|
|
157
|
+
|
|
164
158
|
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.
|
|
165
159
|
2. **Display summary table**:
|
|
166
160
|
```
|
|
@@ -172,14 +166,20 @@ Only finalize the bug entry after user confirms all three points.
|
|
|
172
166
|
3. **Ask for adjustments**: "Want to reorder priorities, change severity, or remove any bugs?"
|
|
173
167
|
4. **Detect potential duplicates**: If two bugs have similar error messages or affected modules, warn user
|
|
174
168
|
|
|
169
|
+
**Gate → CP-BP-3**: Severity/priority assigned, duplicates resolved.
|
|
170
|
+
|
|
175
171
|
### Phase 4: Pre-Generation Completeness Review
|
|
176
172
|
|
|
177
|
-
Before generating
|
|
173
|
+
Before generating `.prizmkit/plans/bug-fix-list.json`, perform a holistic scan across all collected bugs. The bugfix pipeline runs autonomously — any ambiguity left here becomes a wrong assumption later.
|
|
178
174
|
|
|
179
|
-
**Step 1 — Description adequacy scan**: For each bug, check:
|
|
175
|
+
**Step 1 — Description adequacy scan (Headless Execution Readiness)**: The bugfix pipeline runs each bug through an autonomous AI session with NO human interaction. Every description must be unambiguous enough for headless execution. For each bug, check:
|
|
180
176
|
- Description clearly states **expected** vs **actual** behavior (not just "X doesn't work")
|
|
181
177
|
- Reproduction path is specific enough for the pipeline AI to locate the relevant code
|
|
182
178
|
- If the bug involves user interaction, the trigger action is described (not just the symptom)
|
|
179
|
+
- **Code location hints**: Where in the codebase should the AI look? (file paths, module names, function names)
|
|
180
|
+
- **Verification method**: How should the AI verify the fix? (run specific test, check specific behavior)
|
|
181
|
+
- Bad: "Login is broken" — too vague, AI will search the entire codebase
|
|
182
|
+
- Good: "Login form at /login returns 500 when password field is empty. Expected: validation error 400. Root cause likely in src/api/auth.ts POST /api/auth/login handler — missing null check on password field."
|
|
183
183
|
|
|
184
184
|
**Step 2 — Acceptance criteria specificity check**: For each bug, verify each acceptance criterion passes the "pipeline autonomy test" — could an AI session, without asking a human, determine whether this criterion is met? Flag criteria that are subjective ("works correctly"), lack measurable conditions ("performs better"), or don't specify the verification method.
|
|
185
185
|
|
|
@@ -188,72 +188,50 @@ Before generating `bug-fix-list.json`, perform a holistic scan across all collec
|
|
|
188
188
|
- **Missing dependencies**: If fixing B-002 requires B-001 to be fixed first, flag the dependency
|
|
189
189
|
- **Scope gaps**: If bugs describe symptoms but the underlying cause likely affects more areas, suggest additional bugs
|
|
190
190
|
|
|
191
|
-
**Step 4 — Present review table**: Display the completeness assessment using
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
┌─ Completeness Review ─────────────────────────────────────────────────
|
|
195
|
-
│ Bug │ Description │ Criteria │ Reproducible │ Notes
|
|
196
|
-
│ B-001 │ ✓ Clear │ ✓ Specific │ ✓ Yes │ —
|
|
197
|
-
│ B-002 │ ⚠ Vague │ ⚠ Subjective│ ✓ Yes │ "encoding works" → needs specific test case
|
|
198
|
-
│ B-003 │ ✓ Clear │ ⚠ No metric│ ⚠ No steps │ needs perf threshold + reproduction steps
|
|
199
|
-
└────────────────────────────────────────────────────────────────────────
|
|
200
|
-
```
|
|
191
|
+
**Step 4 — Present review table**: Display the completeness assessment using the template in `${SKILL_DIR}/assets/bug-confirmation-template.md` (§Completeness Review Template).
|
|
201
192
|
|
|
202
|
-
For any
|
|
193
|
+
For any items that need attention, ask targeted questions to fill gaps. Iterate until the user confirms all bugs are adequately described. Present bilingual prompt:
|
|
203
194
|
|
|
204
|
-
> "
|
|
205
|
-
> "Above is the completeness review. Items
|
|
195
|
+
> "以上是完整性审查结果。需要补充的项目是否逐一补充?还是先跳过,之后再完善?"
|
|
196
|
+
> "Above is the completeness review. Items needing more detail — address them now, or proceed and refine later?"
|
|
206
197
|
|
|
207
198
|
Only proceed to Phase 5 after user confirms.
|
|
208
199
|
|
|
200
|
+
**Gate → CP-BP-4**: All bugs pass headless execution readiness check.
|
|
201
|
+
|
|
209
202
|
### Phase 5: Generate & Validate
|
|
210
203
|
|
|
211
|
-
1. **Generate
|
|
212
|
-
2. **Validate against schema**: Run the validation
|
|
213
|
-
|
|
214
|
-
python3 ${SKILL_DIR}/scripts/validate-bug-list.py bug-fix-list.json --feature-list feature-list.json
|
|
215
|
-
```
|
|
216
|
-
If the script is not available, perform the validation checks manually (see checklist below).
|
|
217
|
-
3. **Write file** to project root (or user-specified path)
|
|
204
|
+
1. **Generate `.prizmkit/plans/bug-fix-list.json`**: Conform to `dev-pipeline/templates/bug-fix-list-schema.json`
|
|
205
|
+
2. **Validate against schema**: Run `python3 ${SKILL_DIR}/scripts/validate-bug-list.py .prizmkit/plans/bug-fix-list.json --feature-list .prizmkit/plans/feature-list.json`. If the script is unavailable, use the checklist in `${SKILL_DIR}/references/schema-validation.md`.
|
|
206
|
+
3. **Write file** to `.prizmkit/plans/` (or user-specified path)
|
|
218
207
|
4. **Output**: File path, summary, and next steps
|
|
219
208
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
Before writing the file, verify all items pass:
|
|
223
|
-
|
|
224
|
-
**Required fields:**
|
|
225
|
-
- [ ] `$schema`: must be `"dev-pipeline-bug-fix-list-v1"`
|
|
226
|
-
- [ ] `project_name`: non-empty string
|
|
227
|
-
- [ ] `bugs`: non-empty array
|
|
228
|
-
|
|
229
|
-
**Per-bug required fields:**
|
|
230
|
-
- [ ] `id`: matches pattern `B-NNN` (e.g., `B-001`)
|
|
231
|
-
- [ ] `title`: non-empty string
|
|
232
|
-
- [ ] `description`: non-empty string
|
|
233
|
-
- [ ] `severity`: one of `critical`, `high`, `medium`, `low`
|
|
234
|
-
- [ ] `error_source.type`: one of `stack_trace`, `user_report`, `failed_test`, `log_pattern`, `monitoring_alert`
|
|
235
|
-
- [ ] `verification_type`: one of `automated`, `manual`, `hybrid`
|
|
236
|
-
- [ ] `acceptance_criteria`: non-empty array of strings
|
|
237
|
-
- [ ] `status`: must be `pending` for new bugs
|
|
238
|
-
|
|
239
|
-
**Consistency checks:**
|
|
240
|
-
- [ ] No duplicate bug IDs
|
|
241
|
-
- [ ] If `priority` is set, must be one of `high`, `medium`, `low`
|
|
242
|
-
- [ ] If `affected_feature` is set, verify it exists in `feature-list.json` (if available)
|
|
243
|
-
|
|
244
|
-
If any check fails, fix before writing the file.
|
|
209
|
+
**Gate → CP-BP-5**: `bug-fix-list.json` passes validation script with zero errors.
|
|
245
210
|
|
|
246
211
|
#### Success Output
|
|
247
212
|
|
|
248
213
|
```
|
|
249
|
-
|
|
214
|
+
.prizmkit/plans/bug-fix-list.json generated with 3 bugs (1 critical, 1 medium, 1 low)
|
|
250
215
|
|
|
251
216
|
Next steps:
|
|
252
|
-
- Review: cat bug-fix-list.json
|
|
253
|
-
- Start fixing: say "start fixing"
|
|
254
|
-
- Or run directly: ./dev-pipeline/launch-bugfix-daemon.sh start bug-fix-list.json
|
|
217
|
+
- Review: cat .prizmkit/plans/bug-fix-list.json
|
|
218
|
+
- Start fixing: say "start fixing" to launch the bugfix pipeline via bugfix-pipeline-launcher
|
|
255
219
|
```
|
|
256
220
|
|
|
221
|
+
### Checkpoints (Mandatory Gates)
|
|
222
|
+
|
|
223
|
+
Checkpoints catch cascading errors early — skipping one means the next phase builds on unvalidated assumptions.
|
|
224
|
+
|
|
225
|
+
| Checkpoint | Artifact/State | Criteria | Phase |
|
|
226
|
+
|-----------|----------------|----------|-------|
|
|
227
|
+
| **CP-BP-1** | Project Context | Tech stack and project info confirmed | 1 |
|
|
228
|
+
| **CP-BP-2** | Bugs Collected | All bugs extracted and confirmed by user | 2 |
|
|
229
|
+
| **CP-BP-3** | Priorities Set | Severity/priority assigned, duplicates resolved | 3 |
|
|
230
|
+
| **CP-BP-4** | Completeness Passed | All bugs pass headless execution readiness check | 4 |
|
|
231
|
+
| **CP-BP-5** | File Generated | `bug-fix-list.json` passes validation script | 5 |
|
|
232
|
+
|
|
233
|
+
**Resume Detection**: If existing `.prizmkit/plans/bug-fix-list.json` or draft found, read `${SKILL_DIR}/references/error-recovery.md` §Resume Support for checkpoint-based resumption.
|
|
234
|
+
|
|
257
235
|
---
|
|
258
236
|
|
|
259
237
|
## Operation: From Log
|
|
@@ -265,11 +243,11 @@ Batch-parse error logs to generate bug entries without interactive prompts:
|
|
|
265
243
|
3. Auto-generate bug entries with:
|
|
266
244
|
- Title: first line of error message
|
|
267
245
|
- Description: full error context
|
|
268
|
-
- Severity: use
|
|
246
|
+
- Severity: use `${SKILL_DIR}/references/severity-rules.md`
|
|
269
247
|
- error_source: populated from log content
|
|
270
248
|
- verification_type: default to `automated`
|
|
271
249
|
- acceptance_criteria: auto-generate "Error no longer occurs in [scenario]"
|
|
272
|
-
4. Output draft
|
|
250
|
+
4. Output draft `.prizmkit/plans/bug-fix-list.json` for user review
|
|
273
251
|
5. Ask: "Review and confirm? You can edit individual entries."
|
|
274
252
|
|
|
275
253
|
## Operation: From Tests
|
|
@@ -280,11 +258,11 @@ Batch-parse failed test output:
|
|
|
280
258
|
2. Parse each failed test case as a separate bug entry
|
|
281
259
|
3. Auto-populate `failed_test_path`, `error_message`
|
|
282
260
|
4. Set verification_type to `automated` (test already exists)
|
|
283
|
-
5. Output draft
|
|
261
|
+
5. Output draft `.prizmkit/plans/bug-fix-list.json`
|
|
284
262
|
|
|
285
263
|
## Operation: Validate
|
|
286
264
|
|
|
287
|
-
Validate existing
|
|
265
|
+
Validate existing `.prizmkit/plans/bug-fix-list.json`:
|
|
288
266
|
|
|
289
267
|
1. Check JSON syntax
|
|
290
268
|
2. Validate against `dev-pipeline/templates/bug-fix-list-schema.json`
|
|
@@ -293,7 +271,6 @@ Validate existing `bug-fix-list.json`:
|
|
|
293
271
|
- Missing required fields
|
|
294
272
|
- Invalid status values
|
|
295
273
|
- Invalid priority values (must be 'high', 'medium', or 'low')
|
|
296
|
-
- Invalid `affected_feature` references (if feature-list.json exists)
|
|
297
274
|
4. Output: validation result with specific errors/warnings
|
|
298
275
|
|
|
299
276
|
## Operation: Summary
|
|
@@ -302,7 +279,6 @@ Print human-readable summary:
|
|
|
302
279
|
|
|
303
280
|
```
|
|
304
281
|
Bug Fix List Summary: my-web-app
|
|
305
|
-
═══════════════════════════════
|
|
306
282
|
|
|
307
283
|
Total: 3 bugs
|
|
308
284
|
By Severity: critical=1, high=0, medium=1, low=1
|
|
@@ -312,69 +288,35 @@ Bug List (by priority):
|
|
|
312
288
|
1. [B-001] Login null reference crash (CRITICAL) — automated
|
|
313
289
|
2. [B-002] CSV export Chinese encoding (MEDIUM) — hybrid
|
|
314
290
|
3. [B-003] Slow dashboard loading (LOW) — manual
|
|
315
|
-
|
|
316
|
-
Affected Features: F-003 (1 bug), F-012 (1 bug), none (1 bug)
|
|
317
291
|
```
|
|
318
292
|
|
|
319
293
|
---
|
|
320
294
|
|
|
321
|
-
## Adversarial Critic
|
|
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.
|
|
295
|
+
## Adversarial Critic & Browser Verification
|
|
324
296
|
|
|
325
|
-
|
|
297
|
+
When configuring critic settings or browser verification for bugs, read `${SKILL_DIR}/references/critic-and-verification.md` for default behavior tables and verification type guidance.
|
|
326
298
|
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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.
|
|
299
|
+
Key points:
|
|
300
|
+
- Critic is enabled by default for critical/high severity, disabled for medium/low
|
|
301
|
+
- Users can override critic settings per-bug during Phase 2 or Phase 3
|
|
302
|
+
- Browser verification is feature-pipeline only — bug fixes use `verification_type` field (automated/manual/hybrid)
|
|
339
303
|
|
|
340
304
|
---
|
|
341
305
|
|
|
342
|
-
##
|
|
306
|
+
## Next-Step Execution Policy
|
|
343
307
|
|
|
344
|
-
|
|
308
|
+
Recommend invoking `bugfix-pipeline-launcher` to configure and launch the pipeline. Do NOT recommend running shell scripts directly — that is the launcher's responsibility.
|
|
345
309
|
|
|
346
|
-
-
|
|
347
|
-
|
|
348
|
-
|
|
310
|
+
After `.prizmkit/plans/bug-fix-list.json` is generated, present:
|
|
311
|
+
1. Summary of generated bugs (count, severity breakdown)
|
|
312
|
+
2. Recommend: "Say 'start fixing' to launch the bugfix pipeline via `bugfix-pipeline-launcher`"
|
|
313
|
+
3. Alternative: fix a single bug interactively via `bug-fix-workflow`
|
|
349
314
|
|
|
350
|
-
|
|
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
|
-
|
|
367
|
-
## Integration with Bug Fix Pipeline
|
|
368
|
-
|
|
369
|
-
After `bug-fix-list.json` is generated, the user can:
|
|
315
|
+
## Error Handling
|
|
370
316
|
|
|
371
|
-
|
|
372
|
-
2. **Background daemon**: `./dev-pipeline/launch-bugfix-daemon.sh start bug-fix-list.json`
|
|
373
|
-
3. **Foreground run**: `./dev-pipeline/run-bugfix.sh run bug-fix-list.json`
|
|
374
|
-
4. **Fix single bug interactively**: invoke `bug-fix-workflow` in current session
|
|
375
|
-
5. **Retry a failed bug**: `./dev-pipeline/retry-bugfix.sh B-001`
|
|
317
|
+
If validation fails or a session is interrupted, read `${SKILL_DIR}/references/error-recovery.md` for the full error type table, retry logic, and checkpoint-based resume support.
|
|
376
318
|
|
|
377
|
-
|
|
319
|
+
Common errors handled inline:
|
|
378
320
|
|
|
379
321
|
| Error | Action |
|
|
380
322
|
|-------|--------|
|
|
@@ -387,6 +329,6 @@ After `bug-fix-list.json` is generated, the user can:
|
|
|
387
329
|
|
|
388
330
|
## Output
|
|
389
331
|
|
|
390
|
-
-
|
|
332
|
+
- `.prizmkit/plans/bug-fix-list.json` conforming to `dev-pipeline/templates/bug-fix-list-schema.json`
|
|
391
333
|
- Validation report (if validation run)
|
|
392
334
|
- Summary report (if summary run)
|