prizmkit 1.1.139 → 1.1.141

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.
Files changed (74) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +41 -121
  3. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +0 -6
  4. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +1 -2
  5. package/bundled/dev-pipeline/prizmkit_runtime/test_result.py +150 -0
  6. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +21 -804
  7. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +4 -6
  8. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +1 -1
  9. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +4 -6
  10. package/bundled/dev-pipeline/scripts/prompt_framework.py +56 -55
  11. package/bundled/dev-pipeline/scripts/update-bug-status.py +1 -2
  12. package/bundled/dev-pipeline/scripts/update-checkpoint.py +14 -96
  13. package/bundled/dev-pipeline/scripts/update-feature-status.py +1 -2
  14. package/bundled/dev-pipeline/scripts/update-refactor-status.py +1 -2
  15. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +3 -3
  16. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +7 -18
  17. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +6 -6
  18. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +5 -5
  19. package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +1 -1
  20. package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +1 -1
  21. package/bundled/dev-pipeline/templates/sections/bugfix-phase-manual-verification.md +1 -1
  22. package/bundled/dev-pipeline/templates/sections/bugfix-phase-test.md +13 -10
  23. package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +1 -1
  24. package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +14 -9
  25. package/bundled/dev-pipeline/templates/sections/headless-commit-authorization.md +1 -1
  26. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +1 -1
  27. package/bundled/dev-pipeline/templates/sections/phase-commit.md +1 -1
  28. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +2 -2
  29. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-base.md +1 -1
  30. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +1 -1
  31. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +1 -1
  32. package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +14 -26
  33. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +3 -3
  34. package/bundled/dev-pipeline/templates/sections/refactor-phase-test.md +13 -10
  35. package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +1 -1
  36. package/bundled/dev-pipeline/tests/test_checkpoint_state.py +287 -384
  37. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +119 -684
  38. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +17 -40
  39. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +20 -23
  40. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +29 -32
  41. package/bundled/skills/_metadata.json +6 -6
  42. package/bundled/skills/prizmkit/SKILL.md +8 -13
  43. package/bundled/skills/prizmkit/references/workflow-state-protocol.md +61 -80
  44. package/bundled/skills/prizmkit-code-review/SKILL.md +3 -3
  45. package/bundled/skills/prizmkit-code-review/references/workflow-state-protocol.md +61 -80
  46. package/bundled/skills/prizmkit-committer/SKILL.md +3 -3
  47. package/bundled/skills/prizmkit-committer/references/workflow-state-protocol.md +61 -80
  48. package/bundled/skills/prizmkit-implement/references/workflow-state-protocol.md +61 -80
  49. package/bundled/skills/prizmkit-plan/references/workflow-state-protocol.md +61 -80
  50. package/bundled/skills/prizmkit-retrospective/SKILL.md +2 -2
  51. package/bundled/skills/prizmkit-retrospective/references/workflow-state-protocol.md +61 -80
  52. package/bundled/skills/prizmkit-test/SKILL.md +217 -187
  53. package/bundled/skills/prizmkit-test/references/external-contract-mock-guidance.md +119 -0
  54. package/bundled/skills/prizmkit-test/references/independent-test-review.md +269 -0
  55. package/bundled/skills/prizmkit-test/references/test-coverage-model.md +193 -0
  56. package/bundled/skills/prizmkit-test/references/test-report-template.md +164 -79
  57. package/bundled/skills/prizmkit-workflow/SKILL.md +15 -23
  58. package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +61 -80
  59. package/package.json +1 -1
  60. package/bundled/skills/prizmkit-test/assets/authoritative-records.schema.json +0 -476
  61. package/bundled/skills/prizmkit-test/assets/behavior-risk-matrix.schema.json +0 -116
  62. package/bundled/skills/prizmkit-test/assets/evidence-manifest.schema.json +0 -111
  63. package/bundled/skills/prizmkit-test/assets/evidence-package-template.json +0 -66
  64. package/bundled/skills/prizmkit-test/references/boundary-coverage-protocol.md +0 -104
  65. package/bundled/skills/prizmkit-test/references/contract-mock-protocol.md +0 -65
  66. package/bundled/skills/prizmkit-test/references/evidence-protocol.md +0 -208
  67. package/bundled/skills/prizmkit-test/references/evidence-request-protocol.md +0 -80
  68. package/bundled/skills/prizmkit-test/references/examples.md +0 -100
  69. package/bundled/skills/prizmkit-test/references/service-boundary-test-catalog.md +0 -228
  70. package/bundled/skills/prizmkit-test/references/test-generation-steps.md +0 -118
  71. package/bundled/skills/prizmkit-test/references/trusted-evidence-execution.md +0 -110
  72. package/bundled/skills/prizmkit-test/references/workflow-state-protocol.md +0 -181
  73. package/bundled/skills/prizmkit-test/scripts/build_test_evidence.py +0 -1851
  74. package/bundled/skills/prizmkit-test/scripts/validate_test_evidence.py +0 -1793
@@ -1,87 +1,172 @@
1
- # Derived Test Evidence Report Template
1
+ # Test Report Template
2
2
 
3
- Generate this report solely from the structured, hashed evidence package. It is not independently editable authority. Any change to this file or another linked artifact without manifest regeneration causes deterministic validation failure.
3
+ Create one human-readable report for every terminal result. Replace an older report for the same invocation context; do not append duplicate final-result sections.
4
4
 
5
5
  ```markdown
6
- # Test Evidence Report
7
-
8
- Derived from structured evidence. Authoritative package: `{evidence_dir}`
9
-
10
- ## Evidence
11
- - Evidence ID: {64-character evidence_id}
12
- - Protocol Version: {protocol_version}
13
- - Classification: {behavior / lightweight}
14
- - Working Diff SHA-256: {working_diff_sha256}
15
- - Sensitivity: sensitivity=project-controlled
16
- - Environment Claim: mocked-code-level-only
17
-
18
- The evidence package preserves complete command, environment, stdout, stderr, patch, hash, and execution-history values without automatic redaction. The project owns access control, retention, and upload policy. Production credentials, production services, and destructive real-data operations are prohibited.
19
-
20
- Mocked code-level evidence does not verify a real deployed environment.
21
-
22
- ## Scope
23
- - Affected Module: {name} ({explicit / cohesion-derived})
24
- - Primary Scope: {count and pointers}
25
- - Regression Ring: {count and pointers}
26
- - Verdict-capable Unresolved Edges: {count}
27
-
28
- ## Behavior-Risk Completeness
29
- - Observable Behaviors: {count}
30
- - Applicable Risk Cells: {count}
31
- - Proven/Mapped Risk Cells: {count}
32
- - Unresolved Risk Cells: {count}
33
- - Diagnostic Coverage Signals: {values or not collected; never the completion basis}
34
- - Matrix: `behavior-risk-matrix.json`
35
-
36
- ## Risk-Adaptive Test Plan
37
- | Layer | Required | Rationale | Tests | Selected Execution IDs |
38
- |-------|----------|-----------|-------|------------------------|
39
- | focused | {yes/no} | {...} | {...} | {...} |
40
- | module-component | {yes/no} | {...} | {...} | {...} |
41
- | contract-integration | {yes/no} | {...} | {...} | {...} |
42
- | affected-module-regression | {yes/no} | {...} | {...} | {...} |
43
- | regression-ring | {yes/no} | {...} | {...} | {...} |
44
-
45
- ## Infrastructure and Contracts
46
- - Native Runner/Conventions: {...}
47
- - Infrastructure Changes: `infrastructure-changes.json`
48
- - Contract Snapshots: `contracts/`
49
- - Production Resources Used: no
50
-
51
- ## Current-State Execution Evidence
52
-
53
- - Selected Receipts: {execution_receipts}
54
- - Evidence: `executions.json`, `receipts/`, and `raw/`
55
-
56
- ## Executions
57
- - Attempts Preserved: {count}
58
- - Selected Required Executions: {IDs in order}
59
- - Complete History: `executions.json`
60
- - Raw Outputs: `raw/`
61
-
62
- ## Deterministic Validation
63
- - Command: `python3 ${SKILL_DIR}/scripts/validate_test_evidence.py --evidence-dir {evidence_dir} --project-root {target_project_root}`
64
- - Result: {passed / failed}
65
- - Validation Record: `validation.json`
66
-
67
- ## Verdict
68
- Verdict: TEST_PASS | TEST_FAIL | TEST_BLOCKED
69
-
70
- ## Responsibility Boundary
71
- - Testing-domain verdict only: yes
72
- - Overall code-quality or broad Spec verdict: no
73
- - Business defects repaired by this skill: no
74
- - Commit/release authorized: no
6
+ # Test Report
7
+
8
+ ## Final Result
9
+
10
+ - Result: TEST_PASS | TEST_NEEDS_FIXES | TEST_BLOCKED
11
+ - Summary: <concise testing-domain conclusion>
12
+
13
+ ## Change Scope
14
+
15
+ - Scope: <this-change / module / feature / full-project>
16
+ - Production paths: <paths or none>
17
+ - Test paths: <existing, added, and modified paths>
18
+ - Requirement source: <specification, acceptance criteria, caller request, or none>
19
+
20
+ ## Affected Business Module
21
+
22
+ - Boundary: <explicit module or cohesion-derived responsibility>
23
+ - Public entry points: <entries>
24
+ - Scope rationale: <why this is the complete affected boundary>
25
+
26
+ ## Observable Business Behaviors
27
+
28
+ | Behavior | Truth Source | Tests | Result |
29
+ |---|---|---|---|
30
+ | <behavior> | <spec/contract/acceptance/test/caller> | <test paths or cases> | passed / needs-fixes / blocked |
31
+
32
+ ## Boundary and Risk Coverage
33
+
34
+ | Behavior | Applicable Risks | Coverage | Material Omission Reason |
35
+ |---|---|---|---|
36
+ | <behavior> | <functional, boundary, error, state, side-effect, permission, concurrency, idempotency, time, dependency, consumer> | <tests and layers> | <none or behavior-specific reason> |
37
+
38
+ Coverage metrics, when available: <diagnostic values or not collected>. Percentages are not the completion basis.
39
+
40
+ ## Regression Ring
41
+
42
+ | Caller / Consumer / Contract / State | Coupling | Verification | Result |
43
+ |---|---|---|---|
44
+ | <edge> | <observable dependency> | <test or command> | passed / needs-fixes / blocked |
45
+
46
+ - Unresolved verdict-capable edges: <none or list>
47
+
48
+ ## Tests Added or Updated
49
+
50
+ | Path | Layer | Behaviors and Risks | Change |
51
+ |---|---|---|---|
52
+ | <path> | focused / module / contract / integration / E2E / regression | <coverage> | added / updated / existing |
53
+
54
+ - Existing native framework reused: <yes/no and framework>
55
+ - Infrastructure changes: <none or concise list>
56
+ - Testability seams: <none or behavior-preserving changes>
57
+
58
+ ## Native Test Execution
59
+
60
+ | Command | Working Directory | Scope / Layer | Result | Key Output |
61
+ |---|---|---|---|---|
62
+ | <native command> | <cwd> | <tests or layer> | passed / failed / blocked | <concise output or log pointer> |
63
+
64
+ - Required affected-module regression complete: yes / no
65
+ - Required Regression Ring verification complete: yes / no
66
+ - Project-wide regression required: yes / no
67
+ - Project-wide regression result: passed / failed / not-required / blocked
68
+
69
+ ## Main-Agent Review
70
+
71
+ - Rounds: <0..10>
72
+ - Accepted findings: <count>
73
+ - Fixed findings: <count>
74
+ - Rejected findings: <count with concise evidence pointers>
75
+ - Unresolved findings: <count and list>
76
+ - Converged on exact final state: yes / no
77
+
78
+ ## Independent Test Review
79
+
80
+ - Status: completed / downgraded / not_applicable
81
+ - Responses: <0..5>
82
+ - Capability gate or downgrade reason: <reason or none>
83
+ - Corrections and Main-Agent adjudication: <summary or none>
84
+ - Exact final state independently rechecked: yes / no
85
+
86
+ ## Repairs Performed
87
+
88
+ | Round | Failure Classification | Repair | Focused Verification | Required Regression |
89
+ |---|---|---|---|---|
90
+ | <1..3> | test-defect / local-production-defect / high-risk-production-defect / environment-unavailable / truth-unresolved / flaky-or-unreliable | <change or none> | <result> | <result> |
91
+
92
+ - Repair rounds used: <0..3>
93
+ - Assertions or scope weakened to obtain green output: no
94
+
95
+ ## Production Repair Risk
96
+
97
+ - Production changed during test: yes / no
98
+ - Repair locality: <local / high-risk / none>
99
+ - Delta Code Review required: yes / no
100
+ - Review scope: delta / none
101
+ - Rationale: <contract and risk analysis>
102
+
103
+ ## External Contracts and Mocks
104
+
105
+ | Dependency | Contract Source | Test Double / Isolation | Variants | Remaining Risk |
106
+ |---|---|---|---|---|
107
+ | <dependency> | <project path or public official source/version> | <mock/fake/server/container/isolated service> | <success/boundary/failure variants> | <none or risk> |
108
+
109
+ - Production credentials or resources used: no
75
110
  - Real deployed environment validated: no
76
111
 
77
- ## Compatibility
78
- The formal lifecycle consumes validated authoritative `TEST_*` evidence through workflow state and structured evidence pointers. `test-report.md` is a derived compatibility view and must not be interpreted as a review, retrospective, commit, or release verdict.
112
+ ## Remaining Risks and Unresolved Items
113
+
114
+ - <none, or every known correction/blocker with concrete target and next required fact>
79
115
  ```
80
116
 
81
- ## Verdict Rendering Rules
117
+ ## Result Rendering Rules
118
+
119
+ Render `TEST_PASS` only when:
120
+
121
+ - mandatory Main-Agent review converged;
122
+ - independent review converged or was visibly downgraded under its strict capability gate;
123
+ - all required native tests pass on the exact final state;
124
+ - no accepted or unresolved finding remains;
125
+ - no high-risk production repair awaits delta Code Review;
126
+ - no mutation occurred after final applicable review and execution.
127
+
128
+ Render `TEST_NEEDS_FIXES` for a known remaining correction, exhausted review/repair budget with known work, or a completed high-risk repair requiring delta Code Review.
129
+
130
+ Render `TEST_BLOCKED` when truth, required input, safe environment, execution reliability, external-target safety, or required Reviewer input prevents a safe verdict.
131
+
132
+ No conditional pass, commit authorization, release authorization, runtime classification, target hash, manifest, attestation, or package lifecycle belongs in the report.
133
+
134
+ ## Terminal Machine Projection
135
+
136
+ Write `test-result.json` together with the report:
137
+
138
+ ```json
139
+ {
140
+ "schema_version": 1,
141
+ "result": "TEST_PASS",
142
+ "report": "test-report.md",
143
+ "main_review_rounds": 1,
144
+ "independent_review": {
145
+ "status": "downgraded",
146
+ "responses": 0,
147
+ "downgrade_reason": "required read-only continuation capability is unavailable",
148
+ "final_state_rechecked": false
149
+ },
150
+ "repair_rounds": 0,
151
+ "production_changed": false,
152
+ "review_required": false,
153
+ "review_scope": null,
154
+ "unresolved_items": []
155
+ }
156
+ ```
82
157
 
83
- - Render `TEST_PASS` only after deterministic validation passes and all required evidence is proven.
84
- - Render `TEST_FAIL` only with reliable reproduced failure execution pointers.
85
- - Render `TEST_BLOCKED` with explicit blocker pointers.
86
- - Never render `PASS`, `NEEDS_FIXES`, conditional pass, “ready for commit,” or release authorization.
87
- - A lightweight `TEST_PASS` must say it proves only the deterministic lightweight claim, not runtime behavior.
158
+ Constraints:
159
+
160
+ - `schema_version` is `1`.
161
+ - `result` is `TEST_PASS`, `TEST_NEEDS_FIXES`, or `TEST_BLOCKED`.
162
+ - `report` is the sibling report filename `test-report.md`.
163
+ - `main_review_rounds` is an integer from `0` through `10`; `0` is valid only when early blocking prevents a complete review round.
164
+ - `independent_review.status` is `completed`, `downgraded`, or `not_applicable`.
165
+ - `completed` requires `responses` from `1` through `5`, `downgrade_reason=null`, and `final_state_rechecked=true`.
166
+ - `downgraded` requires `responses=0`, a non-empty `downgrade_reason`, and `final_state_rechecked=false`.
167
+ - `not_applicable` requires `responses=0`, `downgrade_reason=null`, and `final_state_rechecked=false`.
168
+ - `independent_review.responses` is otherwise bounded from `0` through `5`.
169
+ - `review_scope` is `delta` exactly when `review_required=true`; otherwise it is null.
170
+ - `unresolved_items` contains concise strings and agrees with the report.
171
+ - Report and JSON agree on final result and production-review requirement.
172
+ - The JSON is terminal output only and is never updated as an internal checkpoint.
@@ -107,8 +107,8 @@ The composite must not:
107
107
 
108
108
  - reinterpret a plan as implementation;
109
109
  - repair production code outside `prizmkit-implement` or the Main-Agent review loop;
110
- - claim tests passed without validated authoritative test evidence;
111
- - treat a derived Markdown report as the test source of truth;
110
+ - claim tests passed without a consistent `test-report.md` and terminal `test-result.json`;
111
+ - reinterpret testing-domain results as runtime/session outcomes;
112
112
  - perform retrospective documentation changes itself;
113
113
  - stage or commit before `prizmkit-committer` applies the current execution's authorization boundary;
114
114
  - invoke `prizmkit-deploy` as a hidden seventh stage.
@@ -129,34 +129,26 @@ prizmkit-implement
129
129
 
130
130
  The Main-Agent review skill owns its internal review repairs and its internal ten-round limit before returning its terminal result. The outer workflow repair counter is separate.
131
131
 
132
- ### Test Failure
132
+ ### Test Non-Pass
133
133
 
134
- `TEST_FAIL` must come from the validated authoritative evidence verdict and include `repair_scope`:
135
-
136
- TEST_FAIL affecting only tests, fixtures, test-runner configuration, or evidence infrastructure uses `repair_scope=test-infrastructure`:
134
+ `prizmkit-test` already performs bounded test construction, execution-failure repair, mandatory Main-Agent review, and optional independent review before returning. The composite consumes its terminal artifacts without recreating those loops.
137
135
 
138
136
  ```text
139
- TEST_FAIL with repair_scope=test-infrastructure
140
- prizmkit-implement
141
- prizmkit-test
142
- ```
143
-
144
- Test infrastructure includes tests, fixtures, test-runner configuration, and evidence infrastructure only.
145
-
146
- TEST_FAIL affecting production code, runtime configuration, schema, dependencies, or public interfaces uses the matching production-family scope:
137
+ TEST_NEEDS_FIXES
138
+ preserve test-report.md and test-result.json
139
+ stop with the known remaining correction or delta-review requirement
140
+ → caller owns any later review/retest decision
147
141
 
148
- ```text
149
- TEST_FAIL with repair_scope=production | runtime | schema | dependency | public-interface
150
- prizmkit-implement
151
- → prizmkit-code-review
152
- → prizmkit-test
142
+ TEST_BLOCKED
143
+ preserve test-report.md and test-result.json
144
+ stop with the unresolved truth, input, safety, environment, or reliability blocker
153
145
  ```
154
146
 
155
- Production-affecting repair after `REVIEW_PASS` must receive another review. A test-infrastructure-only repair may return directly to testing. Unknown scope uses the conservative production route only when safe; otherwise the workflow is blocked.
147
+ The composite must not invoke implementation or Code Review automatically from inside the returned testing result unless its own explicitly authorized outer policy defines a new invocation. It must never treat either result as an AI CLI crash.
156
148
 
157
149
  ### Environment Block
158
150
 
159
- `TEST_BLOCKED` means trustworthy evidence is unavailable because of environment, permission, dependency, external-service, scope, evidence, reliability, cleanup, or budget problems.
151
+ `TEST_BLOCKED` means a safe testing verdict is unavailable because truth, required input, environment, permission, external-target safety, execution reliability, or required review input remains unresolved.
160
152
 
161
153
  Interactive behavior:
162
154
 
@@ -180,7 +172,7 @@ repair_round: 0 → 1 → 2 → 3
180
172
  When the limit is reached:
181
173
 
182
174
  - set workflow status to `WORKFLOW_BLOCKED`;
183
- - preserve the latest authoritative failure evidence;
175
+ - preserve the latest reports and terminal results;
184
176
  - report completed rounds and unresolved cause;
185
177
  - report the exact skill, `artifact_dir`, and state path from which a user may resume after resolving the cause or explicitly authorizing another attempt;
186
178
  - do not claim the requirement is complete.
@@ -225,7 +217,7 @@ On resume:
225
217
 
226
218
  1. Read the workflow state specified by `resume` or discover the target project's active workflow state.
227
219
  2. Read `${SKILL_DIR}/references/workflow-state-protocol.md`.
228
- 3. Verify `spec.md`, `plan.md`, review report, authoritative test evidence, retrospective result, and current workspace against state.
220
+ 3. Verify `spec.md`, `plan.md`, review report, test report/result pair, retrospective result, and current workspace against state.
229
221
  4. If state is missing or stale, reconstruct the safest recoverable predecessor and report the reconstruction.
230
222
  5. Continue from the first incomplete stage; never bypass a required gate based only on stale state.
231
223
  6. Preserve the same `artifact_dir` and repair-round count.
@@ -1,6 +1,6 @@
1
1
  # PrizmKit Workflow State Protocol
2
2
 
3
- `workflow-state.json` is lifecycle runtime metadata for one formal requirement. It preserves stage handoff, repair routing, orchestrator ownership, and resume information without replacing authoritative artifacts or any host-owned execution checkpoint.
3
+ `workflow-state.json` is lifecycle metadata for one formal requirement. It preserves stage handoff, orchestrator ownership, and resume information without replacing skill-owned artifacts or any host-owned execution checkpoint.
4
4
 
5
5
  ## Location and Identity
6
6
 
@@ -8,7 +8,7 @@
8
8
  .prizmkit/state/workflows/<requirement-slug>.json
9
9
  ```
10
10
 
11
- The state file is created only when a lifecycle runs. The active `artifact_dir` is the generic requirement artifact root and must be preserved exactly across every stage:
11
+ The active `artifact_dir` is preserved exactly across every stage:
12
12
 
13
13
  ```text
14
14
  .prizmkit/specs/<requirement-slug>/
@@ -16,7 +16,7 @@ The state file is created only when a lifecycle runs. The active `artifact_dir`
16
16
  .prizmkit/refactor/<refactor-id>/
17
17
  ```
18
18
 
19
- Never select a different most-recent plan when resuming or handing off. Any execution checkpoint maintained by an external host remains separate from this lifecycle state. Never merge, substitute, or infer one schema from the other. The target project controls whether generated `.prizmkit/` files are committed, ignored, or shared.
19
+ Never select another recent plan when resuming. Any external execution checkpoint remains separate from this state. Never merge, substitute, or infer one schema from the other.
20
20
 
21
21
  ## Authority
22
22
 
@@ -26,16 +26,16 @@ The state file is an index, not the authority for stage completion:
26
26
  |---|---|
27
27
  | Requirement goals and acceptance criteria | `{artifact_dir}/spec.md` |
28
28
  | Implementation tasks and completion | `{artifact_dir}/plan.md` plus current workspace |
29
- | Review findings and verdict | `{artifact_dir}/review-report.md` final result |
30
- | Test execution, verdict, and repair scope | Validated evidence package and authoritative `verdict.json` |
31
- | Test report presentation | `{artifact_dir}/test-report.md` as a derived view only |
32
- | Retrospective completion and result | `{artifact_dir}/retrospective-result.json` |
29
+ | Review findings and result | `{artifact_dir}/review-report.md` |
30
+ | Test semantics and native execution | `{artifact_dir}/test-report.md` |
31
+ | Terminal testing result | `{artifact_dir}/test-result.json` |
32
+ | Retrospective completion | `{artifact_dir}/retrospective-result.json` |
33
33
  | Durable architecture knowledge | `.prizmkit/prizm-docs/` |
34
34
  | Local commit | Git history and confirmed or authorized commit identity |
35
35
  | Current stage, orchestrator, and resume entry | Workflow state |
36
- | External orchestration progress | The external host's own checkpoint, never this state |
36
+ | External orchestration progress | External host checkpoint |
37
37
 
38
- Every consumer compares workflow state with authoritative artifacts and the current workspace. Missing or stale state is reconstructed from those sources and is never accepted as success by itself.
38
+ Every consumer compares workflow state with the skill-owned artifacts and current workspace. Missing or stale state is reconstructed from those sources and is never accepted as success by itself.
39
39
 
40
40
  ## Schema
41
41
 
@@ -59,88 +59,71 @@ Every consumer compares workflow state with authoritative artifacts and the curr
59
59
 
60
60
  | Field | Meaning |
61
61
  |---|---|
62
- | `schema_version` | State schema version. Current value is `1`. |
63
- | `artifact_dir` | The single generic requirement artifact root reused by every stage. |
64
- | `orchestrator` | `prizmkit-workflow`, another semantic coordinator identifier, or `null` for direct stage use. |
65
- | `stage` | The stage that most recently wrote state. |
66
- | `status` | Lifecycle progression status, distinct from the domain `stage_result`. |
62
+ | `schema_version` | State schema version. |
63
+ | `artifact_dir` | Generic requirement artifact root reused by every stage. |
64
+ | `orchestrator` | Semantic coordinator identifier, or null for direct stage use. |
65
+ | `stage` | Stage that most recently wrote state. |
66
+ | `status` | Lifecycle progression status, distinct from `stage_result`. |
67
67
  | `stage_result` | Domain result such as `PASS`, `NEEDS_FIXES`, `TEST_*`, `DOCS_UPDATED`, or `NO_DOC_CHANGE`. |
68
68
  | `completed_stages` | Ordered stages completed for this requirement. |
69
- | `repair_scope` | `null`, `test-infrastructure`, `production`, `runtime`, `schema`, `dependency`, `public-interface`, or `unknown`. |
70
- | `repair_round` | Outer cross-stage repair round, from `0` through `3`. |
71
- | `next_stage` | Next semantic stage, or `null` after commit. |
72
- | `resume_from` | Exact atomic skill that can resume, or `null` after commit. |
69
+ | `repair_scope` | Optional caller-owned routing scope. The test skill reports high-risk repairs through `test-result.json` instead of scheduling another stage. |
70
+ | `repair_round` | Optional outer cross-stage repair round, from 0 through 3. It is not a test-internal repair counter. |
71
+ | `next_stage` | Next semantic stage, or null when stopped. |
72
+ | `resume_from` | Exact atomic skill that can resume, or null when none is selected. |
73
73
 
74
- ## Lifecycle and Verdict Mappings
75
-
76
- The mandatory formal lifecycle is:
74
+ ## Lifecycle and Result Mappings
77
75
 
78
76
  ```text
79
77
  PLAN_READY
80
- → IMPLEMENTED
81
- → REVIEW_PASS
82
- → TEST_PASS
83
- → RETRO_COMPLETE
84
- → COMMIT_PENDING
85
- → COMMITTED
78
+ → IMPLEMENTED
79
+ → REVIEW_PASS
80
+ → TEST_PASS
81
+ → RETRO_COMPLETE
82
+ → COMMIT_PENDING
83
+ → COMMITTED
86
84
  ```
87
85
 
88
- No formal stage is silently optional. Domain evidence maps as follows:
86
+ No formal stage is silently optional. Domain artifacts map as follows:
89
87
 
90
88
  ```text
91
- review-report final PASS → status=REVIEW_PASS, stage_result=PASS
92
- review-report final NEEDS_FIXES → status=REVIEW_NEEDS_FIXES, stage_result=NEEDS_FIXES
93
- validated verdict TEST_PASS → status=TEST_PASS, stage_result=TEST_PASS
94
- validated verdict TEST_FAIL → status=TEST_FAIL, stage_result=TEST_FAIL
95
- validated verdict TEST_BLOCKED → status=TEST_BLOCKED, stage_result=TEST_BLOCKED
96
- retrospective result DOCS_UPDATED → status=RETRO_COMPLETE, stage_result=DOCS_UPDATED
97
- retrospective result NO_DOC_CHANGE → status=RETRO_COMPLETE, stage_result=NO_DOC_CHANGE
89
+ review-report PASS → status=REVIEW_PASS, stage_result=PASS
90
+ review-report NEEDS_FIXES → status=REVIEW_NEEDS_FIXES, stage_result=NEEDS_FIXES
91
+ test-result TEST_PASS → status=TEST_PASS, stage_result=TEST_PASS
92
+ test-result TEST_NEEDS_FIXES → status=TEST_NEEDS_FIXES, stage_result=TEST_NEEDS_FIXES
93
+ test-result TEST_BLOCKED → status=TEST_BLOCKED, stage_result=TEST_BLOCKED
94
+ retrospective DOCS_UPDATED → status=RETRO_COMPLETE, stage_result=DOCS_UPDATED
95
+ retrospective NO_DOC_CHANGE → status=RETRO_COMPLETE, stage_result=NO_DOC_CHANGE
98
96
  ```
99
97
 
100
- `RETRO_COMPLETE` is the stable completion status. `DOCS_UPDATED` and `NO_DOC_CHANGE` are mutually exclusive retrospective results, not substitute statuses. A derived Markdown test report never establishes a `TEST_*` status without validated authoritative evidence.
101
-
102
- ## Repair Routing
103
-
104
- ```text
105
- REVIEW_NEEDS_FIXES
106
- → implement
107
- → code-review
108
- → test
98
+ `TEST_PASS` requires both `test-report.md` and a consistent `test-result.json`. No manifest, attestation, evidence package, or test-internal checkpoint is part of this contract.
109
99
 
110
- TEST_FAIL with repair_scope=test-infrastructure
111
- → implement
112
- → test
100
+ ## Non-Pass Results and Routing Boundary
113
101
 
114
- TEST_FAIL with repair_scope=production|runtime|schema|dependency|public-interface
115
- → implement
116
- → code-review
117
- → test
102
+ `prizmkit-test` performs its own bounded failure repair and review loops before returning. The test skill never invokes another lifecycle stage.
118
103
 
119
- TEST_FAIL with repair_scope=unknown
120
- → conservative production route only when safe
121
- otherwise WORKFLOW_BLOCKED
104
+ ```text
105
+ TEST_NEEDS_FIXES
106
+ known correction or required delta review remains
107
+ → caller decides whether and how to arrange another stage
122
108
 
123
109
  TEST_BLOCKED
124
- never make speculative production edits
125
- interactive execution stops with a prizmkit-test resume entry
126
- a trusted headless host may perform bounded environment recovery, then records WORKFLOW_BLOCKED if unresolved
127
-
128
- RETRO_BLOCKED
129
- → WORKFLOW_BLOCKED
130
- WORKFLOW_BLOCKED
131
- → resume only after the recorded blocker is resolved
110
+ truth, input, safe environment, or reliable execution prevents a verdict
111
+ never make speculative production edits
112
+ caller or external host owns recovery policy
132
113
  ```
133
114
 
134
- The outer workflow permits at most three automatic repair rounds. These are cross-stage rounds (`repair_round` `0` through `3`). The code-review internal loop permits at most ten completed review rounds and is separate; review-internal repairs do not increment the outer counter.
115
+ A test result is not an AI CLI session classification. `TEST_NEEDS_FIXES` and `TEST_BLOCKED` must not be rewritten as crash or infrastructure failure merely because they stop lifecycle progression.
116
+
117
+ Any outer repair or continuation policy is independently owned by the caller and cannot alter the test report. The Main-Agent test review limit of ten rounds, independent Test Reviewer limit of five responses, and execution-failure repair limit of three rounds are internal to one test invocation and do not update outer counters.
135
118
 
136
119
  ## Orchestrator Ownership and Handoff
137
120
 
138
- 1. An atomic stage performs only its own stage, writes the truthful terminal result and `next_stage`, and returns control.
139
- 2. When `orchestrator` is non-null, only that orchestrator invokes the next skill. The atomic stage must not auto-invoke it again.
140
- 3. Direct stage use may report one deterministic next invocation but does not claim the next stage ran.
121
+ 1. An atomic stage performs only its own stage, writes its truthful result and artifact paths, and returns control.
122
+ 2. When `orchestrator` is non-null, only that orchestrator invokes the next skill.
123
+ 3. Direct stage use may report a possible next invocation but does not claim it ran.
141
124
  4. Every handoff preserves the same `artifact_dir`.
142
- 5. External automation invokes atomic stages directly and does not invoke `prizmkit-workflow` as a nested coordinator.
143
- 6. Workflow state never replaces or absorbs an external host's checkpoint.
125
+ 5. External automation invokes atomic stages directly and does not nest the composite workflow.
126
+ 6. Workflow state never replaces or absorbs an external host checkpoint.
144
127
 
145
128
  ## Commit Authorization
146
129
 
@@ -148,34 +131,32 @@ Interactive execution:
148
131
 
149
132
  ```text
150
133
  committer previews intended files and message
151
- → waits for explicit confirmation from the current user
134
+ → waits for explicit current-user confirmation
152
135
  → creates the local commit
153
136
  ```
154
137
 
155
138
  Trusted headless execution:
156
139
 
157
140
  ```text
158
- a trusted host explicitly authorizes the current local task commit
159
- → host injects mode=<host-defined-headless-mode>, owner=<trusted-host-identifier>,
160
- local_commit_authorized=true
141
+ trusted host explicitly authorizes the current local task commit
161
142
  → committer verifies gates and commits automatically
162
- no question or wait is permitted
143
+ remote publication remains separate
163
144
  ```
164
145
 
165
- A self-declared or otherwise untrusted headless context does not authorize a commit. Remote publication remains a separate host-runtime decision.
146
+ A self-declared or untrusted headless context does not authorize a commit.
166
147
 
167
148
  ## Recovery
168
149
 
169
150
  When state is missing, stale, or inconsistent:
170
151
 
171
- 1. Read `spec.md` and `plan.md` from `artifact_dir` only when they are not already available in current context.
172
- 2. Inspect task markers and the current workspace.
173
- 3. Read the latest review report and final result when needed to establish review authority.
174
- 4. Validate authoritative test evidence and `repair_scope`.
152
+ 1. Reuse current context, then read `spec.md` and `plan.md` only when needed.
153
+ 2. Inspect task markers and current workspace.
154
+ 3. Read the current review report when needed to establish review authority.
155
+ 4. Validate that `test-report.md` and terminal `test-result.json` exist, agree, and reflect the claimed result.
175
156
  5. Validate `retrospective-result.json` when retrospective is claimed complete.
176
157
  6. Verify the commit when commit is claimed complete.
177
- 7. When an external host is active, let that host validate its own checkpoint independently; never merge the schemas.
158
+ 7. Let an active external host validate its own checkpoint independently.
178
159
  8. Reconstruct the latest safe predecessor and report the reconstruction.
179
160
  9. Continue only from the first incomplete or invalid stage.
180
161
 
181
- Stale state never bypasses review, testing, retrospective, commit authorization, or external host checkpoint enforcement.
162
+ Stale state never bypasses review, testing, retrospective, commit authorization, or external checkpoint enforcement.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.1.139",
3
+ "version": "1.1.141",
4
4
  "description": "Create a new PrizmKit-powered project with clean initialization — no framework dev files, just what you need.",
5
5
  "type": "module",
6
6
  "bin": {