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,262 @@
|
|
|
1
|
+
# Dev-Pipeline Session Bootstrap
|
|
2
|
+
|
|
3
|
+
## Session Context
|
|
4
|
+
|
|
5
|
+
- **Pipeline Run ID**: {{RUN_ID}}
|
|
6
|
+
- **Session ID**: {{SESSION_ID}}
|
|
7
|
+
- **Feature ID**: {{FEATURE_ID}}
|
|
8
|
+
- **Feature Title**: {{FEATURE_TITLE}}
|
|
9
|
+
- **Feature Slug**: {{FEATURE_SLUG}}
|
|
10
|
+
- **Complexity**: {{COMPLEXITY}} (mode: {{PIPELINE_MODE}})
|
|
11
|
+
- **Retry Count**: {{RETRY_COUNT}} / {{MAX_RETRIES}}
|
|
12
|
+
- **Previous Session Status**: {{PREV_SESSION_STATUS}}
|
|
13
|
+
- **Resume From Phase**: {{RESUME_PHASE}}
|
|
14
|
+
- **Init Status**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}} tasks={{HAS_TASKS}}
|
|
15
|
+
|
|
16
|
+
## Your Mission
|
|
17
|
+
|
|
18
|
+
You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATURE_TITLE}}".
|
|
19
|
+
|
|
20
|
+
**CRITICAL SESSION LIFECYCLE RULE**: You are the main session process. 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.
|
|
21
|
+
|
|
22
|
+
**MANDATORY TEAM REQUIREMENT**: You MUST use the `prizm-dev-team` multi-agent team to complete this feature. This is NON-NEGOTIABLE. You are FORBIDDEN from implementing the feature as a single agent — all work MUST be distributed through the prizm-dev-team members (PM, Dev, Reviewer). Specifically:
|
|
23
|
+
1. You MUST ensure a prizm-dev-team is available before starting any phase (see Step 1 below for reuse-or-create logic)
|
|
24
|
+
2. You MUST spawn PM, Dev, and Reviewer agents using the `Task` tool with `team_name` and `subagent_type` parameters
|
|
25
|
+
3. Every implementation, planning, and review phase MUST be executed by the appropriate team agent — NOT by you directly
|
|
26
|
+
4. If you attempt to do the work yourself without spawning team agents, the session is considered FAILED
|
|
27
|
+
|
|
28
|
+
### Team Definition Reference
|
|
29
|
+
|
|
30
|
+
The prizm-dev-team definition is maintained in the project at:
|
|
31
|
+
- **Source of truth**: `core/team/prizm-dev-team.json`
|
|
32
|
+
- **Installed team config (current platform)**: `{{TEAM_CONFIG_PATH}}`
|
|
33
|
+
- CodeBuddy: `~/.codebuddy/teams/prizm-dev-team/config.json` — full team config with members, may support reuse
|
|
34
|
+
- Claude Code: `.claude/team-info.json` — reference only (no native team system; agents are in `.claude/agents/`)
|
|
35
|
+
|
|
36
|
+
When creating a new team, use these files as reference for team member names, roles, agentTypes, and prompts.
|
|
37
|
+
|
|
38
|
+
### Feature Description
|
|
39
|
+
|
|
40
|
+
{{FEATURE_DESCRIPTION}}
|
|
41
|
+
|
|
42
|
+
### Acceptance Criteria
|
|
43
|
+
|
|
44
|
+
{{ACCEPTANCE_CRITERIA}}
|
|
45
|
+
|
|
46
|
+
### Dependencies (Already Completed)
|
|
47
|
+
|
|
48
|
+
{{COMPLETED_DEPENDENCIES}}
|
|
49
|
+
|
|
50
|
+
### App Global Context
|
|
51
|
+
|
|
52
|
+
{{GLOBAL_CONTEXT}}
|
|
53
|
+
|
|
54
|
+
## PrizmKit Directory Convention
|
|
55
|
+
|
|
56
|
+
**ALWAYS** use per-feature subdirectory `.prizmkit/specs/{{FEATURE_SLUG}}/`:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/spec.md
|
|
60
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md
|
|
61
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md
|
|
62
|
+
.prizmkit/specs/REGISTRY.md
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Execution Instructions
|
|
66
|
+
|
|
67
|
+
**YOU are the orchestrator. Do NOT delegate to a Coordinator agent. Execute each phase yourself by spawning the appropriate team agent with run_in_background=false and waiting for its result.**
|
|
68
|
+
|
|
69
|
+
**TEAM ENFORCEMENT**: Every phase below that mentions spawning a PM/Dev/Reviewer agent MUST use the `Task` tool with the active team's `team_name`. You MUST NOT skip the team setup step or attempt to perform PM/Dev/Reviewer work yourself. Violation of this rule constitutes a session failure.
|
|
70
|
+
|
|
71
|
+
### Step 1: Initialize
|
|
72
|
+
|
|
73
|
+
#### Team Setup: Reuse or Create
|
|
74
|
+
|
|
75
|
+
Different AI CLI platforms have different team lifecycle behaviors. Some support reusing an existing team across sessions; others require creating a new team every time.
|
|
76
|
+
|
|
77
|
+
**Follow this logic to determine team availability:**
|
|
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 it exists and is valid (has members with correct agentTypes like `prizm-dev-team-pm`, `prizm-dev-team-dev`, `prizm-dev-team-reviewer`), try to reuse it
|
|
82
|
+
- Set `TEAM_REUSED=true` and record the `team_name` from the config
|
|
83
|
+
|
|
84
|
+
2. **If no reusable team exists, create a new one**:
|
|
85
|
+
- Reference the team definition at `core/team/prizm-dev-team.json` (source of truth for member roles and prompts)
|
|
86
|
+
- Call `TeamCreate` with `team_name="prizm-dev-team-{{FEATURE_ID}}"` and `description="Implementing {{FEATURE_TITLE}}"`
|
|
87
|
+
- Set `TEAM_REUSED=false`
|
|
88
|
+
|
|
89
|
+
3. **Record which path was taken** — this determines whether `TeamDelete` is needed at the end (only delete if you created; do NOT delete a reused team)
|
|
90
|
+
|
|
91
|
+
{{IF_FRESH_START}}
|
|
92
|
+
#### Initialize dev-team directories
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}
|
|
96
|
+
```
|
|
97
|
+
{{END_IF_FRESH_START}}
|
|
98
|
+
|
|
99
|
+
{{IF_RESUME}}
|
|
100
|
+
#### Resume Context
|
|
101
|
+
|
|
102
|
+
This is a **resume** from Phase {{RESUME_PHASE}}. After completing the team setup above:
|
|
103
|
+
1. Read artifacts in `.prizmkit/specs/{{FEATURE_SLUG}}/` (spec.md, plan.md, tasks.md)
|
|
104
|
+
2. Resume the pipeline from Phase {{RESUME_PHASE}} below
|
|
105
|
+
{{END_IF_RESUME}}
|
|
106
|
+
|
|
107
|
+
### Step 2: Pipeline Phases
|
|
108
|
+
|
|
109
|
+
{{IF_INIT_NEEDED}}
|
|
110
|
+
#### Phase 0: Project Bootstrap
|
|
111
|
+
- Run `prizmkit.init` (invoke the prizmkit-init skill)
|
|
112
|
+
- Run `python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
113
|
+
- **CP-0**: Verify `.prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
114
|
+
{{END_IF_INIT_NEEDED}}
|
|
115
|
+
{{IF_INIT_DONE}}
|
|
116
|
+
#### Phase 0: SKIP (already initialized)
|
|
117
|
+
{{END_IF_INIT_DONE}}
|
|
118
|
+
|
|
119
|
+
{{IF_MODE_LITE}}
|
|
120
|
+
#### Phase 1-3: Lightweight Planning (combined)
|
|
121
|
+
- Spawn PM agent (Task tool, subagent_type="prizm-dev-team-pm", run_in_background=false)
|
|
122
|
+
Prompt: "Read {{PM_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}), create a CONCISE implementation plan. Write:
|
|
123
|
+
1. `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` — brief architecture (under 100 lines): key components, data flow, file structure
|
|
124
|
+
2. `.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md` — task checklist with `[ ]` checkboxes, each task = one implementable unit
|
|
125
|
+
Do NOT generate spec.md. Keep it minimal."
|
|
126
|
+
- **Wait for PM to return**
|
|
127
|
+
- **CP-1**: plan.md and tasks.md exist
|
|
128
|
+
|
|
129
|
+
#### Phase 4: SKIP (lite mode)
|
|
130
|
+
{{END_IF_MODE_LITE}}
|
|
131
|
+
|
|
132
|
+
{{IF_MODE_STANDARD}}
|
|
133
|
+
#### Phase 1-3: Specify + Plan + Tasks (combined, one PM session)
|
|
134
|
+
- Spawn PM agent (Task tool, subagent_type="prizm-dev-team-pm", run_in_background=false)
|
|
135
|
+
Prompt: "Read {{PM_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}), complete all three planning steps in this single session:
|
|
136
|
+
1. Run prizmkit-specify → generate `.prizmkit/specs/{{FEATURE_SLUG}}/spec.md` (concise, under 150 lines)
|
|
137
|
+
2. Run prizmkit-plan → generate `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` (architecture, components, interface design, data model, testing strategy — all in one file)
|
|
138
|
+
3. Run prizmkit-tasks → generate `.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md` with `[ ]` checkboxes
|
|
139
|
+
All three files go under `.prizmkit/specs/{{FEATURE_SLUG}}/`."
|
|
140
|
+
- **Wait for PM to return**
|
|
141
|
+
- **CP-1**: spec.md, plan.md, and tasks.md all exist
|
|
142
|
+
|
|
143
|
+
#### Phase 4: Analyze (cross-check)
|
|
144
|
+
- Spawn Reviewer agent (Task tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false)
|
|
145
|
+
Prompt: "Read {{REVIEWER_SUBAGENT_PATH}}. Run prizmkit-analyze for feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}). Cross-check `.prizmkit/specs/{{FEATURE_SLUG}}/spec.md`, `plan.md`, and `tasks.md` for consistency. Report any CRITICAL or HIGH issues."
|
|
146
|
+
- **Wait for Reviewer to return**
|
|
147
|
+
- If CRITICAL issues found: spawn PM to fix, then re-run analyze (max 1 round)
|
|
148
|
+
- **CP-2**: No CRITICAL issues
|
|
149
|
+
{{END_IF_MODE_STANDARD}}
|
|
150
|
+
|
|
151
|
+
{{IF_MODE_FULL}}
|
|
152
|
+
#### Phase 1-3: Specify + Plan + Tasks (combined, one PM session)
|
|
153
|
+
- Spawn PM agent (Task tool, subagent_type="prizm-dev-team-pm", run_in_background=false)
|
|
154
|
+
Prompt: "Read {{PM_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}), complete all three planning steps in this single session:
|
|
155
|
+
1. Run prizmkit-specify → generate `.prizmkit/specs/{{FEATURE_SLUG}}/spec.md`. If there are `[NEEDS CLARIFICATION]` markers, run prizmkit-clarify to resolve them.
|
|
156
|
+
2. Run prizmkit-plan → generate `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` (architecture, components, interface design, data model, testing strategy, risk assessment — all in one file)
|
|
157
|
+
3. Run prizmkit-tasks → generate `.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md` with `[ ]` checkboxes
|
|
158
|
+
All three files go under `.prizmkit/specs/{{FEATURE_SLUG}}/`."
|
|
159
|
+
- **Wait for PM to return**
|
|
160
|
+
- **CP-1**: spec.md, plan.md, and tasks.md all exist
|
|
161
|
+
|
|
162
|
+
#### Phase 4: Analyze (cross-check)
|
|
163
|
+
- Spawn Reviewer agent (Task tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false)
|
|
164
|
+
Prompt: "Read {{REVIEWER_SUBAGENT_PATH}}. Run prizmkit-analyze for feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}). Cross-check `.prizmkit/specs/{{FEATURE_SLUG}}/spec.md`, `plan.md`, and `tasks.md` for consistency. Report any CRITICAL or HIGH issues."
|
|
165
|
+
- **Wait for Reviewer to return**
|
|
166
|
+
- If CRITICAL issues found: spawn PM to fix, then re-run analyze (max 1 round)
|
|
167
|
+
- **CP-2**: No CRITICAL issues
|
|
168
|
+
{{END_IF_MODE_FULL}}
|
|
169
|
+
|
|
170
|
+
#### Phase 5: Schedule & Implement
|
|
171
|
+
- Read tasks from `.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md`
|
|
172
|
+
- Create TaskList entries and assign to Dev agents
|
|
173
|
+
- Spawn Dev agent (Task tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
174
|
+
Prompt: "Read {{DEV_SUBAGENT_PATH}}. Implement all tasks for feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}) using prizmkit-implement with TDD. Read the plan from `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` and tasks from `tasks.md`. Mark completed tasks [x] in tasks.md."
|
|
175
|
+
- **Wait for Dev to return**
|
|
176
|
+
- All tasks marked `[x]`, tests pass
|
|
177
|
+
|
|
178
|
+
#### Phase 6: Review
|
|
179
|
+
- Spawn Reviewer agent (Task tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false)
|
|
180
|
+
Prompt: "Read {{REVIEWER_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
181
|
+
1. Run prizmkit-code-review for spec compliance and code quality
|
|
182
|
+
2. Write and execute integration tests covering all user stories from spec.md
|
|
183
|
+
Report verdict: PASS, PASS_WITH_WARNINGS, or NEEDS_FIXES."
|
|
184
|
+
- **Wait for Reviewer to return**
|
|
185
|
+
- If NEEDS_FIXES: spawn Dev to fix, then re-run Review (max 3 rounds)
|
|
186
|
+
- **CP-3**: Integration tests pass, review verdict is not NEEDS_FIXES
|
|
187
|
+
|
|
188
|
+
#### Phase 7: Summarize & Commit — DO NOT SKIP
|
|
189
|
+
|
|
190
|
+
**IMPORTANT**: Phase 7 is for **new feature** commits only. If this session is a bug fix to an existing feature, skip `prizmkit.summarize` (do NOT create new REGISTRY.md entries for bug fixes — bugs are refinements of incomplete features, not new functionality). Still run `prizmkit.committer` with `fix(<scope>):` prefix.
|
|
191
|
+
|
|
192
|
+
**7a.** Run `prizmkit.summarize` (invoke the prizmkit-summarize skill) → archive to REGISTRY.md
|
|
193
|
+
|
|
194
|
+
**7b.** Run `prizmkit.committer` (invoke the prizmkit-committer skill) → `feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`, do NOT push
|
|
195
|
+
|
|
196
|
+
### Step 3: Report Session Status
|
|
197
|
+
|
|
198
|
+
**CRITICAL**: Before this session ends, you MUST write the session status file.
|
|
199
|
+
|
|
200
|
+
Write to: `{{SESSION_STATUS_PATH}}`
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"session_id": "{{SESSION_ID}}",
|
|
205
|
+
"feature_id": "{{FEATURE_ID}}",
|
|
206
|
+
"feature_slug": "{{FEATURE_SLUG}}",
|
|
207
|
+
"status": "<success|partial|failed>",
|
|
208
|
+
"completed_phases": [0, 1, 2, 3, 4, 5, 6, 7],
|
|
209
|
+
"current_phase": 7,
|
|
210
|
+
"checkpoint_reached": "CP-3",
|
|
211
|
+
"tasks_completed": 12,
|
|
212
|
+
"tasks_total": 12,
|
|
213
|
+
"errors": [],
|
|
214
|
+
"can_resume": false,
|
|
215
|
+
"resume_from_phase": null,
|
|
216
|
+
"artifacts": {
|
|
217
|
+
"spec_path": ".prizmkit/specs/{{FEATURE_SLUG}}/spec.md",
|
|
218
|
+
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md",
|
|
219
|
+
"tasks_path": ".prizmkit/specs/{{FEATURE_SLUG}}/tasks.md"
|
|
220
|
+
},
|
|
221
|
+
"git_commit": "<commit hash if Phase 7 completed>",
|
|
222
|
+
"timestamp": "2026-03-04T10:00:00Z"
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Status values**: `success` (all phases done) | `partial` (can resume) | `failed` (unrecoverable)
|
|
227
|
+
|
|
228
|
+
If you encounter an error, still write session-status.json with status="failed" and error details.
|
|
229
|
+
|
|
230
|
+
### Step 4: Team Cleanup (conditional)
|
|
231
|
+
|
|
232
|
+
**Only if you CREATED the team in Step 1** (i.e. `TEAM_REUSED=false`), clean up:
|
|
233
|
+
```
|
|
234
|
+
TeamDelete
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**If you REUSED an existing team** (i.e. `TEAM_REUSED=true`), do NOT call `TeamDelete` — the team is shared and may be used by other sessions.
|
|
238
|
+
|
|
239
|
+
## Critical Paths
|
|
240
|
+
|
|
241
|
+
| Resource | Path |
|
|
242
|
+
|----------|------|
|
|
243
|
+
| Team Definition (source of truth) | `core/team/prizm-dev-team.json` |
|
|
244
|
+
| Team Config (installed) | `{{TEAM_CONFIG_PATH}}` |
|
|
245
|
+
| Feature Artifacts Dir | `.prizmkit/specs/{{FEATURE_SLUG}}/` |
|
|
246
|
+
| PM Agent Def | {{PM_SUBAGENT_PATH}} |
|
|
247
|
+
| Dev Agent Def | {{DEV_SUBAGENT_PATH}} |
|
|
248
|
+
| Reviewer Agent Def | {{REVIEWER_SUBAGENT_PATH}} |
|
|
249
|
+
| Session Status Output | {{SESSION_STATUS_PATH}} |
|
|
250
|
+
| Project Root | {{PROJECT_ROOT}} |
|
|
251
|
+
|
|
252
|
+
## Reminders
|
|
253
|
+
|
|
254
|
+
- **MANDATORY**: You MUST use `prizm-dev-team` (reuse existing or create new) — single-agent execution is FORBIDDEN
|
|
255
|
+
- **Team definition source**: `core/team/prizm-dev-team.json`; installed at `{{TEAM_CONFIG_PATH}}`
|
|
256
|
+
- **All artifacts go under `.prizmkit/specs/{{FEATURE_SLUG}}/`** — only 3 files: spec.md, plan.md, tasks.md
|
|
257
|
+
- Dev agents use TDD approach
|
|
258
|
+
- Phase 7 (summarize + commit) is MANDATORY
|
|
259
|
+
- ALWAYS write session-status.json before exiting
|
|
260
|
+
- **NEVER exit the session early** — wait for all spawned agents to complete
|
|
261
|
+
- Do NOT use `run_in_background=true` when spawning agents
|
|
262
|
+
- Only call `TeamDelete` if you created the team; do NOT delete a reused team
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Dev-Pipeline Bug Fix List",
|
|
4
|
+
"description": "Schema for bug-fix-list.json — standardized input for the Bug Fix Pipeline",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["$schema", "project_name", "bugs"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"const": "dev-pipeline-bug-fix-list-v1"
|
|
11
|
+
},
|
|
12
|
+
"project_name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1
|
|
15
|
+
},
|
|
16
|
+
"project_description": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"created_at": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"format": "date-time"
|
|
22
|
+
},
|
|
23
|
+
"created_by": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"bugs": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"minItems": 1,
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"required": [
|
|
32
|
+
"id", "title", "description", "severity",
|
|
33
|
+
"error_source", "verification_type",
|
|
34
|
+
"acceptance_criteria", "status"
|
|
35
|
+
],
|
|
36
|
+
"properties": {
|
|
37
|
+
"id": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^B-\\d{3}$",
|
|
40
|
+
"description": "Bug ID, format B-001, B-002..."
|
|
41
|
+
},
|
|
42
|
+
"title": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 1,
|
|
45
|
+
"description": "Bug title — brief description of the symptom"
|
|
46
|
+
},
|
|
47
|
+
"description": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"description": "Detailed bug description: expected vs actual behavior"
|
|
51
|
+
},
|
|
52
|
+
"severity": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
55
|
+
"description": "critical=crash/data-loss; high=core-feature-broken; medium=workaround-exists; low=cosmetic"
|
|
56
|
+
},
|
|
57
|
+
"priority": {
|
|
58
|
+
"type": "integer",
|
|
59
|
+
"minimum": 1,
|
|
60
|
+
"description": "Fix priority (lower = higher priority), determines pipeline processing order"
|
|
61
|
+
},
|
|
62
|
+
"error_source": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"required": ["type"],
|
|
65
|
+
"description": "Structured error source information extracted from various input formats",
|
|
66
|
+
"properties": {
|
|
67
|
+
"type": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"enum": [
|
|
70
|
+
"stack_trace",
|
|
71
|
+
"user_report",
|
|
72
|
+
"failed_test",
|
|
73
|
+
"log_pattern",
|
|
74
|
+
"monitoring_alert"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"stack_trace": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "Error stack trace (when type=stack_trace)"
|
|
80
|
+
},
|
|
81
|
+
"error_message": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "Error message text"
|
|
84
|
+
},
|
|
85
|
+
"log_snippet": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "Relevant log snippet (when type=log_pattern)"
|
|
88
|
+
},
|
|
89
|
+
"failed_test_path": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"description": "Path to failing test file (when type=failed_test)"
|
|
92
|
+
},
|
|
93
|
+
"reproduction_steps": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": { "type": "string" },
|
|
96
|
+
"description": "User-reported reproduction steps (when type=user_report)"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"affected_feature": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"pattern": "^F-\\d{3}(-[A-Z])?$",
|
|
103
|
+
"description": "Related original Feature ID (if any), for TRAPS cross-reference"
|
|
104
|
+
},
|
|
105
|
+
"affected_modules": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"items": { "type": "string" },
|
|
108
|
+
"description": "Known affected module names (optional, triage will auto-detect)"
|
|
109
|
+
},
|
|
110
|
+
"environment": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"description": "Environment where the bug occurs",
|
|
113
|
+
"properties": {
|
|
114
|
+
"os": { "type": "string" },
|
|
115
|
+
"runtime": { "type": "string" },
|
|
116
|
+
"browser": { "type": "string" },
|
|
117
|
+
"version": { "type": "string" }
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"verification_type": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"enum": ["automated", "manual", "hybrid"],
|
|
123
|
+
"description": "automated=unit/integration-test; manual=human-UAT; hybrid=both"
|
|
124
|
+
},
|
|
125
|
+
"acceptance_criteria": {
|
|
126
|
+
"type": "array",
|
|
127
|
+
"minItems": 1,
|
|
128
|
+
"items": { "type": "string" },
|
|
129
|
+
"description": "Conditions that must be met for the bug to be considered fixed"
|
|
130
|
+
},
|
|
131
|
+
"status": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"enum": [
|
|
134
|
+
"pending",
|
|
135
|
+
"triaging",
|
|
136
|
+
"reproducing",
|
|
137
|
+
"fixing",
|
|
138
|
+
"verifying",
|
|
139
|
+
"completed",
|
|
140
|
+
"failed",
|
|
141
|
+
"needs_info",
|
|
142
|
+
"skipped"
|
|
143
|
+
],
|
|
144
|
+
"description": "Bug fix status, maps to pipeline phases"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"global_context": {
|
|
150
|
+
"type": "object",
|
|
151
|
+
"description": "Global context for all bug fixes in this batch",
|
|
152
|
+
"properties": {
|
|
153
|
+
"tech_stack": { "type": "string" },
|
|
154
|
+
"testing_framework": { "type": "string" },
|
|
155
|
+
"ci_pipeline": { "type": "string" }
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|