prizmkit 1.0.58 → 1.0.67
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/claude/command-adapter.js +1 -2
- package/bundled/dev-pipeline/README.md +4 -5
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +23 -17
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +17 -4
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +8 -11
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +12 -16
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +24 -41
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +26 -38
- package/bundled/dev-pipeline/templates/session-status-schema.json +1 -1
- package/bundled/dev-pipeline/tests/conftest.py +15 -10
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +168 -0
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/bug-fix-workflow/SKILL.md +5 -8
- package/bundled/skills/bug-planner/SKILL.md +5 -1
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +156 -0
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +3 -3
- package/bundled/skills/dev-pipeline-launcher/SKILL.md +1 -1
- package/bundled/skills/prizm-kit/SKILL.md +9 -7
- package/bundled/skills/prizm-kit/assets/project-memory-template.md +1 -1
- package/bundled/skills/prizmkit-analyze/SKILL.md +4 -5
- package/bundled/skills/prizmkit-code-review/SKILL.md +10 -2
- package/bundled/skills/prizmkit-committer/SKILL.md +1 -1
- package/bundled/skills/prizmkit-implement/SKILL.md +13 -3
- package/bundled/skills/prizmkit-plan/SKILL.md +17 -6
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +15 -1
- package/bundled/skills/prizmkit-retrospective/SKILL.md +1 -1
- package/bundled/skills/prizmkit-specify/SKILL.md +8 -4
- package/bundled/skills/refactor-workflow/SKILL.md +14 -6
- package/bundled/team/prizm-dev-team.json +1 -1
- package/package.json +1 -1
- package/src/scaffold.js +1 -1
package/bundled/VERSION.json
CHANGED
|
@@ -56,7 +56,6 @@ export function convertSkillToCommand(skillContent, skillName) {
|
|
|
56
56
|
const { frontmatter, body } = parseFrontmatter(skillContent);
|
|
57
57
|
|
|
58
58
|
// Claude Code command frontmatter only uses description
|
|
59
|
-
// Also convert any remaining prizmkit.xxx references in the description field (legacy fallback)
|
|
60
59
|
let desc = frontmatter.description || `PrizmKit ${skillName} command`;
|
|
61
60
|
desc = desc.replace(/prizmkit\.(\w+)/g, (_m, sub) => `/${toClaudePrizmkitCommand(sub)}`);
|
|
62
61
|
|
|
@@ -74,7 +73,7 @@ export function convertSkillToCommand(skillContent, skillName) {
|
|
|
74
73
|
`.claude/command-assets/${skillName}`
|
|
75
74
|
);
|
|
76
75
|
|
|
77
|
-
// Replace "invoke the X skill" or "prizmkit
|
|
76
|
+
// Replace "invoke the X skill" or "/prizmkit-X" patterns with /X slash command (legacy fallback)
|
|
78
77
|
convertedBody = convertedBody.replace(
|
|
79
78
|
/invoke\s+(?:the\s+)?[`"]?(\w[\w-]*)[`"]?\s+skill/gi,
|
|
80
79
|
'run the `/$1` command'
|
|
@@ -85,7 +85,7 @@ When a feature is stuck (e.g. retry count exceeded, bad artifacts), use `reset-f
|
|
|
85
85
|
|
|
86
86
|
What gets cleaned with `--clean`:
|
|
87
87
|
- `state/features/F-XXX/sessions/` — all session logs and prompts
|
|
88
|
-
- `.prizmkit/specs/{feature-slug}/` — spec.md, plan.md
|
|
88
|
+
- `.prizmkit/specs/{feature-slug}/` — spec.md, plan.md (with Tasks section), contracts/
|
|
89
89
|
|
|
90
90
|
What is always reset (with or without `--clean`):
|
|
91
91
|
- `status.json` — status → pending, retry_count → 0
|
|
@@ -389,8 +389,7 @@ Each feature generates artifacts in a dedicated subdirectory under `.prizmkit/sp
|
|
|
389
389
|
│ │ └── requirements.md # Phase 1: Spec quality checklist
|
|
390
390
|
│ ├── plan.md # Phase 2: Implementation plan
|
|
391
391
|
│ ├── data-model.md # Phase 2: Data model (if applicable)
|
|
392
|
-
│
|
|
393
|
-
│ └── tasks.md # Phase 3: Task breakdown
|
|
392
|
+
│ └── contracts/ # Phase 2: API contracts (if applicable)
|
|
394
393
|
├── 002-core-encryption-vault/
|
|
395
394
|
│ └── ...
|
|
396
395
|
└── ...
|
|
@@ -437,7 +436,7 @@ The AI CLI session exited without producing a `session-status.json`. This typica
|
|
|
437
436
|
|
|
438
437
|
### .prizmkit/specs/ is empty after feature completion
|
|
439
438
|
|
|
440
|
-
The session skipped the PrizmKit artifact generation phases (spec.md, plan.md
|
|
439
|
+
The session skipped the PrizmKit artifact generation phases (spec.md, plan.md). This can happen if:
|
|
441
440
|
|
|
442
441
|
1. **Agent definitions not found**: Check that agent definition files exist
|
|
443
442
|
- CodeBuddy: `.codebuddy/agents/prizm-dev-team-*.md`
|
|
@@ -573,7 +572,7 @@ dev-pipeline/bugfix-state/ # Runtime state (gitignored)
|
|
|
573
572
|
| Ordering | Dependencies DAG → priority | N/A (single refactor per session) | Severity → priority (no dependencies) |
|
|
574
573
|
| Phases | 10-phase (specify → plan → tasks → implement → review) | 6-phase (analyze → plan → tasks → implement → review → commit) | 5-phase (triage → reproduce → fix → verify → commit) |
|
|
575
574
|
| Agents | Orchestrator + Dev + Reviewer | Dev + Reviewer only | Dev + Reviewer only |
|
|
576
|
-
| Artifacts | spec.md, plan.md
|
|
575
|
+
| Artifacts | spec.md, plan.md (with Tasks section) | refactor-analysis.md, plan.md (with Tasks section) | fix-plan.md, fix-report.md only |
|
|
577
576
|
| Commit prefix | `feat(<scope>):` | `refactor(<scope>):` | `fix(<scope>):` |
|
|
578
577
|
| Scope Guard | N/A | ✅ (behavior change → STOP) | N/A |
|
|
579
578
|
| Test Strategy | TDD per task | Full suite after EVERY task | Reproduction test |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
dev-pipeline drives the prizm-dev-team multi-agent team through an outer shell loop. Each iteration spawns a new
|
|
5
|
+
dev-pipeline drives the prizm-dev-team multi-agent team through an outer shell loop. Each iteration spawns a new AI CLI session with a bootstrap prompt that instructs the agent to create and orchestrate the team for one feature.
|
|
6
6
|
|
|
7
7
|
## Architecture
|
|
8
8
|
|
|
@@ -16,11 +16,11 @@ dev-pipeline (outer loop)
|
|
|
16
16
|
└── [per session] AI CLI
|
|
17
17
|
│
|
|
18
18
|
├── Phase 0: Init (Orchestrator)
|
|
19
|
-
├── Phase 1-2: Context snapshot +
|
|
20
|
-
├── Phase 3
|
|
21
|
-
├── Phase
|
|
22
|
-
├── Phase 6: Review (Reviewer agent)
|
|
23
|
-
└── Phase 7: Retrospective & Commit (Orchestrator)
|
|
19
|
+
├── Phase 1-2: Context snapshot + Specify + Plan (Orchestrator)
|
|
20
|
+
├── Phase 3: Analyze (Reviewer agent) [tier2] / Phase 4: Analyze [tier3]
|
|
21
|
+
├── Phase 4: Implement (Dev agent) [tier2] / Phase 5: Implement [tier3]
|
|
22
|
+
├── Phase 4.5/6: Review (Reviewer agent)
|
|
23
|
+
└── Phase 5/7: Retrospective & Commit (Orchestrator)
|
|
24
24
|
│
|
|
25
25
|
└── Write session-status.json → exit
|
|
26
26
|
```
|
|
@@ -34,17 +34,24 @@ dev-pipeline (outer loop)
|
|
|
34
34
|
|
|
35
35
|
Note: The Orchestrator role is handled by the main agent (session orchestrator) directly — no separate agent definition needed.
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Pipeline Scripts
|
|
38
38
|
|
|
39
39
|
Located at `dev-pipeline/scripts/`:
|
|
40
40
|
|
|
41
|
-
| Script |
|
|
42
|
-
|
|
43
|
-
| `init-dev-team.py` |
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
41
|
+
| Script | Purpose |
|
|
42
|
+
|--------|---------|
|
|
43
|
+
| `init-dev-team.py` | Initialize `.dev-team/` + `.prizmkit/` directories |
|
|
44
|
+
| `init-pipeline.py` | Initialize pipeline state directories and config |
|
|
45
|
+
| `init-bugfix-pipeline.py` | Initialize bugfix pipeline state |
|
|
46
|
+
| `generate-bootstrap-prompt.py` | Render tier-specific bootstrap prompt with feature context |
|
|
47
|
+
| `generate-bugfix-prompt.py` | Render bugfix bootstrap prompt with bug context |
|
|
48
|
+
| `update-feature-status.py` | Update feature status in feature-list.json after session |
|
|
49
|
+
| `update-bug-status.py` | Update bug status in bug-fix-list.json after session |
|
|
50
|
+
| `check-session-status.py` | Read and validate session-status.json output |
|
|
51
|
+
| `detect-stuck.py` | Detect stuck/hung pipeline sessions via heartbeat |
|
|
52
|
+
| `parse-stream-progress.py` | Parse AI CLI output stream for progress tracking |
|
|
53
|
+
| `cleanup-logs.py` | Clean up old pipeline logs and state files |
|
|
54
|
+
| `utils.py` | Shared utility functions for pipeline scripts |
|
|
48
55
|
|
|
49
56
|
## Artifact Mapping
|
|
50
57
|
|
|
@@ -54,7 +61,7 @@ Located at `dev-pipeline/scripts/`:
|
|
|
54
61
|
|-------|------|---------|
|
|
55
62
|
| 1 | `specs/spec.md` | Feature specification (WHAT/WHY) |
|
|
56
63
|
| 2 | `plans/plan.md` | Technical plan (architecture, API, tests) |
|
|
57
|
-
| 3 | `tasks/tasks.md` | Executable task list with `[ ]` / `[x]` |
|
|
64
|
+
| 3 | `tasks/tasks.md` | Executable task list with `[ ]` / `[x]` (legacy — now part of plan.md Tasks section) |
|
|
58
65
|
| 4 | `analysis/analyze-report.md` | Consistency analysis |
|
|
59
66
|
|
|
60
67
|
### Dev-Team Artifacts (.dev-team/)
|
|
@@ -102,8 +109,7 @@ The agent MUST write `session-status.json` before exiting:
|
|
|
102
109
|
"resume_from_phase": null,
|
|
103
110
|
"artifacts": {
|
|
104
111
|
"spec_path": ".prizmkit/specs/spec.md",
|
|
105
|
-
"plan_path": ".prizmkit/plans/plan.md"
|
|
106
|
-
"tasks_path": ".prizmkit/tasks/tasks.md"
|
|
112
|
+
"plan_path": ".prizmkit/plans/plan.md"
|
|
107
113
|
},
|
|
108
114
|
"timestamp": "2026-03-04T11:30:00Z"
|
|
109
115
|
}
|
|
@@ -344,16 +344,16 @@ def detect_init_status(project_root):
|
|
|
344
344
|
def detect_existing_artifacts(project_root, feature_slug):
|
|
345
345
|
"""Check which planning artifacts already exist for this feature.
|
|
346
346
|
|
|
347
|
-
Returns a dict with keys: has_spec, has_plan,
|
|
347
|
+
Returns a dict with keys: has_spec, has_plan, all_complete.
|
|
348
|
+
Tasks are now part of plan.md (Tasks section), not a separate file.
|
|
348
349
|
"""
|
|
349
350
|
specs_dir = os.path.join(project_root, ".prizmkit", "specs", feature_slug)
|
|
350
351
|
result = {
|
|
351
352
|
"has_spec": os.path.isfile(os.path.join(specs_dir, "spec.md")),
|
|
352
353
|
"has_plan": os.path.isfile(os.path.join(specs_dir, "plan.md")),
|
|
353
|
-
"has_tasks": os.path.isfile(os.path.join(specs_dir, "tasks.md")),
|
|
354
354
|
}
|
|
355
355
|
result["all_complete"] = all([
|
|
356
|
-
result["has_spec"], result["has_plan"]
|
|
356
|
+
result["has_spec"], result["has_plan"]
|
|
357
357
|
])
|
|
358
358
|
return result
|
|
359
359
|
|
|
@@ -414,6 +414,20 @@ def build_replacements(args, feature, features, global_context, script_dir):
|
|
|
414
414
|
reviewer_subagent = os.path.join(
|
|
415
415
|
agents_dir, "prizm-dev-team-reviewer.md",
|
|
416
416
|
)
|
|
417
|
+
|
|
418
|
+
# Verify agent files actually exist — missing files cause confusing
|
|
419
|
+
# errors when the AI session tries to read them later.
|
|
420
|
+
for agent_path, agent_name in [
|
|
421
|
+
(dev_subagent, "dev agent"),
|
|
422
|
+
(reviewer_subagent, "reviewer agent"),
|
|
423
|
+
]:
|
|
424
|
+
if not os.path.isfile(agent_path):
|
|
425
|
+
LOGGER.warning(
|
|
426
|
+
"Agent file not found: %s (%s). "
|
|
427
|
+
"Subagent spawning may fail. "
|
|
428
|
+
"Run `npx prizmkit install` to reinstall agent definitions.",
|
|
429
|
+
agent_path, agent_name,
|
|
430
|
+
)
|
|
417
431
|
# Validator scripts - check if they exist in .codebuddy/scripts/, otherwise use dev-pipeline/scripts/
|
|
418
432
|
validator_scripts_dir = os.path.join(project_root, "dev-pipeline", "scripts")
|
|
419
433
|
init_script_path = os.path.join(validator_scripts_dir, "init-dev-team.py")
|
|
@@ -481,7 +495,6 @@ def build_replacements(args, feature, features, global_context, script_dir):
|
|
|
481
495
|
"{{INIT_DONE}}": "true" if init_done else "false",
|
|
482
496
|
"{{HAS_SPEC}}": "true" if artifacts["has_spec"] else "false",
|
|
483
497
|
"{{HAS_PLAN}}": "true" if artifacts["has_plan"] else "false",
|
|
484
|
-
"{{HAS_TASKS}}": "true" if artifacts["has_tasks"] else "false",
|
|
485
498
|
"{{ARTIFACTS_COMPLETE}}": "true" if artifacts["all_complete"] else "false",
|
|
486
499
|
"{{IS_SELF_EVOLVE}}": "true" if is_self_evolve else "false",
|
|
487
500
|
}
|
|
@@ -28,7 +28,7 @@ from datetime import datetime, timezone
|
|
|
28
28
|
# Phase keywords for detection
|
|
29
29
|
PHASE_KEYWORDS = {
|
|
30
30
|
"specify": ["prizmkit-specify", "spec.md", "specification", "gathering requirements"],
|
|
31
|
-
"plan": ["prizmkit-plan", "plan.md", "architecture", "design plan", "task checklist", "task breakdown"
|
|
31
|
+
"plan": ["prizmkit-plan", "plan.md", "architecture", "design plan", "task checklist", "task breakdown"],
|
|
32
32
|
"analyze": ["prizmkit-analyze", "cross-check", "consistency", "analyzing"],
|
|
33
33
|
"implement": ["prizmkit-implement", "implement", "TDD", "coding", "writing code"],
|
|
34
34
|
"code-review": ["prizmkit-code-review", "code review", "review verdict", "reviewing"],
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
- **Feature ID**: {{FEATURE_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
|
|
6
6
|
- **Complexity**: {{COMPLEXITY}} | **Retry**: {{RETRY_COUNT}} / {{MAX_RETRIES}}
|
|
7
7
|
- **Previous Status**: {{PREV_SESSION_STATUS}} | **Resume From**: {{RESUME_PHASE}}
|
|
8
|
-
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
8
|
+
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
9
9
|
|
|
10
10
|
## Your Mission
|
|
11
11
|
|
|
@@ -35,8 +35,7 @@ You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATU
|
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md
|
|
38
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md
|
|
39
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md
|
|
38
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md ← includes Tasks section
|
|
40
39
|
```
|
|
41
40
|
|
|
42
41
|
---
|
|
@@ -80,19 +79,18 @@ If MISSING — build it now:
|
|
|
80
79
|
ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null
|
|
81
80
|
```
|
|
82
81
|
|
|
83
|
-
If plan.md
|
|
84
|
-
- `plan.md`: key components, data flow, files to create/modify (under 80 lines
|
|
85
|
-
- `tasks.md`: checklist with `[ ]` checkboxes, each task = one implementable unit
|
|
82
|
+
If plan.md missing, write it directly:
|
|
83
|
+
- `plan.md`: key components, data flow, files to create/modify, and a Tasks section with `[ ]` checkboxes (each task = one implementable unit). Keep under 80 lines.
|
|
86
84
|
|
|
87
|
-
**CP-1**: plan.md
|
|
85
|
+
**CP-1**: plan.md exists with Tasks section.
|
|
88
86
|
|
|
89
87
|
### Phase 3: Implement
|
|
90
88
|
|
|
91
|
-
For each task in
|
|
89
|
+
For each task in plan.md Tasks section:
|
|
92
90
|
1. Read the relevant section from `context-snapshot.md` (no need to re-read individual files)
|
|
93
91
|
2. Write/edit the code
|
|
94
92
|
3. Run tests after each task
|
|
95
|
-
|
|
93
|
+
3. Mark task `[x]` in plan.md Tasks section immediately
|
|
96
94
|
|
|
97
95
|
After all tasks complete, append to `context-snapshot.md`:
|
|
98
96
|
```
|
|
@@ -150,8 +148,7 @@ Write to: `{{SESSION_STATUS_PATH}}`
|
|
|
150
148
|
"retrospective_done": true,
|
|
151
149
|
"artifacts": {
|
|
152
150
|
"context_snapshot_path": ".prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md",
|
|
153
|
-
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
154
|
-
"tasks_path": ".prizmkit/specs/{{FEATURE_SLUG}}/tasks.md"
|
|
151
|
+
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
155
152
|
},
|
|
156
153
|
"git_commit": "<commit hash>",
|
|
157
154
|
"timestamp": "2026-03-04T10:00:00Z"
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
- **Feature ID**: {{FEATURE_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
|
|
6
6
|
- **Complexity**: {{COMPLEXITY}} | **Retry**: {{RETRY_COUNT}} / {{MAX_RETRIES}}
|
|
7
7
|
- **Previous Status**: {{PREV_SESSION_STATUS}} | **Resume From**: {{RESUME_PHASE}}
|
|
8
|
-
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
8
|
+
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
9
9
|
|
|
10
10
|
## Your Mission
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATU
|
|
|
13
13
|
|
|
14
14
|
**CRITICAL**: You MUST NOT exit until ALL work is complete and session-status.json is written. When you spawn subagents, wait for each to finish (run_in_background=false).
|
|
15
15
|
|
|
16
|
-
**Tier 2 — Dual Agent**: You handle context + planning directly. Then spawn Dev and Reviewer subagents.
|
|
16
|
+
**Tier 2 — Dual Agent**: You handle context + planning directly. Then spawn Dev and Reviewer subagents. Spawn Dev and Reviewer agents via the Agent tool.
|
|
17
17
|
|
|
18
18
|
### Feature Description
|
|
19
19
|
|
|
@@ -35,8 +35,7 @@ You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATU
|
|
|
35
35
|
|
|
36
36
|
```
|
|
37
37
|
.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md ← written by you, read by Dev + Reviewer
|
|
38
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md
|
|
39
|
-
.prizmkit/specs/{{FEATURE_SLUG}}/tasks.md
|
|
38
|
+
.prizmkit/specs/{{FEATURE_SLUG}}/plan.md ← includes Tasks section
|
|
40
39
|
```
|
|
41
40
|
|
|
42
41
|
**`context-snapshot.md`** is the shared knowledge base. You write it once; Dev and Reviewer read it instead of re-scanning individual files.
|
|
@@ -88,25 +87,23 @@ If MISSING — build it now:
|
|
|
88
87
|
### Phase 2: Plan & Tasks (you, the orchestrator)
|
|
89
88
|
|
|
90
89
|
```bash
|
|
91
|
-
ls .prizmkit/specs/{{FEATURE_SLUG}}/plan.md
|
|
90
|
+
ls .prizmkit/specs/{{FEATURE_SLUG}}/plan.md 2>/dev/null
|
|
92
91
|
```
|
|
93
92
|
|
|
94
93
|
If either missing, write them yourself:
|
|
95
|
-
- `plan.md`: architecture — components, interfaces, data flow, files to create/modify, testing approach
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
**CP-1**: plan.md and tasks.md exist.
|
|
94
|
+
- `plan.md`: architecture — components, interfaces, data flow, files to create/modify, testing approach, and a Tasks section with `[ ]` checkboxes ordered by dependency
|
|
95
|
+
**CP-1**: plan.md exists with Tasks section.
|
|
99
96
|
|
|
100
97
|
### Phase 3: Implement — Dev Subagent
|
|
101
98
|
|
|
102
|
-
Spawn Dev subagent (
|
|
99
|
+
Spawn Dev subagent (Agent tool, subagent_type="prizm-dev-team-dev", run_in_background=false).
|
|
103
100
|
|
|
104
101
|
Prompt:
|
|
105
102
|
> "Read {{DEV_SUBAGENT_PATH}}. Implement feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}).
|
|
106
103
|
>
|
|
107
104
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — all project context, source files, and tests are embedded there. Do NOT re-read individual source files.
|
|
108
|
-
> 2. Read `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md`
|
|
109
|
-
> 3. Implement task-by-task using TDD. Mark each task `[x]` in
|
|
105
|
+
> 2. Read `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` (including Tasks section).
|
|
106
|
+
> 3. Implement task-by-task using TDD. Mark each task `[x]` in plan.md Tasks section immediately after completion.
|
|
110
107
|
> 4. After ALL tasks complete, append an 'Implementation Log' section to `context-snapshot.md`:
|
|
111
108
|
> - Files created/modified (with paths)
|
|
112
109
|
> - Key implementation decisions
|
|
@@ -117,7 +114,7 @@ Wait for Dev to return. All tasks must be `[x]`, tests pass.
|
|
|
117
114
|
|
|
118
115
|
### Phase 4: Review — Reviewer Subagent
|
|
119
116
|
|
|
120
|
-
Spawn Reviewer subagent (
|
|
117
|
+
Spawn Reviewer subagent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
|
|
121
118
|
|
|
122
119
|
Prompt:
|
|
123
120
|
> "Read {{REVIEWER_SUBAGENT_PATH}}. Review feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}).
|
|
@@ -177,8 +174,7 @@ Write to: `{{SESSION_STATUS_PATH}}`
|
|
|
177
174
|
"retrospective_done": true,
|
|
178
175
|
"artifacts": {
|
|
179
176
|
"context_snapshot_path": ".prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md",
|
|
180
|
-
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
181
|
-
"tasks_path": ".prizmkit/specs/{{FEATURE_SLUG}}/tasks.md"
|
|
177
|
+
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
182
178
|
},
|
|
183
179
|
"git_commit": "<commit hash>",
|
|
184
180
|
"timestamp": "2026-03-04T10:00:00Z"
|
|
@@ -215,7 +211,7 @@ Re-check `git status --short` and ensure it is empty before exiting.
|
|
|
215
211
|
|
|
216
212
|
## Reminders
|
|
217
213
|
|
|
218
|
-
- Tier 2: orchestrator builds context+plan, Dev implements, Reviewer reviews — use direct
|
|
214
|
+
- Tier 2: orchestrator builds context+plan, Dev implements, Reviewer reviews — use direct Agent spawn for agents
|
|
219
215
|
- Build context-snapshot.md FIRST; all subagents read it instead of re-reading source files
|
|
220
216
|
- Do NOT use `run_in_background=true` when spawning subagents
|
|
221
217
|
- ALWAYS write session-status.json before exiting
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
- **Feature ID**: {{FEATURE_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
|
|
6
6
|
- **Complexity**: {{COMPLEXITY}} | **Retry**: {{RETRY_COUNT}} / {{MAX_RETRIES}}
|
|
7
7
|
- **Previous Status**: {{PREV_SESSION_STATUS}} | **Resume From**: {{RESUME_PHASE}}
|
|
8
|
-
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
8
|
+
- **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
|
|
9
9
|
|
|
10
10
|
## Your Mission
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATU
|
|
|
13
13
|
|
|
14
14
|
**CRITICAL**: You MUST NOT exit until ALL work is complete and session-status.json is written. When you spawn subagents, wait for each to finish (run_in_background=false). Do NOT spawn agents in background and exit — that kills the session.
|
|
15
15
|
|
|
16
|
-
**Tier 3 — Full Team**: For complex features,
|
|
16
|
+
**Tier 3 — Full Team**: For complex features, use the full pipeline (Phase 0–6) with Dev + Reviewer agents spawned via the Agent tool.
|
|
17
17
|
|
|
18
18
|
### Feature Description
|
|
19
19
|
|
|
@@ -116,9 +116,7 @@ $TEST_CMD 2>&1 | tail -20
|
|
|
116
116
|
Save the list of **pre-existing failing tests** (if any) as `BASELINE_FAILURES`. These are known failures that existed before this session — Dev must NOT be blamed for them, but must list them in COMPLETION_SIGNAL.
|
|
117
117
|
{{END_IF_INIT_DONE}}
|
|
118
118
|
|
|
119
|
-
### Step 1:
|
|
120
|
-
|
|
121
|
-
Create a coordinated agent team for this feature session:
|
|
119
|
+
### Step 1: Initialize
|
|
122
120
|
|
|
123
121
|
1. Run init script:
|
|
124
122
|
`python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
@@ -126,15 +124,6 @@ Create a coordinated agent team for this feature session:
|
|
|
126
124
|
2. Check for existing artifacts:
|
|
127
125
|
`ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null`
|
|
128
126
|
|
|
129
|
-
3. Create the agent team:
|
|
130
|
-
- Call `TeamCreate` with `team_name="prizm-dev-team-{{FEATURE_ID}}"` and `description="Implementing {{FEATURE_TITLE}}"`
|
|
131
|
-
- Reference team config at `{{TEAM_CONFIG_PATH}}` for agent definitions
|
|
132
|
-
- Spawn Dev and Reviewer agents as team members
|
|
133
|
-
|
|
134
|
-
Agent files are at:
|
|
135
|
-
- Dev: `{{DEV_SUBAGENT_PATH}}`
|
|
136
|
-
- Reviewer: `{{REVIEWER_SUBAGENT_PATH}}`
|
|
137
|
-
|
|
138
127
|
{{IF_FRESH_START}}
|
|
139
128
|
```bash
|
|
140
129
|
python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}
|
|
@@ -193,32 +182,32 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/spec.md .prizmkit/specs/{{FEATURE_SLUG}}/pla
|
|
|
193
182
|
|
|
194
183
|
**CP-1**: Both spec.md and plan.md exist.
|
|
195
184
|
|
|
196
|
-
### Phase
|
|
185
|
+
### Phase 3: Analyze — Reviewer Agent
|
|
197
186
|
|
|
198
|
-
Spawn Reviewer agent (
|
|
187
|
+
Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
|
|
199
188
|
|
|
200
189
|
Prompt:
|
|
201
190
|
> "Read {{REVIEWER_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
202
191
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — all source files and project context are there. Do NOT re-read individual source files.
|
|
203
|
-
> 2. Run prizmkit-analyze: cross-check `spec.md
|
|
192
|
+
> 2. Run prizmkit-analyze: cross-check `spec.md` and `plan.md` (including Tasks section) for consistency.
|
|
204
193
|
> 3. Before flagging CRITICAL or HIGH issues, verify each against Section 4 of the snapshot. Do NOT report based on incomplete information.
|
|
205
194
|
> Report: CRITICAL, HIGH, MEDIUM issues found (or 'No issues found')."
|
|
206
195
|
|
|
207
196
|
Wait for Reviewer to return.
|
|
208
|
-
- If CRITICAL issues found: fix them yourself — read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` for full project context. Fix ONLY the listed CRITICAL issues in spec.md/plan.md
|
|
197
|
+
- If CRITICAL issues found: fix them yourself — read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` for full project context. Fix ONLY the listed CRITICAL issues in spec.md/plan.md. Then re-run analyze (max 1 round).
|
|
209
198
|
|
|
210
199
|
**CP-2**: No CRITICAL issues.
|
|
211
200
|
|
|
212
|
-
### Phase
|
|
201
|
+
### Phase 4: Implement — Dev Agent
|
|
213
202
|
|
|
214
|
-
Before spawning Dev, check
|
|
203
|
+
Before spawning Dev, check plan.md Tasks section:
|
|
215
204
|
```bash
|
|
216
|
-
grep -c '^\- \[ \]' .prizmkit/specs/{{FEATURE_SLUG}}/
|
|
205
|
+
grep -c '^\- \[ \]' .prizmkit/specs/{{FEATURE_SLUG}}/plan.md 2>/dev/null || echo 0
|
|
217
206
|
```
|
|
218
|
-
- If result is `0` (all tasks already `[x]`) → **SKIP Phase
|
|
207
|
+
- If result is `0` (all tasks already `[x]`) → **SKIP Phase 4**, go directly to Phase 5. Do NOT spawn Dev.
|
|
219
208
|
- If result is non-zero → spawn Dev agent below.
|
|
220
209
|
|
|
221
|
-
Spawn Dev agent (
|
|
210
|
+
Spawn Dev agent (Agent tool, subagent_type="prizm-dev-team-dev", run_in_background=false).
|
|
222
211
|
|
|
223
212
|
{{IF_MODE_SELF_EVOLVE}}
|
|
224
213
|
**Framework Self-Evolve — Dev Extra Instructions**:
|
|
@@ -234,8 +223,8 @@ Append the following to the Dev agent prompt:
|
|
|
234
223
|
Prompt:
|
|
235
224
|
> "Read {{DEV_SUBAGENT_PATH}}. Implement feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}) using TDD.
|
|
236
225
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — all source files and context are there. Do NOT re-read individual source files.
|
|
237
|
-
> 2. Read `plan.md`
|
|
238
|
-
> 3. Implement task-by-task. Mark each `[x]` in
|
|
226
|
+
> 2. Read `plan.md` (including Tasks section) from `.prizmkit/specs/{{FEATURE_SLUG}}/`.
|
|
227
|
+
> 3. Implement task-by-task. Mark each `[x]` in plan.md Tasks section **immediately** after completion (do NOT batch).
|
|
239
228
|
> 4. Use `TEST_CMD=<TEST_CMD>` to run tests — do NOT explore alternative test commands.
|
|
240
229
|
> 5. After ALL tasks done, append 'Implementation Log' to context-snapshot.md: files changed/created, key decisions, deviations from plan.
|
|
241
230
|
> 6. Do NOT execute any git commands (no git add/commit/reset/push).
|
|
@@ -243,11 +232,11 @@ Prompt:
|
|
|
243
232
|
> Do NOT exit until all tasks are [x] and the Implementation Log is written."
|
|
244
233
|
|
|
245
234
|
Wait for Dev to return. **If Dev times out before all tasks are `[x]`**:
|
|
246
|
-
1. Check progress: `grep -c '^\- \[ \]' .prizmkit/specs/{{FEATURE_SLUG}}/
|
|
235
|
+
1. Check progress: `grep -c '^\- \[ \]' .prizmkit/specs/{{FEATURE_SLUG}}/plan.md`
|
|
247
236
|
2. If any tasks remain: re-spawn Dev with this recovery prompt:
|
|
248
237
|
> "Read {{DEV_SUBAGENT_PATH}}. You are resuming implementation of feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}).
|
|
249
238
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` — Section 4 has original source, 'Implementation Log' (if present) has what was already done. Do NOT re-read individual source files.
|
|
250
|
-
> 2. Read
|
|
239
|
+
> 2. Read plan.md Tasks section — complete ONLY the remaining `[ ]` tasks. Do NOT redo completed `[x]` tasks.
|
|
251
240
|
> 3. Use `TEST_CMD=<TEST_CMD>` to run tests.
|
|
252
241
|
> 4. Append progress to 'Implementation Log' in context-snapshot.md.
|
|
253
242
|
> 5. Do NOT execute any git commands."
|
|
@@ -255,9 +244,9 @@ Wait for Dev to return. **If Dev times out before all tasks are `[x]`**:
|
|
|
255
244
|
|
|
256
245
|
All tasks `[x]`, tests pass.
|
|
257
246
|
|
|
258
|
-
### Phase
|
|
247
|
+
### Phase 5: Review — Reviewer Agent
|
|
259
248
|
|
|
260
|
-
Spawn Reviewer agent (
|
|
249
|
+
Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
|
|
261
250
|
|
|
262
251
|
{{IF_MODE_SELF_EVOLVE}}
|
|
263
252
|
**Framework Self-Evolve — Reviewer Extra Instructions**:
|
|
@@ -291,7 +280,8 @@ Wait for Reviewer to return.
|
|
|
291
280
|
|
|
292
281
|
**CP-3**: Integration tests pass, verdict is not NEEDS_FIXES.
|
|
293
282
|
|
|
294
|
-
|
|
283
|
+
|
|
284
|
+
### Phase 6: Retrospective & Commit — DO NOT SKIP
|
|
295
285
|
|
|
296
286
|
{{IF_MODE_SELF_EVOLVE}}
|
|
297
287
|
**Framework Validation Gate (self-evolve mode)**:
|
|
@@ -348,8 +338,8 @@ Write to: `{{SESSION_STATUS_PATH}}`
|
|
|
348
338
|
"feature_slug": "{{FEATURE_SLUG}}",
|
|
349
339
|
"exec_tier": 3,
|
|
350
340
|
"status": "<success|partial|failed|commit_missing|docs_missing>",
|
|
351
|
-
"completed_phases": [0, 1, 2, 3, 4, 5, 6
|
|
352
|
-
"current_phase":
|
|
341
|
+
"completed_phases": [0, 1, 2, 3, 4, 5, 6],
|
|
342
|
+
"current_phase": 6,
|
|
353
343
|
"checkpoint_reached": "CP-3",
|
|
354
344
|
"tasks_completed": 0,
|
|
355
345
|
"tasks_total": 0,
|
|
@@ -361,8 +351,7 @@ Write to: `{{SESSION_STATUS_PATH}}`
|
|
|
361
351
|
"artifacts": {
|
|
362
352
|
"context_snapshot_path": ".prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md",
|
|
363
353
|
"spec_path": ".prizmkit/specs/{{FEATURE_SLUG}}/spec.md",
|
|
364
|
-
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
365
|
-
"tasks_path": ".prizmkit/specs/{{FEATURE_SLUG}}/tasks.md"
|
|
354
|
+
"plan_path": ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md"
|
|
366
355
|
},
|
|
367
356
|
"git_commit": "<commit hash>",
|
|
368
357
|
"timestamp": "2026-03-04T10:00:00Z"
|
|
@@ -386,12 +375,6 @@ git commit -m "chore({{FEATURE_ID}}): include session artifacts"
|
|
|
386
375
|
|
|
387
376
|
Re-check `git status --short` and ensure it is empty before exiting.
|
|
388
377
|
|
|
389
|
-
## Step 4: Team Cleanup
|
|
390
|
-
|
|
391
|
-
Clean up the agent team created in Step 1:
|
|
392
|
-
- Call `TeamDelete` to remove the team and free resources
|
|
393
|
-
- Only call TeamDelete after all agents have completed and session-status.json is written
|
|
394
|
-
|
|
395
378
|
## Critical Paths
|
|
396
379
|
|
|
397
380
|
| Resource | Path |
|
|
@@ -407,7 +390,7 @@ Clean up the agent team created in Step 1:
|
|
|
407
390
|
|
|
408
391
|
## Reminders
|
|
409
392
|
|
|
410
|
-
- Tier 3: full team — Dev (implementation) → Reviewer (review) —
|
|
393
|
+
- Tier 3: full team — Dev (implementation) → Reviewer (review) — spawn agents directly via Agent tool
|
|
411
394
|
- context-snapshot.md is the team knowledge base: orchestrator writes it once, all agents read it
|
|
412
395
|
- Do NOT use `run_in_background=true` when spawning agents
|
|
413
396
|
- ALWAYS write session-status.json before exiting
|