prizmkit 1.0.0 → 1.0.1
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 +5 -0
- package/bundled/adapters/claude/agent-adapter.js +108 -0
- package/bundled/adapters/claude/command-adapter.js +104 -0
- package/bundled/adapters/claude/paths.js +35 -0
- package/bundled/adapters/claude/rules-adapter.js +77 -0
- package/bundled/adapters/claude/settings-adapter.js +73 -0
- package/bundled/adapters/claude/team-adapter.js +183 -0
- package/bundled/adapters/codebuddy/agent-adapter.js +43 -0
- package/bundled/adapters/codebuddy/paths.js +29 -0
- package/bundled/adapters/codebuddy/settings-adapter.js +47 -0
- package/bundled/adapters/codebuddy/skill-adapter.js +68 -0
- package/bundled/adapters/codebuddy/team-adapter.js +46 -0
- package/bundled/adapters/shared/frontmatter.js +77 -0
- package/bundled/agents/prizm-dev-team-coordinator.md +142 -0
- package/bundled/agents/prizm-dev-team-dev.md +99 -0
- package/bundled/agents/prizm-dev-team-pm.md +114 -0
- package/bundled/agents/prizm-dev-team-reviewer.md +119 -0
- package/bundled/dev-pipeline/README.md +482 -0
- package/bundled/dev-pipeline/assets/feature-list-example.json +147 -0
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +138 -0
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +425 -0
- package/bundled/dev-pipeline/launch-daemon.sh +549 -0
- package/bundled/dev-pipeline/reset-feature.sh +209 -0
- package/bundled/dev-pipeline/retry-bug.sh +344 -0
- package/bundled/dev-pipeline/retry-feature.sh +338 -0
- package/bundled/dev-pipeline/run-bugfix.sh +638 -0
- package/bundled/dev-pipeline/run.sh +845 -0
- package/bundled/dev-pipeline/scripts/check-session-status.py +158 -0
- package/bundled/dev-pipeline/scripts/detect-stuck.py +385 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +598 -0
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +402 -0
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +294 -0
- package/bundled/dev-pipeline/scripts/init-dev-team.py +134 -0
- package/bundled/dev-pipeline/scripts/init-pipeline.py +335 -0
- package/bundled/dev-pipeline/scripts/update-bug-status.py +748 -0
- package/bundled/dev-pipeline/scripts/update-feature-status.py +1076 -0
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +262 -0
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +159 -0
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +291 -0
- package/bundled/dev-pipeline/templates/feature-list-schema.json +112 -0
- package/bundled/dev-pipeline/templates/session-status-schema.json +77 -0
- package/bundled/skills/_metadata.json +267 -0
- package/bundled/skills/app-planner/SKILL.md +580 -0
- package/bundled/skills/app-planner/assets/planning-guide.md +313 -0
- package/bundled/skills/app-planner/scripts/validate-and-generate.py +758 -0
- package/bundled/skills/bug-planner/SKILL.md +235 -0
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +252 -0
- package/bundled/skills/dev-pipeline-launcher/SKILL.md +223 -0
- package/bundled/skills/prizm-kit/SKILL.md +151 -0
- package/bundled/skills/prizm-kit/assets/claude-md-template.md +38 -0
- package/bundled/skills/prizm-kit/assets/codebuddy-md-template.md +35 -0
- package/bundled/skills/prizm-kit/assets/hooks/prizm-commit-hook.json +15 -0
- package/bundled/skills/prizmkit-adr-manager/SKILL.md +68 -0
- package/bundled/skills/prizmkit-adr-manager/assets/adr-template.md +26 -0
- package/bundled/skills/prizmkit-analyze/SKILL.md +194 -0
- package/bundled/skills/prizmkit-api-doc-generator/SKILL.md +56 -0
- package/bundled/skills/prizmkit-bug-fix-workflow/SKILL.md +351 -0
- package/bundled/skills/prizmkit-bug-reproducer/SKILL.md +62 -0
- package/bundled/skills/prizmkit-ci-cd-generator/SKILL.md +54 -0
- package/bundled/skills/prizmkit-clarify/SKILL.md +52 -0
- package/bundled/skills/prizmkit-code-review/SKILL.md +70 -0
- package/bundled/skills/prizmkit-committer/SKILL.md +117 -0
- package/bundled/skills/prizmkit-db-migration/SKILL.md +65 -0
- package/bundled/skills/prizmkit-dependency-health/SKILL.md +123 -0
- package/bundled/skills/prizmkit-deployment-strategy/SKILL.md +58 -0
- package/bundled/skills/prizmkit-error-triage/SKILL.md +55 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +47 -0
- package/bundled/skills/prizmkit-init/SKILL.md +156 -0
- package/bundled/skills/prizmkit-log-analyzer/SKILL.md +55 -0
- package/bundled/skills/prizmkit-monitoring-setup/SKILL.md +75 -0
- package/bundled/skills/prizmkit-onboarding-generator/SKILL.md +70 -0
- package/bundled/skills/prizmkit-perf-profiler/SKILL.md +55 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +54 -0
- package/bundled/skills/prizmkit-plan/assets/plan-template.md +37 -0
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +140 -0
- package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +943 -0
- package/bundled/skills/prizmkit-retrospective/SKILL.md +79 -0
- package/bundled/skills/prizmkit-security-audit/SKILL.md +130 -0
- package/bundled/skills/prizmkit-specify/SKILL.md +52 -0
- package/bundled/skills/prizmkit-specify/assets/spec-template.md +37 -0
- package/bundled/skills/prizmkit-summarize/SKILL.md +51 -0
- package/bundled/skills/prizmkit-summarize/assets/registry-template.md +18 -0
- package/bundled/skills/prizmkit-tasks/SKILL.md +50 -0
- package/bundled/skills/prizmkit-tasks/assets/tasks-template.md +21 -0
- package/bundled/skills/prizmkit-tech-debt-tracker/SKILL.md +139 -0
- package/bundled/team/prizm-dev-team.json +47 -0
- package/bundled/templates/claude-md-template.md +38 -0
- package/bundled/templates/codebuddy-md-template.md +35 -0
- package/package.json +2 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# Dev-Pipeline Bug Fix Session Bootstrap
|
|
2
|
+
|
|
3
|
+
## Session Context
|
|
4
|
+
|
|
5
|
+
- **Pipeline Run ID**: {{RUN_ID}}
|
|
6
|
+
- **Session ID**: {{SESSION_ID}}
|
|
7
|
+
- **Bug ID**: {{BUG_ID}}
|
|
8
|
+
- **Bug Title**: {{BUG_TITLE}}
|
|
9
|
+
- **Severity**: {{SEVERITY}}
|
|
10
|
+
- **Verification Type**: {{VERIFICATION_TYPE}}
|
|
11
|
+
- **Retry Count**: {{RETRY_COUNT}} / {{MAX_RETRIES}}
|
|
12
|
+
- **Previous Session Status**: {{PREV_SESSION_STATUS}}
|
|
13
|
+
- **Resume From Phase**: {{RESUME_PHASE}}
|
|
14
|
+
|
|
15
|
+
## Your Mission
|
|
16
|
+
|
|
17
|
+
You are the **bug fix session orchestrator**. Fix Bug {{BUG_ID}}: "{{BUG_TITLE}}".
|
|
18
|
+
|
|
19
|
+
**CRITICAL SESSION LIFECYCLE RULE**: You MUST NOT exit until ALL work is complete and session-status.json is written. When you spawn subagents, you MUST **wait for each to finish** (run_in_background=false) before proceeding. Do NOT spawn an agent in the background and exit — that kills the session.
|
|
20
|
+
|
|
21
|
+
**MANDATORY TEAM REQUIREMENT**: You MUST use the `prizm-dev-team` multi-agent team. This is NON-NEGOTIABLE. All implementation and review work MUST be performed by the appropriate team agents (Dev, Reviewer).
|
|
22
|
+
|
|
23
|
+
**BUG FIX DOCUMENTATION POLICY**: Bug fixes MUST NOT be recorded as new documentation entries:
|
|
24
|
+
- Do NOT run `prizmkit.summarize` (no REGISTRY.md entries)
|
|
25
|
+
- Do NOT create spec/plan/tasks under `.prizmkit/specs/`
|
|
26
|
+
- Do NOT update `.prizm-docs/` module docs for pure bug fixes (unless TRAPS update is needed)
|
|
27
|
+
- Commit with `fix(<scope>):` prefix, NOT `feat:`
|
|
28
|
+
|
|
29
|
+
### Team Definition Reference
|
|
30
|
+
|
|
31
|
+
- **Source of truth**: `core/team/prizm-dev-team.json`
|
|
32
|
+
- **Installed team config**: `{{TEAM_CONFIG_PATH}}`
|
|
33
|
+
|
|
34
|
+
### Bug Description
|
|
35
|
+
|
|
36
|
+
{{BUG_DESCRIPTION}}
|
|
37
|
+
|
|
38
|
+
### Error Source
|
|
39
|
+
|
|
40
|
+
- **Type**: {{ERROR_SOURCE_TYPE}}
|
|
41
|
+
{{ERROR_SOURCE_DETAILS}}
|
|
42
|
+
|
|
43
|
+
### Acceptance Criteria
|
|
44
|
+
|
|
45
|
+
{{ACCEPTANCE_CRITERIA}}
|
|
46
|
+
|
|
47
|
+
### Affected Feature
|
|
48
|
+
|
|
49
|
+
{{AFFECTED_FEATURE}}
|
|
50
|
+
|
|
51
|
+
### Environment
|
|
52
|
+
|
|
53
|
+
{{ENVIRONMENT}}
|
|
54
|
+
|
|
55
|
+
### App Global Context
|
|
56
|
+
|
|
57
|
+
{{GLOBAL_CONTEXT}}
|
|
58
|
+
|
|
59
|
+
## Bug Fix Artifacts Directory
|
|
60
|
+
|
|
61
|
+
**ALWAYS** use per-bug subdirectory `.prizmkit/bugfix/{{BUG_ID}}/`:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
.prizmkit/bugfix/{{BUG_ID}}/
|
|
65
|
+
├── fix-plan.md ← Phase 1 output (generated after triage)
|
|
66
|
+
└── fix-report.md ← Phase 5 output (generated after commit)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**IMPORTANT**: Only 2 artifact files per bug, NEVER more. This is a fixed convention.
|
|
70
|
+
|
|
71
|
+
## Execution Instructions
|
|
72
|
+
|
|
73
|
+
**YOU are the orchestrator. Execute each phase by spawning the appropriate team agent with run_in_background=false.**
|
|
74
|
+
|
|
75
|
+
### Step 1: Initialize
|
|
76
|
+
|
|
77
|
+
#### Team Setup: Reuse or Create
|
|
78
|
+
|
|
79
|
+
1. **Check if a team already exists and can be reused**:
|
|
80
|
+
- Read the team config file at `{{TEAM_CONFIG_PATH}}`
|
|
81
|
+
- If valid, reuse it. Set `TEAM_REUSED=true`
|
|
82
|
+
|
|
83
|
+
2. **If no reusable team**, create a new one:
|
|
84
|
+
- Reference `core/team/prizm-dev-team.json`
|
|
85
|
+
- Call `TeamCreate` with `team_name="prizm-dev-team-{{BUG_ID}}"` and `description="Fixing {{BUG_TITLE}}"`
|
|
86
|
+
- Set `TEAM_REUSED=false`
|
|
87
|
+
|
|
88
|
+
3. Create bug fix artifacts directory:
|
|
89
|
+
```bash
|
|
90
|
+
mkdir -p .prizmkit/bugfix/{{BUG_ID}}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Step 2: Pipeline Phases
|
|
94
|
+
|
|
95
|
+
#### Phase 1: Triage — 分诊分类
|
|
96
|
+
|
|
97
|
+
**Goal**: Classify the bug, identify scope and severity, check known issues, produce fix-plan.md.
|
|
98
|
+
|
|
99
|
+
- Spawn Dev agent (Task tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
100
|
+
Prompt: "Read {{DEV_SUBAGENT_PATH}}. For bug {{BUG_ID}} ('{{BUG_TITLE}}'):
|
|
101
|
+
1. Run `prizmkit.error-triage` with the bug description and error source
|
|
102
|
+
2. Check `.prizm-docs/` TRAPS sections for matching known issues
|
|
103
|
+
3. Classify: category, subcategory, root cause (confirmed or suspected), affected files
|
|
104
|
+
4. Assess impact: which modules are affected, what is the blast radius
|
|
105
|
+
5. Design test strategy based on verification_type='{{VERIFICATION_TYPE}}'
|
|
106
|
+
6. Propose fix approach: specific code changes, estimated scope
|
|
107
|
+
7. Write the complete fix plan to `.prizmkit/bugfix/{{BUG_ID}}/fix-plan.md`
|
|
108
|
+
|
|
109
|
+
The fix-plan.md MUST contain these sections:
|
|
110
|
+
- Bug Summary (ID, title, severity, source type, affected feature)
|
|
111
|
+
- Root Cause Analysis (error classification, root cause, call chain, TRAP match)
|
|
112
|
+
- Impact Assessment (directly affected files, potentially affected modules)
|
|
113
|
+
- Test Strategy (reproduction test design, regression test plan, manual steps if hybrid/manual)
|
|
114
|
+
- Fix Approach (proposed fix, fix scope, constraints)
|
|
115
|
+
"
|
|
116
|
+
- **Wait for Dev to return**
|
|
117
|
+
- **CP-BF-1**: `.prizmkit/bugfix/{{BUG_ID}}/fix-plan.md` exists
|
|
118
|
+
|
|
119
|
+
**DECISION GATE — Fast Path Check**:
|
|
120
|
+
- If severity is LOW or MEDIUM, AND root cause is obvious (high confidence), AND fix is < 10 lines:
|
|
121
|
+
→ Set `FAST_PATH=true`, skip Phase 2, go to Phase 3
|
|
122
|
+
- Otherwise → proceed to Phase 2
|
|
123
|
+
|
|
124
|
+
{{IF_VERIFICATION_MANUAL_OR_HYBRID}}
|
|
125
|
+
**NOTE**: When verification_type is 'manual' or 'hybrid', the fix-plan.md MUST also include:
|
|
126
|
+
- Manual Verification Plan section with UAT checklist
|
|
127
|
+
- User Review Required section specifying reviewer and blocking behavior
|
|
128
|
+
{{END_IF_VERIFICATION_MANUAL_OR_HYBRID}}
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
#### Phase 2: Reproduce — 复现确认
|
|
133
|
+
|
|
134
|
+
**Goal**: Create an automated reproduction that proves the bug exists.
|
|
135
|
+
|
|
136
|
+
- Spawn Dev agent (Task tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
137
|
+
Prompt: "Read {{DEV_SUBAGENT_PATH}}. For bug {{BUG_ID}}:
|
|
138
|
+
1. Read the fix plan from `.prizmkit/bugfix/{{BUG_ID}}/fix-plan.md`
|
|
139
|
+
2. Run `prizmkit.bug-reproduce` with the bug description and triage results
|
|
140
|
+
3. Generate a minimal reproduction test that FAILS with current code
|
|
141
|
+
4. Execute the reproduction test to confirm it fails
|
|
142
|
+
5. If reproduction fails, refine and retry (max 2 rounds)
|
|
143
|
+
6. Report: reproduction test path, red/green status, investigation pointers
|
|
144
|
+
"
|
|
145
|
+
- **Wait for Dev to return**
|
|
146
|
+
- If Dev reports reproduction failed after 2 rounds:
|
|
147
|
+
- Output: "Unable to reproduce bug {{BUG_ID}}. Need more information."
|
|
148
|
+
- Write session-status.json with status="partial", errors=["reproduction_failed"]
|
|
149
|
+
- Set bug status to `needs_info` and STOP
|
|
150
|
+
- **CP-BF-2**: Reproduction test exists and FAILS
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
#### Phase 3: Fix — 修复实现
|
|
155
|
+
|
|
156
|
+
**Goal**: Implement the fix. The reproduction test goes from red to green.
|
|
157
|
+
|
|
158
|
+
- Spawn Dev agent (Task tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
159
|
+
Prompt: "Read {{DEV_SUBAGENT_PATH}}. For bug {{BUG_ID}}:
|
|
160
|
+
1. Read the fix plan from `.prizmkit/bugfix/{{BUG_ID}}/fix-plan.md`
|
|
161
|
+
2. Read `.prizm-docs/` for affected modules (TRAPS, RULES, PATTERNS)
|
|
162
|
+
3. Implement the minimal fix following TDD:
|
|
163
|
+
- The reproduction test is the 'red test'
|
|
164
|
+
- Make it pass with the smallest possible code change
|
|
165
|
+
- Do NOT refactor — fix the bug only
|
|
166
|
+
4. Run the reproduction test → MUST PASS
|
|
167
|
+
5. Run the module's test suite → MUST PASS (no regression)
|
|
168
|
+
6. If fix fails after 3 rounds, report detailed analysis
|
|
169
|
+
"
|
|
170
|
+
- **Wait for Dev to return**
|
|
171
|
+
- If fix fails after 3 rounds: escalate to user, write status="failed"
|
|
172
|
+
- **CP-BF-3**: Reproduction test passes, module tests pass
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
#### Phase 4: Verify — 代码审查与回归验证
|
|
177
|
+
|
|
178
|
+
**Goal**: Ensure fix correctness and no regressions.
|
|
179
|
+
|
|
180
|
+
- Spawn Reviewer agent (Task tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false)
|
|
181
|
+
Prompt: "Read {{REVIEWER_SUBAGENT_PATH}}. For bug {{BUG_ID}}:
|
|
182
|
+
1. Run `prizmkit.code-review` scoped to CHANGED FILES ONLY
|
|
183
|
+
2. Review dimensions (adjusted for bug fix):
|
|
184
|
+
- Fix correctness: Does it address the root cause?
|
|
185
|
+
- Regression safety: Does it break existing behavior?
|
|
186
|
+
- Code quality: Is the fix clean and maintainable?
|
|
187
|
+
- Test coverage: Is the reproduction test adequate?
|
|
188
|
+
3. Run full test suite and verify ALL tests pass
|
|
189
|
+
4. Report verdict: PASS / PASS_WITH_WARNINGS / NEEDS_FIXES
|
|
190
|
+
"
|
|
191
|
+
- **Wait for Reviewer to return**
|
|
192
|
+
- If NEEDS_FIXES: return to Phase 3 for refinement (max 2 review rounds)
|
|
193
|
+
- **CP-BF-4**: Code review passes, all tests green
|
|
194
|
+
|
|
195
|
+
{{IF_VERIFICATION_MANUAL_OR_HYBRID}}
|
|
196
|
+
**MANUAL VERIFICATION GATE**:
|
|
197
|
+
- After automated review passes, Pipeline PAUSES here
|
|
198
|
+
- Output: "Bug {{BUG_ID}} fix is ready for manual verification. Please perform UAT checklist from fix-plan.md."
|
|
199
|
+
- Write session-status.json with status="partial", current_phase=4, resume_from_phase=5
|
|
200
|
+
- Set bug status to `verifying` and wait for user confirmation
|
|
201
|
+
{{END_IF_VERIFICATION_MANUAL_OR_HYBRID}}
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
#### Phase 5: Commit & Learn — 提交与知识积累
|
|
206
|
+
|
|
207
|
+
**Goal**: Commit the fix, update TRAPS, generate fix-report.md.
|
|
208
|
+
|
|
209
|
+
- Spawn Dev agent (Task tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
210
|
+
Prompt: "Read {{DEV_SUBAGENT_PATH}}. For bug {{BUG_ID}}:
|
|
211
|
+
1. Run `prizmkit.committer` with:
|
|
212
|
+
- Commit message: `fix({{FIX_SCOPE}}): {{BUG_TITLE}}`
|
|
213
|
+
- Include both fix code and reproduction test
|
|
214
|
+
- Do NOT run `prizmkit.summarize`
|
|
215
|
+
- Do NOT push (user will push manually)
|
|
216
|
+
2. If a new pitfall was discovered (not previously in TRAPS):
|
|
217
|
+
- Update the affected module's TRAPS section in `.prizm-docs/`
|
|
218
|
+
- Format: `- TRAP: <description> | FIX: <solution> | DATE: YYYY-MM-DD`
|
|
219
|
+
3. Write the complete fix report to `.prizmkit/bugfix/{{BUG_ID}}/fix-report.md`
|
|
220
|
+
|
|
221
|
+
The fix-report.md MUST contain these sections:
|
|
222
|
+
- Bug Resolution Summary (ID, title, status, phases completed, duration)
|
|
223
|
+
- What Was Fixed (changes made, diff summary, commit message)
|
|
224
|
+
- Verification Results (reproduction test before/after, regression tests, review verdict)
|
|
225
|
+
- Knowledge Captured (TRAPS updated, prevention recommendation)
|
|
226
|
+
- Acceptance Criteria Verification (checklist with pass/fail for each criterion)
|
|
227
|
+
"
|
|
228
|
+
- **Wait for Dev to return**
|
|
229
|
+
- **CP-BF-5**: Commit recorded, fix-report.md written, TRAPS updated (if applicable)
|
|
230
|
+
|
|
231
|
+
### Step 3: Report Session Status
|
|
232
|
+
|
|
233
|
+
**CRITICAL**: Before this session ends, you MUST write the session status file.
|
|
234
|
+
|
|
235
|
+
Write to: `{{SESSION_STATUS_PATH}}`
|
|
236
|
+
|
|
237
|
+
```json
|
|
238
|
+
{
|
|
239
|
+
"session_id": "{{SESSION_ID}}",
|
|
240
|
+
"bug_id": "{{BUG_ID}}",
|
|
241
|
+
"status": "<success|partial|failed>",
|
|
242
|
+
"completed_phases": [1, 2, 3, 4, 5],
|
|
243
|
+
"current_phase": 5,
|
|
244
|
+
"checkpoint_reached": "CP-BF-5",
|
|
245
|
+
"fast_path": false,
|
|
246
|
+
"errors": [],
|
|
247
|
+
"can_resume": false,
|
|
248
|
+
"resume_from_phase": null,
|
|
249
|
+
"artifacts": {
|
|
250
|
+
"fix_plan_path": ".prizmkit/bugfix/{{BUG_ID}}/fix-plan.md",
|
|
251
|
+
"fix_report_path": ".prizmkit/bugfix/{{BUG_ID}}/fix-report.md"
|
|
252
|
+
},
|
|
253
|
+
"git_commit": "<commit hash>",
|
|
254
|
+
"traps_updated": false,
|
|
255
|
+
"timestamp": "{{TIMESTAMP}}"
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Status values**: `success` (all phases done) | `partial` (can resume) | `failed` (unrecoverable)
|
|
260
|
+
|
|
261
|
+
### Step 4: Team Cleanup (conditional)
|
|
262
|
+
|
|
263
|
+
**Only if you CREATED the team** (`TEAM_REUSED=false`), clean up with `TeamDelete`.
|
|
264
|
+
**If you REUSED an existing team** (`TEAM_REUSED=true`), do NOT call `TeamDelete`.
|
|
265
|
+
|
|
266
|
+
## Critical Paths
|
|
267
|
+
|
|
268
|
+
| Resource | Path |
|
|
269
|
+
|----------|------|
|
|
270
|
+
| Team Definition (source of truth) | `core/team/prizm-dev-team.json` |
|
|
271
|
+
| Team Config (installed) | `{{TEAM_CONFIG_PATH}}` |
|
|
272
|
+
| Bug Fix Artifacts Dir | `.prizmkit/bugfix/{{BUG_ID}}/` |
|
|
273
|
+
| Fix Plan | `.prizmkit/bugfix/{{BUG_ID}}/fix-plan.md` |
|
|
274
|
+
| Fix Report | `.prizmkit/bugfix/{{BUG_ID}}/fix-report.md` |
|
|
275
|
+
| Dev Agent Def | {{DEV_SUBAGENT_PATH}} |
|
|
276
|
+
| Reviewer Agent Def | {{REVIEWER_SUBAGENT_PATH}} |
|
|
277
|
+
| Session Status Output | {{SESSION_STATUS_PATH}} |
|
|
278
|
+
| Project Root | {{PROJECT_ROOT}} |
|
|
279
|
+
|
|
280
|
+
## Reminders
|
|
281
|
+
|
|
282
|
+
- **MANDATORY**: Use `prizm-dev-team` — single-agent execution is FORBIDDEN
|
|
283
|
+
- **Only 2 artifact files per bug**: fix-plan.md + fix-report.md — NEVER more
|
|
284
|
+
- **Do NOT create** spec.md, plan.md, or tasks.md for bug fixes
|
|
285
|
+
- **Do NOT run** `prizmkit.summarize` (no REGISTRY.md entries for bugs)
|
|
286
|
+
- **Commit with** `fix(<scope>):` prefix, NOT `feat:`
|
|
287
|
+
- **Update TRAPS** in `.prizm-docs/` only if a genuinely new pitfall was discovered
|
|
288
|
+
- Dev agents use TDD approach: reproduction test goes from RED → GREEN
|
|
289
|
+
- ALWAYS write session-status.json before exiting
|
|
290
|
+
- Do NOT use `run_in_background=true` when spawning agents
|
|
291
|
+
- Only call `TeamDelete` if you created the team
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Dev-Pipeline Feature List",
|
|
4
|
+
"description": "Schema for .dev-pipeline/feature-list.json",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["$schema", "app_name", "features"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"const": "dev-pipeline-feature-list-v1"
|
|
11
|
+
},
|
|
12
|
+
"app_name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1
|
|
15
|
+
},
|
|
16
|
+
"app_description": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"created_at": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"format": "date-time"
|
|
22
|
+
},
|
|
23
|
+
"created_by": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"source_spec": {
|
|
27
|
+
"type": "string"
|
|
28
|
+
},
|
|
29
|
+
"features": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"minItems": 1,
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["id", "title", "description", "priority", "dependencies", "acceptance_criteria", "status"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"id": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^F-\\d{3}(-[A-Z])?$"
|
|
39
|
+
},
|
|
40
|
+
"title": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"minLength": 1
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"minLength": 1
|
|
47
|
+
},
|
|
48
|
+
"priority": {
|
|
49
|
+
"type": "integer",
|
|
50
|
+
"minimum": 1
|
|
51
|
+
},
|
|
52
|
+
"estimated_complexity": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["low", "medium", "high"]
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"pattern": "^F-\\d{3}(-[A-Z])?$"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"acceptance_criteria": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"minItems": 1,
|
|
66
|
+
"items": {
|
|
67
|
+
"type": "string"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"status": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"enum": ["pending", "in_progress", "completed", "failed", "skipped", "split"]
|
|
73
|
+
},
|
|
74
|
+
"session_granularity": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": ["feature", "sub_feature", "auto"],
|
|
77
|
+
"default": "feature"
|
|
78
|
+
},
|
|
79
|
+
"sub_features": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"items": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"required": ["id", "title", "description"],
|
|
84
|
+
"properties": {
|
|
85
|
+
"id": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"pattern": "^F-\\d{3}-[A-Z]$"
|
|
88
|
+
},
|
|
89
|
+
"title": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1
|
|
92
|
+
},
|
|
93
|
+
"description": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"minLength": 1
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"global_context": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"properties": {
|
|
106
|
+
"tech_stack": { "type": "string" },
|
|
107
|
+
"design_system": { "type": "string" },
|
|
108
|
+
"testing_strategy": { "type": "string" }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Dev-Pipeline Session Status",
|
|
4
|
+
"description": "Schema for session-status.json written by agent at session end",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["session_id", "feature_id", "status", "timestamp"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"session_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"minLength": 1
|
|
11
|
+
},
|
|
12
|
+
"feature_id": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^F-\\d{3}(-[A-Z])?$"
|
|
15
|
+
},
|
|
16
|
+
"status": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["success", "partial", "failed"]
|
|
19
|
+
},
|
|
20
|
+
"completed_phases": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "integer",
|
|
24
|
+
"minimum": 0,
|
|
25
|
+
"maximum": 7
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"current_phase": {
|
|
29
|
+
"type": "integer",
|
|
30
|
+
"minimum": 0,
|
|
31
|
+
"maximum": 7
|
|
32
|
+
},
|
|
33
|
+
"checkpoint_reached": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^CP-[0-3]$"
|
|
36
|
+
},
|
|
37
|
+
"tasks_completed": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"minimum": 0
|
|
40
|
+
},
|
|
41
|
+
"tasks_total": {
|
|
42
|
+
"type": "integer",
|
|
43
|
+
"minimum": 0
|
|
44
|
+
},
|
|
45
|
+
"errors": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": ["message"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"phase": { "type": "integer" },
|
|
52
|
+
"type": { "type": "string" },
|
|
53
|
+
"message": { "type": "string" },
|
|
54
|
+
"recoverable": { "type": "boolean" }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"can_resume": {
|
|
59
|
+
"type": "boolean"
|
|
60
|
+
},
|
|
61
|
+
"resume_from_phase": {
|
|
62
|
+
"type": ["integer", "null"]
|
|
63
|
+
},
|
|
64
|
+
"artifacts": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"properties": {
|
|
67
|
+
"spec_path": { "type": "string" },
|
|
68
|
+
"plan_path": { "type": "string" },
|
|
69
|
+
"tasks_path": { "type": "string" }
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"timestamp": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"format": "date-time"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|