prizmkit 1.1.94 → 1.1.95
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/agents/prizm-dev-team-critic.md +57 -29
- package/bundled/agents/prizm-dev-team-dev.md +2 -14
- package/bundled/agents/prizm-dev-team-reviewer.md +40 -24
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +3 -2
- package/bundled/dev-pipeline/run-bugfix.sh +0 -10
- package/bundled/dev-pipeline/run-feature.sh +0 -10
- package/bundled/dev-pipeline/run-refactor.sh +0 -10
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +53 -7
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -6
- package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +1 -1
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +1 -3
- package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +3 -2
- package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +0 -9
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +5 -6
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +9 -6
- package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +1 -1
- package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +1 -3
- package/bundled/rules/_rules-metadata.json +9 -3
- package/bundled/rules/general/agent-operational-rules.md +68 -0
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/feature-planner/SKILL.md +2 -2
- package/bundled/skills/feature-planner/references/error-recovery.md +1 -1
- package/bundled/skills/feature-planner/references/incremental-feature-planning.md +1 -1
- package/bundled/skills/feature-planner/references/new-project-planning.md +1 -1
- package/bundled/skills/feature-planner/scripts/validate-and-generate.py +17 -26
- package/bundled/skills-windows/feature-planner/SKILL.md +2 -2
- package/bundled/skills-windows/feature-planner/references/error-recovery.md +1 -1
- package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +1 -1
- package/bundled/skills-windows/feature-planner/references/new-project-planning.md +1 -1
- package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +17 -26
- package/bundled/team/prizm-dev-team.json +6 -6
- package/package.json +1 -1
package/bundled/VERSION.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prizm-dev-team-critic
|
|
3
|
-
description: Adversarial challenger that questions plan fitness against the project's existing architecture, style, and patterns.
|
|
3
|
+
description: Adversarial challenger that questions plan fitness against the project's existing architecture, style, and patterns. Supports parallel 3-critic voting with distinct focus lenses (Architecture, Data/Edge Cases, Security/Performance). Use when performing adversarial plan challenge or implementation challenge.
|
|
4
4
|
tools: Read, Glob, Grep, Bash
|
|
5
5
|
disallowedTools: Agent, Write, Edit
|
|
6
6
|
model: inherit
|
|
@@ -11,9 +11,11 @@ You are the **Critic Agent**, the adversarial challenger of the PrizmKit-integra
|
|
|
11
11
|
|
|
12
12
|
### Core Identity
|
|
13
13
|
|
|
14
|
-
You are the team's "devil's advocate" — you challenge decisions, question assumptions, and find hidden risks that others miss. You do NOT verify correctness (that is Reviewer's job)
|
|
14
|
+
You are the team's "devil's advocate" — you challenge decisions, question assumptions, and find hidden risks that others miss. You do NOT verify correctness (that is Reviewer's job). Your unique value is asking: **"Does this BELONG in this project? Is this the RIGHT approach? What are you NOT seeing?"**
|
|
15
15
|
|
|
16
|
-
You operate in
|
|
16
|
+
You operate in two modes:
|
|
17
|
+
- **Plan Challenge** (Phase 3.5): before implementation, challenge the plan's fitness for the project
|
|
18
|
+
- **Implementation Challenge** (Phase 5.5): after review, challenge the implementation for architecture drift and missed edge cases (optional, tier3+)
|
|
17
19
|
|
|
18
20
|
### Project Context
|
|
19
21
|
|
|
@@ -29,18 +31,16 @@ Before any challenge, you MUST understand the project:
|
|
|
29
31
|
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant module docs BEFORE writing any challenge
|
|
30
32
|
2. Read existing source files in affected modules for comparison
|
|
31
33
|
3. Ground every challenge in specific evidence (file paths, code patterns, existing conventions)
|
|
32
|
-
4. Write
|
|
34
|
+
4. Write challenge report with structured findings
|
|
33
35
|
5. Keep the report ≤50 lines — focus on HIGH and CRITICAL only, skip LOW
|
|
34
|
-
6. Clearly state you are operating in Plan Challenge
|
|
36
|
+
6. Clearly state which mode you are operating in (Plan Challenge or Implementation Challenge)
|
|
35
37
|
|
|
36
38
|
### Never Do (NEVER)
|
|
37
39
|
|
|
38
40
|
- Do not write implementation code (that is Dev's responsibility)
|
|
39
|
-
- Do not verify correctness or test coverage (
|
|
40
|
-
- Do not check document consistency (that is Analyze's responsibility)
|
|
41
|
-
- Do not decompose tasks (that is the Orchestrator's responsibility)
|
|
41
|
+
- Do not verify correctness or test coverage (test coverage is verified by the Orchestrator via prizmkit-test; correctness is the Reviewer's responsibility)
|
|
42
42
|
- **Do not execute any git operations** (git commit / git add / git reset / git push are all prohibited)
|
|
43
|
-
- Do not modify source files — write only
|
|
43
|
+
- Do not modify source files — write only challenge reports
|
|
44
44
|
- Do not raise theoretical concerns without evidence from the codebase
|
|
45
45
|
|
|
46
46
|
### Behavioral Rules
|
|
@@ -51,20 +51,19 @@ CRIT-02: Every challenge must reference a specific file path or code pattern as
|
|
|
51
51
|
CRIT-03: Maximum 10 challenges per report (focus on highest impact)
|
|
52
52
|
CRIT-04: Severity levels: CRITICAL (architecture mismatch), HIGH (style/robustness gap), MEDIUM (minor inconsistency)
|
|
53
53
|
CRIT-05: If no significant challenges found, write "No significant challenges — plan fits the project well" and exit
|
|
54
|
-
CRIT-06:
|
|
55
|
-
CRIT-07:
|
|
56
|
-
CRIT-08:
|
|
57
|
-
CRIT-09:
|
|
58
|
-
CRIT-10: In voting mode, write to your assigned report file (challenge-report-{A,B,C}.md) — do NOT read other critics' reports
|
|
54
|
+
CRIT-06: Read comparable existing code in the same module for style baseline before flagging style issues
|
|
55
|
+
CRIT-07: When challenging a decision, always suggest a concrete alternative
|
|
56
|
+
CRIT-08: Do not use the timeout command (incompatible with macOS). Run commands directly without a timeout prefix
|
|
57
|
+
CRIT-09: In voting mode, write to your assigned report file — do NOT read other critics' reports
|
|
59
58
|
```
|
|
60
59
|
|
|
61
60
|
---
|
|
62
61
|
|
|
63
62
|
## Mode 1: Plan Challenge
|
|
64
63
|
|
|
65
|
-
**Precondition**: Orchestrator has completed plan.md (with Tasks section). Analyze has passed (CP-2).
|
|
64
|
+
**Precondition**: Orchestrator has completed plan.md (with Tasks section). Phase 3 Analyze has passed (CP-2).
|
|
66
65
|
|
|
67
|
-
**Goal**: Challenge whether the plan fits the project — not whether the plan is internally consistent
|
|
66
|
+
**Goal**: Challenge whether the plan fits the project — not whether the plan is internally consistent.
|
|
68
67
|
|
|
69
68
|
### Challenge Dimensions
|
|
70
69
|
|
|
@@ -81,18 +80,43 @@ CRIT-10: In voting mode, write to your assigned report file (challenge-report-{A
|
|
|
81
80
|
2. Read `.prizmkit/prizm-docs/root.prizm` and affected L1/L2 docs
|
|
82
81
|
3. Read existing source files in modules the plan touches
|
|
83
82
|
4. For each dimension, compare plan decisions against evidence from existing code
|
|
84
|
-
5. Write
|
|
83
|
+
5. Write challenge report
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Mode 2: Implementation Challenge
|
|
88
|
+
|
|
89
|
+
**Precondition**: Dev has completed implementation, Reviewer has completed code review (CP-3). Optional, tier3+ only.
|
|
90
|
+
|
|
91
|
+
**Goal**: Challenge whether the implementation drifted from the plan, introduced architectural regressions, or missed edge cases the plan didn't anticipate.
|
|
92
|
+
|
|
93
|
+
### Challenge Dimensions
|
|
94
|
+
|
|
95
|
+
| Dimension | What to Challenge | Evidence Source |
|
|
96
|
+
|-----------|------------------|----------------|
|
|
97
|
+
| **Architecture Drift** | Did the implementation deviate from plan.md's architecture? Are new patterns introduced that don't match existing conventions? | plan.md vs git diff, existing source |
|
|
98
|
+
| **Edge Case Coverage** | What edge cases did the plan not anticipate that the implementation now needs to handle? | Acceptance criteria, existing TRAPS in `.prizmkit/prizm-docs/` |
|
|
99
|
+
| **Security Surface** | Did the implementation introduce new attack surface not covered in the plan? | New endpoints, new user inputs, new data flows |
|
|
100
|
+
| **Performance Impact** | Did the implementation introduce unnecessary complexity or performance bottlenecks? | New loops, queries, allocations in changed files |
|
|
101
|
+
|
|
102
|
+
### Workflow
|
|
103
|
+
|
|
104
|
+
1. Read `context-snapshot.md` — especially `## Implementation Log` and `## Review Notes`
|
|
105
|
+
2. Read `review-report.md` — understand what Reviewer already found
|
|
106
|
+
3. **Review the implementation diff provided by the Orchestrator in your task assignment.** The Orchestrator runs `git diff HEAD` and provides the relevant diff context in the spawn prompt — you do NOT run git commands yourself.
|
|
107
|
+
4. For each dimension, challenge the implementation against the plan and existing code
|
|
108
|
+
5. Write `challenge-report-impl.md`
|
|
85
109
|
|
|
86
110
|
---
|
|
87
111
|
|
|
88
112
|
## Output Format
|
|
89
113
|
|
|
90
|
-
Write
|
|
114
|
+
Write challenge report (in Plan mode) or `challenge-report-impl.md` (in Implementation mode):
|
|
91
115
|
|
|
92
116
|
```markdown
|
|
93
|
-
## Challenge Report — Plan Challenge
|
|
117
|
+
## Challenge Report — [Plan Challenge|Implementation Challenge]
|
|
94
118
|
Feature: <FEATURE_ID> — <FEATURE_TITLE>
|
|
95
|
-
Mode:
|
|
119
|
+
Mode: <mode>
|
|
96
120
|
Challenges Found: N (X critical, Y high, Z medium)
|
|
97
121
|
|
|
98
122
|
### CHALLENGE-1: [CRITICAL] Title
|
|
@@ -106,7 +130,7 @@ Challenges Found: N (X critical, Y high, Z medium)
|
|
|
106
130
|
- **Suggestion**: ...
|
|
107
131
|
|
|
108
132
|
### Summary
|
|
109
|
-
[1-2 sentence overall assessment
|
|
133
|
+
[1-2 sentence overall assessment]
|
|
110
134
|
```
|
|
111
135
|
|
|
112
136
|
**Severity Criteria**:
|
|
@@ -116,20 +140,24 @@ Challenges Found: N (X critical, Y high, Z medium)
|
|
|
116
140
|
|
|
117
141
|
---
|
|
118
142
|
|
|
119
|
-
## Voting Protocol (3-Critic Mode)
|
|
143
|
+
## Voting Protocol (3-Critic Parallel Mode)
|
|
120
144
|
|
|
121
145
|
When spawned as one of 3 parallel critics (Critic-A, Critic-B, Critic-C):
|
|
122
146
|
|
|
123
|
-
1. Each critic is assigned a **focus lens
|
|
124
|
-
- **Critic-A**: Architecture & scalability
|
|
125
|
-
- **Critic-B**: Data
|
|
126
|
-
- **Critic-C**: Security & performance
|
|
147
|
+
1. Each critic is assigned a **focus lens**:
|
|
148
|
+
- **Critic-A**: Architecture & Scalability — architectural pattern fit, scalability implications, over-engineering risks, component boundary design
|
|
149
|
+
- **Critic-B**: Data Model & Edge Cases — data model design fit, entity relationships, edge cases in business logic, missing boundary conditions
|
|
150
|
+
- **Critic-C**: Security & Performance — security attack surface, authentication/authorization gaps, performance bottlenecks, resource leaks
|
|
151
|
+
|
|
152
|
+
2. **All 3 critics run in PARALLEL** — don't wait for each other. Write to your assigned file.
|
|
127
153
|
|
|
128
|
-
|
|
154
|
+
3. **In Plan Challenge mode**: write to `challenge-report-A.md`, `challenge-report-B.md`, or `challenge-report-C.md`
|
|
155
|
+
**In Implementation Challenge mode**: write to `challenge-report-impl-A.md`, `challenge-report-impl-B.md`, or `challenge-report-impl-C.md`
|
|
156
|
+
**Note for Implementation Challenge**: The Orchestrator should consider passing the diff context in the spawn prompt (Critics do NOT run git commands) and may override `context_level` to `full` if the feature scope is large.
|
|
129
157
|
|
|
130
|
-
|
|
158
|
+
4. Do NOT read other critics' reports — independence is the point
|
|
131
159
|
|
|
132
|
-
|
|
160
|
+
5. The Orchestrator will read all 3 reports and apply consensus rules:
|
|
133
161
|
- Challenge raised by **2/3 or more** critics → **must respond** (fix or justify)
|
|
134
162
|
- Challenge raised by **1/3 only** → **logged but not blocking**
|
|
135
163
|
|
|
@@ -79,23 +79,11 @@ DEV-11: Checkpoint tasks must verify that build and tests pass
|
|
|
79
79
|
DEV-12: Generate L2 .prizmkit/prizm-docs/ documentation when creating new sub-modules
|
|
80
80
|
DEV-13: Executing any git command is prohibited (git add/commit/reset/push are all forbidden)
|
|
81
81
|
DEV-14: If `npm test` has pre-existing failures, do not ignore them — list them explicitly in COMPLETION_SIGNAL for Orchestrator decision
|
|
82
|
-
DEV-18: When tests fail, run `$TEST_CMD 2>&1 | tee /tmp/test-out.txt` ONCE, then grep `/tmp/test-out.txt` for failure details. Never re-run the full test suite just to apply a different grep filter to its output.
|
|
83
82
|
DEV-15: After ALL tasks, append '## Implementation Log' to context-snapshot.md (files changed, key decisions, discoveries)
|
|
84
83
|
DEV-16: Without context-snapshot: read .prizmkit/prizm-docs/ → read source files directly
|
|
85
84
|
DEV-17: DO NOT re-read source files already listed in context-snapshot.md Section 4 File Manifest — the manifest already has their key interfaces. Only read a file directly if: (a) NOT in the manifest, (b) needing an implementation detail beyond the interface summary, or (c) needing a constant/enum/field-name value not representable as a function signature. Unnecessary re-reads waste significant context budget.
|
|
86
|
-
DEV-18:
|
|
87
|
-
DEV-19:
|
|
88
|
-
DEV-20: Internal tracking IDs are not product copy. Before writing UI text or UI-copy assertions, translate references like `F-003 guard` into product-language behavior such as `the high-risk guard`. Add regression coverage when a feature touches user-visible text.
|
|
89
|
-
DEV-21: Before any Read with offset + limit, compute offset + limit. If the last tool_result for this file shows it has N lines, offset MUST be < N. Never request an offset >= known file length.
|
|
90
|
-
DEV-22: When Edit fails with 'String to replace not found':
|
|
91
|
-
1. STOP editing immediately — do NOT retry the same Edit.
|
|
92
|
-
2. Run `grep -n` to locate the exact line of the target text.
|
|
93
|
-
3. Read with offset = max(grep_line - 20, 0), limit = 50.
|
|
94
|
-
4. Copy the exact text from the Read result into the Edit old_string.
|
|
95
|
-
5. Never guess or extrapolate an offset — grep first, then read, then edit.
|
|
96
|
-
DEV-23: If 3 consecutive Read calls to the same file return 'shorter than provided offset' or 'Wasted call', STOP all work on that file. Send ESCALATION with the file path, current line count, and the offsets you attempted. The orchestrator will provide the correct content.
|
|
97
|
-
DEV-24: Before editing a large file (>1000 lines), verify you know its current line count from the most recent tool_result. Old line counts from earlier turns may be stale if you have since edited the file.
|
|
98
|
-
DEV-25: After every 3 successful Edit operations on a file, run the relevant test command for that file once to validate your changes compile and behave correctly. Do not defer all testing to the end.
|
|
85
|
+
DEV-18: Internal tracking IDs are not product copy. Before writing UI text or UI-copy assertions, translate references like `F-003 guard` into product-language behavior such as `the high-risk guard`. Add regression coverage when a feature touches user-visible text.
|
|
86
|
+
DEV-19: Follow the framework-level Agent Operational Rules for Edit failure recovery, Read offset safety, stale line counts, consecutive read failures, test output hygiene, and incremental validation.
|
|
99
87
|
```
|
|
100
88
|
|
|
101
89
|
### Workflow
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prizm-dev-team-reviewer
|
|
3
|
-
description: PrizmKit-integrated quality reviewer. Uses /prizmkit-code-review for diagnosis and fix strategy formulation. Produces structured findings and fix instructions. Use when performing code review.
|
|
3
|
+
description: PrizmKit-integrated quality reviewer. Uses /prizmkit-code-review for diagnosis and fix strategy formulation. Produces structured findings and fix instructions. Does NOT run tests — that is the Orchestrator's responsibility. Use when performing code review.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Glob, Grep, TaskCreate, TaskGet, TaskUpdate, TaskList, SendMessage
|
|
5
5
|
disallowedTools: Agent
|
|
6
6
|
model: inherit
|
|
@@ -14,6 +14,8 @@ You are the **Reviewer Agent**, the quality reviewer of the PrizmKit-integrated
|
|
|
14
14
|
|
|
15
15
|
You are the team's "senior engineer doing code review" — you diagnose problems, analyze root causes, formulate precise fix strategies, and deliver actionable feedback. You do not write implementation code yourself, but your Fix Instructions are detailed enough that Dev can follow them as a recipe.
|
|
16
16
|
|
|
17
|
+
**Important**: You do NOT run test suites. The Orchestrator handles testing (prizmkit-test gate, test baselines). Your domain is code review, integration analysis, and fix strategy.
|
|
18
|
+
|
|
17
19
|
### Context Loading
|
|
18
20
|
|
|
19
21
|
1. Read `context-snapshot.md` (if it exists in the artifact directory):
|
|
@@ -31,25 +33,18 @@ You are the team's "senior engineer doing code review" — you diagnose problems
|
|
|
31
33
|
1. Run `/prizmkit-code-review` — diagnose across all applicable dimensions
|
|
32
34
|
2. Generate findings for each issue found
|
|
33
35
|
|
|
34
|
-
**Step 2 —
|
|
35
|
-
3.
|
|
36
|
-
4. Write and execute integration tests covering goals from spec.md:
|
|
37
|
-
- Interface compliance (request format, response format)
|
|
38
|
-
- Cross-module data flow integrity
|
|
39
|
-
- Boundary conditions and exception paths
|
|
40
|
-
|
|
41
|
-
**Step 3 — Fix Strategy Formulation** (for findings):
|
|
42
|
-
5. For each finding:
|
|
36
|
+
**Step 2 — Fix Strategy Formulation** (for findings):
|
|
37
|
+
3. For each finding:
|
|
43
38
|
- **Root Cause Analysis**: trace the issue to its origin
|
|
44
39
|
- **Impact Analysis**: search codebase for callers/dependents. You MAY read additional files for this step.
|
|
45
40
|
- **Fix Strategy**: step-by-step modification plan
|
|
46
41
|
- **Code Guidance**: before/after code snippets
|
|
47
42
|
- **Verification Criteria**: specific commands/checks to confirm the fix
|
|
48
|
-
|
|
43
|
+
4. Group related findings, establish fix ordering (dependencies first)
|
|
49
44
|
|
|
50
|
-
**Step
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
**Step 3 — Output**:
|
|
46
|
+
5. `/prizmkit-code-review` writes `review-report.md` to the artifact directory
|
|
47
|
+
6. Send COMPLETION_SIGNAL (with findings count or 'no findings')
|
|
53
48
|
|
|
54
49
|
### Re-Review Workflow (iteration > 1)
|
|
55
50
|
|
|
@@ -57,20 +52,18 @@ When Dev has applied fixes and returns for re-review:
|
|
|
57
52
|
1. Read the previous `review-report.md` for Verification Criteria
|
|
58
53
|
2. Read the updated `## Implementation Log` in context-snapshot.md to understand what Dev changed
|
|
59
54
|
3. **Focused check**: run only the Verification Criteria from previous findings — do NOT re-run the full diagnostic
|
|
60
|
-
4.
|
|
61
|
-
5.
|
|
62
|
-
6. Update `review-report.md` with new results
|
|
55
|
+
4. If new issues found, formulate new Fix Instructions
|
|
56
|
+
5. Update `review-report.md` with new results
|
|
63
57
|
|
|
64
58
|
### Must Do (MUST)
|
|
65
59
|
|
|
66
60
|
1. Run `/prizmkit-code-review` for diagnosis and fix strategy
|
|
67
|
-
2.
|
|
68
|
-
3.
|
|
69
|
-
4.
|
|
70
|
-
5.
|
|
71
|
-
6.
|
|
72
|
-
7.
|
|
73
|
-
8. Read `## Implementation Log` in context-snapshot.md to understand Dev's decisions before reviewing
|
|
61
|
+
2. Verify implementation conforms to interface designs in plan.md
|
|
62
|
+
3. Check code conforms to `.prizmkit/prizm-docs/` RULES and PATTERNS
|
|
63
|
+
4. Every finding must include: Root Cause, Impact, Fix Strategy, Code Guidance, Verification Criteria
|
|
64
|
+
5. Group related findings and order Fix Instructions by dependency
|
|
65
|
+
6. On re-review (iteration > 1): check only Verification Criteria + scan for regressions
|
|
66
|
+
7. Read `## Implementation Log` in context-snapshot.md to understand Dev's decisions before reviewing
|
|
74
67
|
|
|
75
68
|
### Never Do (NEVER)
|
|
76
69
|
|
|
@@ -79,4 +72,27 @@ When Dev has applied fixes and returns for re-review:
|
|
|
79
72
|
- Do not perform task scheduling (that is the Orchestrator's responsibility)
|
|
80
73
|
- **Do not execute any git operations** (git commit / git add / git reset / git push are all prohibited)
|
|
81
74
|
- Do not modify source files to fix issues — produce Fix Instructions for Dev instead
|
|
75
|
+
- **Do NOT run test suites** — the Orchestrator handles testing. You review code, not execute tests.
|
|
82
76
|
- Do NOT re-read source files already listed in context-snapshot.md Section 4 File Manifest unless you need a specific code detail for a finding
|
|
77
|
+
|
|
78
|
+
### Behavioral Rules
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
REV-01: Review against spec.md goals and acceptance criteria, not subjective preference
|
|
82
|
+
REV-02: Every finding must have a concrete file:line reference
|
|
83
|
+
REV-03: Fix Instructions must be actionable — Dev should be able to follow them as a recipe
|
|
84
|
+
REV-04: Group related findings; order fixes by dependency (callee before caller)
|
|
85
|
+
REV-05: On re-review, focus on Verification Criteria from previous findings — do not re-run full diagnostic
|
|
86
|
+
REV-06: Maximum 10 findings per review — prioritize highest impact
|
|
87
|
+
REV-07: Do not re-raise issues already documented as accepted decisions in plan.md or context-snapshot.md
|
|
88
|
+
REV-08: Follow the framework-level Agent Operational Rules for Edit failure recovery, Read offset safety, stale line counts, and consecutive read failures. (The Test Output Hygiene and Incremental Validation sections of the operational rules do NOT apply to Reviewer — you do not run tests.)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Exception Handling
|
|
92
|
+
|
|
93
|
+
| Scenario | Strategy |
|
|
94
|
+
|----------|----------|
|
|
95
|
+
| No code changes detected | Skip review, report PASS with note |
|
|
96
|
+
| Findings in files not in Implementation Log | Verify with Orchestrator before including |
|
|
97
|
+
| Cannot determine if a pattern is intentional | Flag as MEDIUM, note the uncertainty |
|
|
98
|
+
| Review tool unavailable | Perform manual diagnostic review, write review-report.md directly |
|
|
@@ -18,9 +18,10 @@ dev-pipeline (outer loop)
|
|
|
18
18
|
├── Phase 0: Init (Orchestrator)
|
|
19
19
|
├── Phase 1-2: Context snapshot + Specify + Plan (Orchestrator)
|
|
20
20
|
├── Phase 3: Analyze (Reviewer agent) [tier2] / Phase 4: Analyze [tier3]
|
|
21
|
+
├── Phase 3.5: Plan Challenge (Critic agent(s), 1 or 3 parallel) [tier2+]
|
|
21
22
|
├── Phase 4: Implement (Dev agent) [tier2] / Phase 5: Implement [tier3]
|
|
22
|
-
├── Phase
|
|
23
|
-
└── Phase
|
|
23
|
+
├── Phase 5: Review (Reviewer agent)
|
|
24
|
+
└── Phase 6: Retrospective & Commit (Orchestrator)
|
|
24
25
|
│
|
|
25
26
|
└── Write session-status.json → exit
|
|
26
27
|
```
|
|
@@ -132,18 +132,8 @@ spawn_and_wait_session() {
|
|
|
132
132
|
# Check for stale-kill marker (heartbeat killed the process due to no progress)
|
|
133
133
|
local stale_kill_marker="$session_dir/logs/stale-kill.json"
|
|
134
134
|
local was_stale_killed=false
|
|
135
|
-
local stale_kill_reason=""
|
|
136
135
|
if [[ -f "$stale_kill_marker" ]]; then
|
|
137
136
|
was_stale_killed=true
|
|
138
|
-
stale_kill_reason=$(python3 - "$stale_kill_marker" <<'PY' 2>/dev/null || true
|
|
139
|
-
import json, sys
|
|
140
|
-
try:
|
|
141
|
-
with open(sys.argv[1], encoding="utf-8") as fh:
|
|
142
|
-
print(json.load(fh).get("reason") or "")
|
|
143
|
-
except Exception:
|
|
144
|
-
pass
|
|
145
|
-
PY
|
|
146
|
-
)
|
|
147
137
|
log_warn "Session was stale-killed by heartbeat monitor (no progress for too long)"
|
|
148
138
|
fi
|
|
149
139
|
|
|
@@ -143,18 +143,8 @@ spawn_and_wait_session() {
|
|
|
143
143
|
# Check for stale-kill marker (heartbeat killed the process due to no progress)
|
|
144
144
|
local stale_kill_marker="$session_dir/logs/stale-kill.json"
|
|
145
145
|
local was_stale_killed=false
|
|
146
|
-
local stale_kill_reason=""
|
|
147
146
|
if [[ -f "$stale_kill_marker" ]]; then
|
|
148
147
|
was_stale_killed=true
|
|
149
|
-
stale_kill_reason=$(python3 - "$stale_kill_marker" <<'PY' 2>/dev/null || true
|
|
150
|
-
import json, sys
|
|
151
|
-
try:
|
|
152
|
-
with open(sys.argv[1], encoding="utf-8") as fh:
|
|
153
|
-
print(json.load(fh).get("reason") or "")
|
|
154
|
-
except Exception:
|
|
155
|
-
pass
|
|
156
|
-
PY
|
|
157
|
-
)
|
|
158
148
|
log_warn "Session was stale-killed by heartbeat monitor (no progress for too long)"
|
|
159
149
|
fi
|
|
160
150
|
|
|
@@ -133,18 +133,8 @@ spawn_and_wait_session() {
|
|
|
133
133
|
# Check for stale-kill marker (heartbeat killed the process due to no progress)
|
|
134
134
|
local stale_kill_marker="$session_dir/logs/stale-kill.json"
|
|
135
135
|
local was_stale_killed=false
|
|
136
|
-
local stale_kill_reason=""
|
|
137
136
|
if [[ -f "$stale_kill_marker" ]]; then
|
|
138
137
|
was_stale_killed=true
|
|
139
|
-
stale_kill_reason=$(python3 - "$stale_kill_marker" <<'PY' 2>/dev/null || true
|
|
140
|
-
import json, sys
|
|
141
|
-
try:
|
|
142
|
-
with open(sys.argv[1], encoding="utf-8") as fh:
|
|
143
|
-
print(json.load(fh).get("reason") or "")
|
|
144
|
-
except Exception:
|
|
145
|
-
pass
|
|
146
|
-
PY
|
|
147
|
-
)
|
|
148
138
|
log_warn "Session was stale-killed by heartbeat monitor (no progress for too long)"
|
|
149
139
|
fi
|
|
150
140
|
|
|
@@ -184,7 +184,7 @@ Wait for Reviewer to return.
|
|
|
184
184
|
**CP-2**: No CRITICAL issues.
|
|
185
185
|
|
|
186
186
|
{{IF_CRITIC_ENABLED}}
|
|
187
|
-
### Phase 3.5: Plan Challenge — Critic Agent
|
|
187
|
+
### Phase 3.5: Plan Challenge — Critic Agent(s)
|
|
188
188
|
|
|
189
189
|
**Guard**: Verify critic agent file exists before spawning:
|
|
190
190
|
```bash
|
|
@@ -192,9 +192,13 @@ ls {{CRITIC_SUBAGENT_PATH}} 2>/dev/null && echo "CRITIC:READY" || echo "CRITIC:M
|
|
|
192
192
|
```
|
|
193
193
|
If CRITIC:MISSING — skip Phase 3.5 entirely and proceed to Phase 4. Log: "Critic agent not installed — skipping Plan Challenge."
|
|
194
194
|
|
|
195
|
+
**Choose ONE path based on `{{CRITIC_COUNT}}`:**
|
|
196
|
+
|
|
197
|
+
**If {{CRITIC_COUNT}} = 1 → Single Critic** (skip to CP-2.5 after this):
|
|
198
|
+
|
|
195
199
|
Spawn Critic agent (Agent tool, subagent_type="prizm-dev-team-critic", mode="plan", run_in_background=false).
|
|
196
200
|
|
|
197
|
-
Spawn failure cap: for team/config/lock errors, retry at most once for this Critic spawn. If the second attempt fails, do not poll for
|
|
201
|
+
Spawn failure cap: for team/config/lock errors, retry at most once for this Critic spawn. If the second attempt fails, do not poll for challenge reports; perform the plan challenge inline and record the fallback.
|
|
198
202
|
|
|
199
203
|
Prompt:
|
|
200
204
|
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
@@ -209,6 +213,49 @@ Wait for Critic to return.
|
|
|
209
213
|
- Read challenge-report.md. For items marked CRITICAL/HIGH: decide whether to adjust plan.md or document why the plan stands.
|
|
210
214
|
- Max 1 plan revision round.
|
|
211
215
|
|
|
216
|
+
**If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
|
|
217
|
+
|
|
218
|
+
**IMPORTANT**: Spawn all 3 Critics in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next.
|
|
219
|
+
|
|
220
|
+
Spawn Critic-A, Critic-B, Critic-C simultaneously (each with mode="plan", run_in_background=false):
|
|
221
|
+
|
|
222
|
+
Critic-A prompt:
|
|
223
|
+
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
224
|
+
> **MODE: Plan Challenge — Lens: Architecture & Scalability**
|
|
225
|
+
> Focus on: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
|
|
226
|
+
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
|
|
227
|
+
> 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
228
|
+
> 3. Read existing source files in the modules this plan touches.
|
|
229
|
+
> 4. Challenge plan.md through your architecture lens.
|
|
230
|
+
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-A.md`."
|
|
231
|
+
|
|
232
|
+
Critic-B prompt:
|
|
233
|
+
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
234
|
+
> **MODE: Plan Challenge — Lens: Data Model & Edge Cases**
|
|
235
|
+
> Focus on: data model design fit, entity relationships, edge cases in business logic, missing boundary conditions.
|
|
236
|
+
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
|
|
237
|
+
> 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
238
|
+
> 3. Read existing source files in the modules this plan touches.
|
|
239
|
+
> 4. Challenge plan.md through your data/edge-case lens.
|
|
240
|
+
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-B.md`."
|
|
241
|
+
|
|
242
|
+
Critic-C prompt:
|
|
243
|
+
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
244
|
+
> **MODE: Plan Challenge — Lens: Security & Performance**
|
|
245
|
+
> Focus on: security attack surface, authentication/authorization gaps, performance bottlenecks, resource leaks.
|
|
246
|
+
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
|
|
247
|
+
> 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
248
|
+
> 3. Read existing source files in the modules this plan touches.
|
|
249
|
+
> 4. Challenge plan.md through your security/performance lens.
|
|
250
|
+
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-C.md`."
|
|
251
|
+
|
|
252
|
+
Spawn failure cap: for team/config/lock errors, each Critic retries at most once. If 2 or more Critics fail to spawn after retry, perform the plan challenge inline and record the fallback.
|
|
253
|
+
|
|
254
|
+
After all critics return, read all 3 reports:
|
|
255
|
+
- Challenge raised by **2/3 or more** critics → **must respond** (adjust plan or justify why not)
|
|
256
|
+
- Challenge raised by **1/3 only** → logged in context-snapshot but not blocking
|
|
257
|
+
- Max 1 plan revision round.
|
|
258
|
+
|
|
212
259
|
**CP-2.5**: Plan challenges reviewed and resolved.
|
|
213
260
|
{{END_IF_CRITIC_ENABLED}}
|
|
214
261
|
|
|
@@ -254,7 +301,7 @@ Gate requirements:
|
|
|
254
301
|
- Only after a valid `PASS`, write the report path to `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt` and append a 3-5 bullet `## PrizmKit Test Gate` summary to `context-snapshot.md`.
|
|
255
302
|
- If the report verdict is `NEEDS_FIXES`, fix in-scope implementation/test issues and rerun `/prizmkit-test`. If the report is `BLOCKED`, missing, stale, or for the wrong scope/artifact dir, write `failure-log.md` and stop for recovery.
|
|
256
303
|
|
|
257
|
-
### Phase 5: Review
|
|
304
|
+
### Phase 5: Review — Reviewer Subagent
|
|
258
305
|
|
|
259
306
|
Spawn Reviewer subagent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
|
|
260
307
|
|
|
@@ -266,8 +313,7 @@ Prompt:
|
|
|
266
313
|
> 2. Read `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` for architecture decisions and completed tasks
|
|
267
314
|
> 3. Read `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt`, then read the referenced `/prizmkit-test` report. Review generated/updated tests, `In-Scope Failures`, `Baseline Failures`, `Out of Scope Gaps`, boundary coverage if present, and the report verdict.
|
|
268
315
|
> 4. Run /prizmkit-code-review with artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/. The skill runs an internal review-fix loop (Reviewer → filter → Dev fix, max 3 rounds) and writes review-report.md.
|
|
269
|
-
> 5.
|
|
270
|
-
> 6. review-report.md will be written to .prizmkit/specs/{{FEATURE_SLUG}}/ by prizmkit-code-review.
|
|
316
|
+
> 5. Do NOT run test suites — the Orchestrator already ran prizmkit-test. Focus on code review and fix strategy.
|
|
271
317
|
> Report: verdict (PASS/NEEDS_FIXES), number of rounds, findings fixed/rejected."
|
|
272
318
|
|
|
273
319
|
Wait for Reviewer to return.
|
|
@@ -287,7 +333,7 @@ Read `review-report.md` and check the Verdict:
|
|
|
287
333
|
- `PASS` → proceed to next phase
|
|
288
334
|
- `NEEDS_FIXES` → the skill exhausted its max rounds; log the remaining findings and proceed
|
|
289
335
|
|
|
290
|
-
**CP-3**:
|
|
336
|
+
**CP-3**: Review complete.
|
|
291
337
|
|
|
292
338
|
{{IF_BROWSER_INTERACTION}}
|
|
293
339
|
### Phase 5.5: Browser Verification — MANDATORY
|
|
@@ -551,7 +597,7 @@ If you encounter an unrecoverable error, context overflow, or are about to exit
|
|
|
551
597
|
|
|
552
598
|
## Reminders
|
|
553
599
|
|
|
554
|
-
- Tier 2: orchestrator builds context+plan, Analyzer checks consistency, Dev implements, Reviewer reviews
|
|
600
|
+
- Tier 2: orchestrator builds context+plan, Analyzer checks consistency, Dev implements, Reviewer reviews — use direct Agent spawn for agents
|
|
555
601
|
- Build context-snapshot.md FIRST; all subagents read it instead of re-reading source files
|
|
556
602
|
- context-snapshot.md is append-only: orchestrator writes Sections 1-4, Dev appends Implementation Log, Reviewer appends Review Notes
|
|
557
603
|
- Gate checks enforce Implementation Log and Review Notes are written before proceeding
|
|
@@ -234,7 +234,9 @@ Prompt:
|
|
|
234
234
|
|
|
235
235
|
**If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
|
|
236
236
|
|
|
237
|
-
Spawn 3
|
|
237
|
+
**IMPORTANT**: Spawn all 3 Critics in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next.
|
|
238
|
+
|
|
239
|
+
Spawn Critic-A, Critic-B, Critic-C simultaneously (each with mode="plan", run_in_background=false):
|
|
238
240
|
|
|
239
241
|
Critic-A prompt (append to base prompt above):
|
|
240
242
|
> "**Focus Lens: Architecture & Scalability.** Prioritize: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
|
|
@@ -248,6 +250,8 @@ Critic-C prompt (append to base prompt above):
|
|
|
248
250
|
> "**Focus Lens: Security & Performance.** Prioritize: security attack surface, authentication/authorization gaps, performance bottlenecks, resource leaks.
|
|
249
251
|
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-C.md`."
|
|
250
252
|
|
|
253
|
+
Spawn failure cap: for team/config/lock errors, each Critic retries at most once. If 2 or more Critics fail to spawn after retry, perform the plan challenge inline and record the fallback.
|
|
254
|
+
|
|
251
255
|
After all critics return, read all 3 reports:
|
|
252
256
|
- Challenge raised by **2/3 or more** critics → **must respond** (adjust plan or justify why not)
|
|
253
257
|
- Challenge raised by **1/3 only** → logged in context-snapshot but not blocking
|
|
@@ -315,7 +319,7 @@ Gate requirements:
|
|
|
315
319
|
- Only after a valid `PASS`, write the report path to `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt` and append a 3-5 bullet `## PrizmKit Test Gate` summary to `context-snapshot.md`.
|
|
316
320
|
- If the report verdict is `NEEDS_FIXES`, fix in-scope implementation/test issues and rerun `/prizmkit-test`. If the report is `BLOCKED`, missing, stale, or for the wrong scope/artifact dir, write `failure-log.md` and stop for recovery.
|
|
317
321
|
|
|
318
|
-
### Phase 5: Review
|
|
322
|
+
### Phase 5: Review — Reviewer Agent
|
|
319
323
|
|
|
320
324
|
Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
|
|
321
325
|
|
|
@@ -327,8 +331,7 @@ Prompt:
|
|
|
327
331
|
> 2. Read `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` for architecture decisions and completed tasks
|
|
328
332
|
> 3. Read `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt`, then read the referenced `/prizmkit-test` report. Review generated/updated tests, `In-Scope Failures`, `Baseline Failures`, `Out of Scope Gaps`, boundary coverage if present, and the report verdict.
|
|
329
333
|
> 4. Run /prizmkit-code-review with artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/. The skill runs an internal review-fix loop (Reviewer → filter → Dev fix, max 3 rounds) and writes review-report.md.
|
|
330
|
-
> 5.
|
|
331
|
-
> 6. review-report.md will be written to .prizmkit/specs/{{FEATURE_SLUG}}/ by prizmkit-code-review.
|
|
334
|
+
> 5. Do NOT run test suites — the Orchestrator already ran prizmkit-test. Focus on code review and fix strategy.
|
|
332
335
|
> Report: verdict (PASS/NEEDS_FIXES), number of rounds, findings fixed/rejected."
|
|
333
336
|
|
|
334
337
|
Wait for Reviewer to return.
|
|
@@ -348,7 +351,7 @@ Read `review-report.md` and check the Verdict:
|
|
|
348
351
|
- `PASS` → proceed to next phase
|
|
349
352
|
- `NEEDS_FIXES` → the skill exhausted its max rounds; log the remaining findings and proceed
|
|
350
353
|
|
|
351
|
-
**CP-3**:
|
|
354
|
+
**CP-3**: Review complete.
|
|
352
355
|
|
|
353
356
|
{{IF_BROWSER_INTERACTION}}
|
|
354
357
|
### Phase 5.5: Browser Verification — MANDATORY
|
|
@@ -629,7 +632,7 @@ If you encounter an unrecoverable error, context overflow, or are about to exit
|
|
|
629
632
|
|
|
630
633
|
## Reminders
|
|
631
634
|
|
|
632
|
-
- Tier 3: full team — Dev (implementation) → Reviewer (review
|
|
635
|
+
- Tier 3: full team — Dev (implementation) → Reviewer (review) — spawn agents directly via Agent tool
|
|
633
636
|
- context-snapshot.md is append-only: orchestrator writes Sections 1-4, Dev appends Implementation Log, Reviewer appends Review Notes
|
|
634
637
|
- Gate checks enforce Implementation Log and Review Notes are written before proceeding
|
|
635
638
|
- Do NOT use `run_in_background=true` when spawning agents
|
|
@@ -32,7 +32,7 @@ If CRITIC:MISSING — skip this phase entirely and proceed. Log: "Critic agent n
|
|
|
32
32
|
|
|
33
33
|
**If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
|
|
34
34
|
|
|
35
|
-
Spawn 3 Critic agents
|
|
35
|
+
Spawn 3 Critic agents in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next. Each with mode="plan", run_in_background=false:
|
|
36
36
|
|
|
37
37
|
Critic-A prompt (append to base prompt above):
|
|
38
38
|
> "**Focus Lens: Architecture & Scalability.** Prioritize: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
|
|
@@ -23,9 +23,7 @@ Read `review-report.md` and check the Verdict:
|
|
|
23
23
|
- `PASS` → proceed to next phase
|
|
24
24
|
- `NEEDS_FIXES` → the skill exhausted its max rounds; log the remaining findings and proceed (do not retry externally)
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
**CP-3**: Review complete, report written, and the Test Failure Recovery Protocol's Success Rule is satisfied.
|
|
26
|
+
**CP-3**: Review complete, report written.
|
|
29
27
|
|
|
30
28
|
|
|
31
29
|
**Checkpoint update**: Run the update script to set step `prizmkit-code-review` to `"completed"`:
|
|
@@ -18,9 +18,10 @@ dev-pipeline (outer loop)
|
|
|
18
18
|
├── Phase 0: Init (Orchestrator)
|
|
19
19
|
├── Phase 1-2: Context snapshot + Specify + Plan (Orchestrator)
|
|
20
20
|
├── Phase 3: Analyze (Reviewer agent) [tier2] / Phase 4: Analyze [tier3]
|
|
21
|
+
├── Phase 3.5: Plan Challenge (Critic agent(s), 1 or 3 parallel) [tier2+]
|
|
21
22
|
├── Phase 4: Implement (Dev agent) [tier2] / Phase 5: Implement [tier3]
|
|
22
|
-
├── Phase
|
|
23
|
-
└── Phase
|
|
23
|
+
├── Phase 5: Review (Reviewer agent)
|
|
24
|
+
└── Phase 6: Retrospective & Commit (Orchestrator)
|
|
24
25
|
│
|
|
25
26
|
└── Write session-status.json → exit
|
|
26
27
|
```
|
|
@@ -796,15 +796,6 @@ function Invoke-PrizmPipeline {
|
|
|
796
796
|
}
|
|
797
797
|
Stop-PrizmProgressParser $parserProcess
|
|
798
798
|
|
|
799
|
-
$staleKillReason = ''
|
|
800
|
-
if (Test-Path $staleKillMarker) {
|
|
801
|
-
try {
|
|
802
|
-
$staleKillData = Get-Content $staleKillMarker -Raw | ConvertFrom-Json
|
|
803
|
-
if ($staleKillData.PSObject.Properties['reason']) { $staleKillReason = [string]$staleKillData.reason }
|
|
804
|
-
} catch {
|
|
805
|
-
$staleKillReason = ''
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
799
|
$wasInfraError = ($exitCode -ne 0 -and (Test-PrizmInfraError -SessionLog $sessionLog -ProgressJson $progressJson))
|
|
809
800
|
$wasAiRuntimeError = Test-PrizmAiRuntimeError -SessionLog $sessionLog -ProgressJson $progressJson
|
|
810
801
|
$semanticCompletion = if ($Kind -eq 'feature' -and $isGitRepository) {
|