prizmkit 1.1.159 → 1.1.160
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/codebuddy/settings-adapter.js +76 -25
- package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +9 -2
- package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +42 -15
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +1 -1
- package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +6 -6
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +4 -3
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +2 -2
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +2 -2
- package/bundled/dev-pipeline/tests/test_runtime_commit.py +68 -13
- package/bundled/dev-pipeline/tests/test_unified_cli.py +10 -6
- package/bundled/rules/prizm/prizm-commit-workflow.md +7 -7
- package/bundled/rules/prizm/prizm-documentation.md +24 -65
- package/bundled/rules/prizm/prizm-progressive-loading.md +9 -8
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/prizmkit-code-review/SKILL.md +1 -1
- package/bundled/skills/prizmkit-committer/SKILL.md +48 -41
- package/bundled/skills/prizmkit-deploy/SKILL.md +172 -198
- package/bundled/skills/prizmkit-deploy/references/capability-contract.md +137 -0
- package/bundled/skills/prizmkit-deploy/references/deploy-record-schema.json +1053 -0
- package/bundled/skills/prizmkit-deploy/references/deployment-declaration-schema.json +291 -0
- package/bundled/skills/prizmkit-deploy/references/legacy-migration.md +90 -0
- package/bundled/skills/prizmkit-deploy/references/policy-and-execution.md +170 -0
- package/bundled/skills/prizmkit-deploy/references/real-resource-test-policy.md +73 -0
- package/bundled/skills/prizmkit-deploy/references/verification-and-recovery.md +164 -0
- package/bundled/skills/prizmkit-deploy/scripts/validate-deploy-artifact.py +371 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +2 -2
- package/bundled/skills/prizmkit-init/SKILL.md +17 -17
- package/bundled/skills/prizmkit-init/references/update-supplement.md +5 -5
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +17 -11
- package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +95 -155
- package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +6 -5
- package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +4 -2
- package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +9 -10
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +6 -5
- package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +13 -12
- package/bundled/skills/prizmkit-retrospective/SKILL.md +3 -3
- package/bundled/skills/prizmkit-test/SKILL.md +26 -13
- package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md +8 -4
- package/bundled/skills/prizmkit-test/references/independent-test-review.md +7 -3
- package/bundled/skills/prizmkit-test/references/test-coverage-model.md +33 -10
- package/bundled/skills/prizmkit-test/references/test-report-template.md +33 -11
- package/bundled/skills/prizmkit-workflow/SKILL.md +5 -7
- package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +5 -6
- package/bundled/templates/hooks/commit-intent-status.py +9 -41
- package/bundled/templates/hooks/commit-intent.json +3 -3
- package/bundled/templates/hooks/diff-prizm-docs.py +3 -1
- package/bundled/templates/hooks/prizm-pre-commit.py +32 -6
- package/bundled/templates/hooks/run-python-hook.cjs +44 -0
- package/bundled/templates/hooks/validate-prizm-docs.py +399 -173
- package/bundled/templates/project-memory-template.md +19 -19
- package/package.json +1 -1
- package/src/clean.js +6 -7
- package/src/gitignore-template.js +8 -12
- package/src/scaffold.js +125 -71
- package/bundled/skills/prizmkit-deploy/assets/deploy-document-template.md +0 -89
- package/bundled/skills/prizmkit-deploy/references/ci-cd-workflows.md +0 -145
- package/bundled/skills/prizmkit-deploy/references/cloud-platform-deploy.md +0 -109
- package/bundled/skills/prizmkit-deploy/references/data-safety-examples.md +0 -120
- package/bundled/skills/prizmkit-deploy/references/database-setup.md +0 -65
- package/bundled/skills/prizmkit-deploy/references/deploy-config-schema.md +0 -150
- package/bundled/skills/prizmkit-deploy/references/deploy-history-schema.md +0 -78
- package/bundled/skills/prizmkit-deploy/references/deploy-metadata-schema.json +0 -49
- package/bundled/skills/prizmkit-deploy/references/deployment-modes.md +0 -50
- package/bundled/skills/prizmkit-deploy/references/direct-upload.md +0 -26
- package/bundled/skills/prizmkit-deploy/references/dns-setup.md +0 -42
- package/bundled/skills/prizmkit-deploy/references/docker-deploy.md +0 -31
- package/bundled/skills/prizmkit-deploy/references/firewall-setup.md +0 -37
- package/bundled/skills/prizmkit-deploy/references/live-validation-notes.md +0 -21
- package/bundled/skills/prizmkit-deploy/references/nginx-blue-green.md +0 -59
- package/bundled/skills/prizmkit-deploy/references/pending-input-schema.json +0 -164
- package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +0 -221
- package/bundled/skills/prizmkit-deploy/references/ssh-bootstrap-flow.md +0 -49
- package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +0 -41
- package/bundled/skills/prizmkit-deploy/references/ssh-takeover.md +0 -20
- package/bundled/skills/prizmkit-deploy/references/ssl-setup.md +0 -56
|
@@ -7,10 +7,10 @@ PRECONDITION: `.prizmkit/prizm-docs/` exists with `root.prizm`.
|
|
|
7
7
|
Use this operation for manual edits, merges, rebases, branch switches, generated code movement, or other changes that did not pass through `/prizmkit-retrospective`. During ordinary feature/bugfix/refactor work, use `/prizmkit-retrospective` instead.
|
|
8
8
|
|
|
9
9
|
STEPS:
|
|
10
|
-
1. Identify drift source
|
|
10
|
+
1. Identify drift source from explicit user context when supplied; otherwise run a bounded source/document rescan over registered modules and concrete missing/stale pointers. Do not require Git history, inspect tracking state, or change behavior because managed files are ignored, untracked, or tracked.
|
|
11
11
|
2. Map changed files to modules through MODULE_INDEX or MODULE_GROUPS in `root.prizm`, then resolve mirrored SUBDIRS or flat-module DETAILS ownership from the relevant L1.
|
|
12
12
|
3. Classify each source change as A, D, M, or R, but do not mechanically turn changes into documentation. Treat every possible file, interface, dependency, flow, trap, decision, rule, and summary as a candidate and apply the future-incorrect-modification Value Gate.
|
|
13
|
-
4. Before writing any existing L2, L1, or L0 target, read that target and
|
|
13
|
+
4. Before writing any existing L2, L1, or L0 target, read that complete target and complete resolving parent/child pointer documents. Build a protected set of still-valid public/wire contracts, cross-module constraints, non-obvious dependencies, traps, decisions with necessary rationale, likely-to-recur rejected alternatives, side effects, and security/data-integrity/concurrency/transaction/compatibility rules.
|
|
14
14
|
5. Apply the Cleanup Gate by semantic meaning:
|
|
15
15
|
- update an equivalent entry in place rather than appending alternate wording
|
|
16
16
|
- merge synonymous entries into one shortest complete meaning
|
|
@@ -27,8 +27,9 @@ STEPS:
|
|
|
27
27
|
- semantic details require the complete CONCERN terminal shape, explicit non-empty/non-overlapping FILES ownership, and one resolving L1 DETAILS entry
|
|
28
28
|
- ambiguous concern identity, empty normalization, mirrored-path/slug collision, or overlapping ownership blocks creation and reports the manual decision; never use task IDs or numeric suffixes
|
|
29
29
|
11. Measure all affected targets by exact raw UTF-8 bytes with L0/L1 4096B and L2 5120B limits. Natural content below 80% remains unchanged; warning-range content is valid and reported. Clean, move, or safely split rewritten targets at 90% or above toward 3277-3686B for L0/L1 or 4096-4607B for L2. If a hard-limit error or repeated pressure cannot be resolved without deleting protected knowledge, block the write.
|
|
30
|
-
12.
|
|
31
|
-
13.
|
|
32
|
-
14.
|
|
30
|
+
12. Preflight complete candidate bytes, write validated targets bottom-up, compare each candidate with current bytes, and skip byte-identical replacements.
|
|
31
|
+
13. Re-read actual bytes and validate Value/Cleanup compliance, parent-summary boundaries, semantic ownership/identity, pointers in both directions, hierarchy, capacity, memory hygiene, and format. Warning-only capacity results pass; hard-limit or format errors fail.
|
|
32
|
+
14. If any post-write check fails, restore every existing target to its exact pre-write bytes and remove invalid new targets before returning a blocker.
|
|
33
|
+
15. Report updated, created, removed, merged, protected, and skipped facts/docs with reasons plus capacity diagnostics ordered by descending utilization. Do not stage, commit, force-add, modify or interpret ignore policy, or require Git history.
|
|
33
34
|
|
|
34
35
|
OUTPUT: List updated, created, removed, merged, protected, and skipped docs/facts with reasons; sorted capacity diagnostics; ambiguity blockers; and an explicit statement that this was out-of-band repair/resync, not a normal development retrospective.
|
|
@@ -5,17 +5,18 @@ Check format compliance and consistency of all .prizm docs.
|
|
|
5
5
|
PRECONDITION: .prizmkit/prizm-docs/ exists.
|
|
6
6
|
|
|
7
7
|
STEPS:
|
|
8
|
-
1.
|
|
9
|
-
2.
|
|
10
|
-
3.
|
|
11
|
-
4. CAPACITY
|
|
12
|
-
5. CAPACITY
|
|
13
|
-
6.
|
|
14
|
-
7.
|
|
15
|
-
8.
|
|
16
|
-
9.
|
|
17
|
-
10.
|
|
18
|
-
11.
|
|
19
|
-
12.
|
|
8
|
+
1. SNAPSHOT CHECK: `--all` validates every current working-tree `.prizm` document when the documentation tree exists. `--staged` is a no-op when no Prizm document is staged; otherwise it validates every `.prizm` blob in the Git index as one complete pointer snapshot, including staged additions/deletions, without reading unstaged working copies.
|
|
9
|
+
2. FORMAT CHECK: Verify all `.prizm` files use KEY: value/list format. Flag prose lines, code blocks, markdown headers, horizontal rules, invalid TRAPS severity, and prohibited history/date/workflow/branch/absolute/artifact metadata. `[REVIEW]` before severity remains a valid temporary staleness marker.
|
|
10
|
+
3. VALUE CHECK: Flag source-derivable signatures/structure, task or change history, test inventories, temporary conclusions, stale statements, duplicate meanings, long procedures, low-value file lists, line-count/complexity inventories, and parent copies of complete child behavior. Do not flag a still-valid public/wire contract, cross-module constraint, non-obvious dependency, trap, durable decision/rejected rationale, side effect, or security/data-integrity/concurrency/transaction/compatibility rule merely because it consumes capacity.
|
|
11
|
+
4. CAPACITY CHECK: Measure exact raw UTF-8 bytes. Classify only the exact root as L0/4096B, direct children as L1/4096B, and nested mirrored or semantic documents as L2/5120B. Bands are normal below 80%, warning from 80% to below 90%, strong-warning from 90% through 100%, and error above 100%.
|
|
12
|
+
5. CAPACITY REPORT: Sort all non-normal entries by exact descending utilization using integer ratio comparison, then repository-relative path for ties. Every entry includes path, level, current bytes, hard limit, band, target range (3277-3686B for L0/L1; 4096-4607B for L2), and level-appropriate trim, deduplicate, move-to-child, or semantic-split actions.
|
|
13
|
+
6. CAPACITY RESULT: Warning and strong-warning entries are advisory and do not fail Validate when no other violation exists. Any byte above a hard limit is an error and fails; format, pointer, hierarchy, ownership, or completeness errors also fail and are never downgraded because capacity is only a warning.
|
|
14
|
+
7. POINTER/PARENT CHECK: Verify every arrow resolves. L0/L1 contain concise summaries and pointers rather than copied L2 INTERFACES/DATA_FLOW/TRAPS/DECISIONS/full RULES. SUBDIRS targets mirrored source-submodule L2. DETAILS uses exactly `- <concern-slug>: <one-line stable behavior summary> -> .prizmkit/prizm-docs/<module>/<concern-slug>.prizm` and targets one matching semantic L2.
|
|
15
|
+
8. SEMANTIC IDENTITY/OWNERSHIP CHECK: For each semantic L2, verify required fields MODULE, CONCERN, FILES, RESPONSIBILITY, INTERFACES, DATA_FLOW, KEY_FILES, DEPENDENCIES, RULES, TRAPS, and DECISIONS; verify `CONCERN: <stable concern identity> | SLUG: <concern-slug>`; rerun Unicode NFKC/lowercase/kebab normalization; require non-empty explicit repository-relative FILES ownership with no sibling overlap; and require exact parent/path/slug agreement. A mirrored source-submodule path has precedence. Ambiguous identity, collision, or overlap is a validation error requiring a manual decision, not a numbered or task-named repair.
|
|
16
|
+
9. COMPLETENESS CHECK: Verify exact root has `PRIZM_VERSION: 4`, PROJECT, LANG, RULES, and exactly one of MODULE_INDEX/MODULE_GROUPS. Verify every direct-child L1 has MODULE, FILES, RESPONSIBILITY, DEPENDENCIES, no CONCERN, and none of INTERFACES/DATA_FLOW/TRAPS/DECISIONS. Verify every root module pointer targets L1 and every L1 SUBDIRS/DETAILS pointer targets nested L2. Verify mirrored L2 has MODULE, FILES, RESPONSIBILITY, INTERFACES, KEY_FILES, DEPENDENCIES, and TRAPS with no CONCERN field; DATA_FLOW, RULES, DECISIONS, and domain sections remain optional when no fact passes the Value Gate. In semantic L2 only, explicit `<SECTION>: none` satisfies a required behavioral section when no fact passes the Value Gate.
|
|
17
|
+
10. STALENESS CHECK: When requested as a separate advisory health check, compare document/source filesystem times from current mapped ownership. Validation itself never requires Git history, interprets ignore rules, or treats ignored/untracked/tracked state as an error.
|
|
18
|
+
11. RULES HIERARCHY CHECK: Verify L1/L2 RULES do not contradict authoritative root RULES.
|
|
19
|
+
12. TRAPS STALENESS CHECK: When an L2 TRAPS section has more than 8 entries, flag entries lacking `STALE_IF:` or `REF:` as `NEEDS_METADATA`; do not auto-remove them.
|
|
20
|
+
13. SCALE CHECK: If MODULE_INDEX cannot fit within L0, require MODULE_GROUPS. Never allow a project-size override, limits above 4096B/4096B/5120B, L3/fourth-level documents, a memory state machine, or a fact scoring system.
|
|
20
21
|
|
|
21
22
|
OUTPUT: Validation report with PASS/FAIL per check, sorted non-normal capacity entries, issue paths with actionable fixes, and an exit result. Warning-only capacity diagnostics exit successfully; any hard-limit or other validation error exits nonzero.
|
|
@@ -23,7 +23,7 @@ Do not discover a different artifact directory, expand the path set, or infer pr
|
|
|
23
23
|
|
|
24
24
|
`prizmkit-retrospective` owns only targeted structural documentation synchronization, durable knowledge injection, and `{artifact_dir}/retrospective-result.json` for the supplied paths. It does not invoke another Skill, does not read or mutate caller or checkpoint state, and does not choose stage order or routing.
|
|
25
25
|
|
|
26
|
-
It does not stage, commit, reset, checkout, or stash; it does not
|
|
26
|
+
It does not stage, commit, force-add, reset, checkout, or stash; it does not add, remove, or interpret `.gitignore` entries; and it does not directly edit generated platform outputs. `.prizmkit/**` is the PrizmKit framework directory, and this Skill owns only its exact documentation/result writes. The project controls whether those paths are ignored, untracked, or tracked; retrospective behavior is otherwise identical and never requires Git history. Capacity maintenance does not add a capacity state machine, fact scoring system, routing field, caller-state field, or fourth documentation level. The stage returns `RETRO_COMPLETE` or `RETRO_BLOCKED` and stops.
|
|
27
27
|
|
|
28
28
|
## When to Use
|
|
29
29
|
|
|
@@ -62,7 +62,7 @@ Reject source-derivable structure or signatures, transient conclusions, historic
|
|
|
62
62
|
|
|
63
63
|
For every existing target:
|
|
64
64
|
|
|
65
|
-
1. Read each existing target before preparing its replacement, including
|
|
65
|
+
1. Read each complete existing target before preparing its replacement, including every complete resolving parent/child pointer document necessary for that target.
|
|
66
66
|
2. Establish the protected set of still-valid contracts, constraints, traps, rules, data flow, dependencies, decisions, side effects, and safety/integrity knowledge.
|
|
67
67
|
3. Match existing and candidate facts by semantic meaning; update the canonical entry in place, merge synonymous facts, and remove obsolete, stale, derivable, duplicate, conflicting, or parent-copied material.
|
|
68
68
|
4. Add only genuinely new facts that pass the Value Gate and have no equivalent canonical entry. Append-only synchronization is prohibited.
|
|
@@ -75,7 +75,7 @@ Read `${SKILL_DIR}/references/structural-sync-steps.md` and run its preflight fo
|
|
|
75
75
|
|
|
76
76
|
1. Measure the existing target's exact raw UTF-8 bytes.
|
|
77
77
|
2. Build the complete candidate result, including cleanup, before replacement and measure its exact raw UTF-8 bytes.
|
|
78
|
-
3. Apply hard limits
|
|
78
|
+
3. Apply path-classified hard limits: exact `.prizmkit/prizm-docs/root.prizm` uses 4096B, every other direct `.prizm` child uses 4096B, and every nested `.prizm` document uses 5120B. Classify normal below 80%, warning from 80% to below 90%, strong-warning from 90% through the hard limit, and error above the hard limit.
|
|
79
79
|
4. If current or candidate content reaches at least 80%, perform the minimum safe cleanup or semantic split before final replacement. Aim for 3277–3686B for a root/module index or 4096–4607B for a detail document, preserving approximately 10% headroom; never pad naturally concise output.
|
|
80
80
|
5. Never delete protected knowledge merely to satisfy a byte check. If protected knowledge cannot fit, use an unambiguous stable semantic boundary or block safely.
|
|
81
81
|
|
|
@@ -61,6 +61,18 @@ Do not create `.prizmkit/test/evidence/`, manifests, hashes, attestations, packa
|
|
|
61
61
|
|
|
62
62
|
Do not infer the active requirement solely from the name of an old artifact directory. Do not use a historical worktree, second checkout, mutation proof, baseline-failure proof, or test overlay.
|
|
63
63
|
|
|
64
|
+
## Evidence Obligation Classification
|
|
65
|
+
|
|
66
|
+
Read the verdict-relevance rules in `${SKILL_DIR}/references/test-coverage-model.md`. Before assigning verdict impact, classify every material acceptance criterion, composition check, environment prerequisite, and failed diagnostic:
|
|
67
|
+
|
|
68
|
+
- `automated-required`: the default; missing safe verdict evidence blocks `TEST_PASS`;
|
|
69
|
+
- `manual-external-nonblocking`: a confirmed specification, acceptance criterion, or explicit caller decision says physical, public, production-account, or human-confirmation evidence may remain pending after the automated software-change verdict;
|
|
70
|
+
- `out-of-scope-diagnostic`: a current-checkout failure is non-blocking only when affected-module and Regression Ring verification pass, it is outside changed paths and concrete coupling, it is deterministic, and no changed dependency, configuration, generated artifact, or shared contract caused it.
|
|
71
|
+
|
|
72
|
+
The default is `automated-required`. Difficulty, duration, cost, agent inability, or absent safely constructible local tooling or isolated services cannot downgrade an `automated-required` obligation. An explicit requirement or project rule that makes broad validation mandatory remains authoritative. Ambiguous authority or verdict relevance remains blocking. Do not claim historical or pre-existing provenance without forbidden baseline comparison.
|
|
73
|
+
|
|
74
|
+
Keep authorized deferred evidence visible without claiming it passed or authorizing release/deployment. It is not an unresolved testing-domain item; `TEST_PASS` keeps `unresolved_items` empty when all automated-required obligations pass.
|
|
75
|
+
|
|
64
76
|
## Coverage Model
|
|
65
77
|
|
|
66
78
|
Read `${SKILL_DIR}/references/test-coverage-model.md` before designing or reviewing tests.
|
|
@@ -143,7 +155,7 @@ A test cannot prove a property that depends on production composition it replace
|
|
|
143
155
|
6. For any verdict-capable serialization or multi-layer risk in removed composition, require provider/consumer contract evidence, a composition-preserving integration test, or a Full-stack path appropriate to the risk and keeping the defect-bearing boundary real.
|
|
144
156
|
7. For state-changing workflows, verify commit point, cancellation, pending/duplicate protection, failure recovery, reload or re-entry, retry/conflict/idempotency, and downstream consumption.
|
|
145
157
|
|
|
146
|
-
If
|
|
158
|
+
If composition-preserving evidence required by an `automated-required` obligation cannot run in a proven safe isolated environment, return `TEST_BLOCKED`. Never substitute a lower-layer green test or downgrade the proof requirement. Explicitly authorized `manual-external-nonblocking` evidence remains reported as unproven but does not become part of the current automated verdict.
|
|
147
159
|
|
|
148
160
|
Reuse an adequate existing framework. Add only the smallest necessary project-native infrastructure when a required property cannot otherwise be expressed.
|
|
149
161
|
|
|
@@ -162,7 +174,7 @@ A nonzero execution is testing feedback, not an immediate terminal result. Class
|
|
|
162
174
|
| `test-defect` | Repair the test, fixture, mock, import, syntax, or test infrastructure. |
|
|
163
175
|
| `local-production-defect` | Repair the proven internal implementation defect when public and cross-module contracts remain unchanged. |
|
|
164
176
|
| `high-risk-production-defect` | Do not repair it in this invocation; record the proven defect and return `TEST_NEEDS_FIXES`. |
|
|
165
|
-
| `environment-unavailable` | Return `TEST_BLOCKED`
|
|
177
|
+
| `environment-unavailable` | Return `TEST_BLOCKED` when the unavailable safe prerequisite is `automated-required`; record an authorized `manual-external-nonblocking` prerequisite without treating it as an execution failure. |
|
|
166
178
|
| `truth-unresolved` | Return `TEST_BLOCKED`; never guess the assertion. |
|
|
167
179
|
| `flaky-or-unreliable` | Diagnose within budget; otherwise return `TEST_BLOCKED`. |
|
|
168
180
|
|
|
@@ -207,6 +219,7 @@ unresolved_findings: 0
|
|
|
207
219
|
Every complete round checks:
|
|
208
220
|
|
|
209
221
|
- missing behavior, acceptance criteria, Regression Ring edges, and applicable risk dimensions;
|
|
222
|
+
- every evidence-obligation classification, its authority, unsupported obligation downgrade, and any deferred evidence incorrectly treated as passed or verdict-capable;
|
|
210
223
|
- critical low-level boundary logic;
|
|
211
224
|
- incorrect truth precedence or expected behavior;
|
|
212
225
|
- weak, vacuous, implementation-only, nondeterministic, or flaky assertions;
|
|
@@ -267,7 +280,7 @@ Read `${SKILL_DIR}/references/boundary-contract-and-test-double-guidance.md` for
|
|
|
267
280
|
- Never use production credentials, production databases/APIs/queues/storage, real user data, or destructive external operations.
|
|
268
281
|
- If an endpoint cannot be proven non-production, do not connect to it.
|
|
269
282
|
- Use contract-backed local doubles or project-owned isolated services only within their stated proof boundary.
|
|
270
|
-
- Missing fidelity or composition evidence
|
|
283
|
+
- Missing fidelity or composition evidence for an `automated-required` obligation produces `TEST_BLOCKED`, not a conditional pass; authorized deferred external/manual evidence stays visible and unproven.
|
|
271
284
|
|
|
272
285
|
## Final Verification
|
|
273
286
|
|
|
@@ -275,13 +288,13 @@ Before writing `TEST_PASS`:
|
|
|
275
288
|
|
|
276
289
|
1. Main-Agent review converged on the exact final state.
|
|
277
290
|
2. Independent review converged or was strictly and visibly downgraded under its capability contract.
|
|
278
|
-
3. Every required focused, module/component, consumer/provider contract, integration, actual-composition E2E, affected-module, and Regression Ring test passes reliably.
|
|
279
|
-
4. Every verdict
|
|
280
|
-
5. Every verdict
|
|
281
|
-
6.
|
|
282
|
-
7. No accepted correction, unresolved finding, verdict
|
|
283
|
-
8.
|
|
284
|
-
9. No mutation occurred after
|
|
291
|
+
3. Every `automated-required` focused, module/component, consumer/provider contract, integration, actual-composition E2E, affected-module, and Regression Ring test passes reliably.
|
|
292
|
+
4. Every automated-verdict test double has boundary-appropriate authority and fidelity proof, and every test-layer claim matches actual composition.
|
|
293
|
+
5. Every automated-verdict property in removed composition has composition-preserving evidence; applicable Provider Contract Tests assert raw wire output and state-changing workflows cover the required lifecycle.
|
|
294
|
+
6. Every regression concretely coupled to the change passes, and every project-wide command made a whole-result completion gate by a confirmed requirement or explicit project rule passes; only other broad failures may use `out-of-scope-diagnostic`.
|
|
295
|
+
7. No accepted correction, unresolved finding, automated-verdict scope edge, missing required fidelity/composition proof, or required environment check remains.
|
|
296
|
+
8. Every `manual-external-nonblocking` item is authoritatively classified, visibly unproven, and separate from release/deployment authorization.
|
|
297
|
+
9. No high-risk production defect or correction remains, and no mutation occurred after final review and execution.
|
|
285
298
|
|
|
286
299
|
## Terminal Results
|
|
287
300
|
|
|
@@ -291,11 +304,11 @@ Only these testing-domain outcomes are valid:
|
|
|
291
304
|
TEST_PASS | TEST_NEEDS_FIXES | TEST_BLOCKED
|
|
292
305
|
```
|
|
293
306
|
|
|
294
|
-
- `TEST_PASS`: final reviewed state passes every required
|
|
307
|
+
- `TEST_PASS`: final reviewed state passes every `automated-required` obligation and no high-risk correction remains; authorized deferred external/manual evidence may remain visibly unproven.
|
|
295
308
|
- `TEST_NEEDS_FIXES`: a known correction remains or a testing-local review/repair budget did not converge.
|
|
296
|
-
- `TEST_BLOCKED`: expected truth, safe input, environment, execution reliability, external-target safety, or required review input prevents a safe verdict.
|
|
309
|
+
- `TEST_BLOCKED`: expected truth, safe input, required automated environment, execution reliability, external-target safety, or required review input prevents a safe verdict.
|
|
297
310
|
|
|
298
|
-
No conditional pass exists.
|
|
311
|
+
No conditional pass exists. A separate project-native status such as `MANUAL_VERIFICATION_REQUIRED` describes deferred evidence, not a fourth Test result or proof that external/manual behavior passed.
|
|
299
312
|
|
|
300
313
|
## Terminal Report and Result
|
|
301
314
|
|
package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Apply one contract discipline to every serialized or producer-consumer boundary, whether internal or external: browser/backend APIs, cross-module endpoints, persistence, queues, filesystems, caches, generated clients/servers, SDK providers, and any test double that replaces a producer or consumer.
|
|
6
6
|
|
|
7
|
-
Mocks are test tools, not proof of provider behavior or a deployed environment. Consumer-local types, fixtures, and mocks are expectations, not provider truth. A test cannot prove a property that depends on production composition it replaces.
|
|
7
|
+
Mocks are test tools, not proof of provider behavior or a deployed environment. Consumer-local types, fixtures, and mocks are expectations, not provider truth. A test cannot prove a property that depends on production composition it replaces. Apply the Test coverage model's evidence-obligation classification before deciding whether that property belongs to the current automated verdict.
|
|
8
8
|
|
|
9
9
|
## Boundary-Specific Contract Authority
|
|
10
10
|
|
|
@@ -153,7 +153,9 @@ Lower layers may diagnose a defect, but they cannot supply verdict evidence for
|
|
|
153
153
|
3. verify the preserving test would fail while the target defect exists;
|
|
154
154
|
4. record the preserving evidence and remaining risk in the report.
|
|
155
155
|
|
|
156
|
-
If required composition-preserving verification cannot run in a proven safe isolated environment, return `TEST_BLOCKED`. Do not substitute a lower-layer green result or relabel a Mock Browser Test as E2E.
|
|
156
|
+
If required composition-preserving verification cannot run in a proven safe isolated environment, return `TEST_BLOCKED`. Required composition means an `automated-required` property under the authority-driven evidence-obligation classification. Difficulty, duration, cost, agent inability, or absent safely constructible local tooling or isolated services cannot downgrade an `automated-required` obligation. Do not substitute a lower-layer green result or relabel a Mock Browser Test as E2E.
|
|
157
|
+
|
|
158
|
+
An explicitly authorized `manual-external-nonblocking` obligation may remain unexecuted for the current automated software-change verdict, but it stays visible as unproven and cannot be used to claim provider compatibility, deployed behavior, release readiness, or physical acceptance.
|
|
157
159
|
|
|
158
160
|
## Databases and Stateful Services
|
|
159
161
|
|
|
@@ -179,7 +181,7 @@ Never use:
|
|
|
179
181
|
- a target whose non-production status cannot be established;
|
|
180
182
|
- destructive operations against external data.
|
|
181
183
|
|
|
182
|
-
Project configuration may be reused only when it demonstrably selects a safe isolated test target. If safety cannot be proven, do not connect; report the unexecuted check and return `TEST_BLOCKED` when it is
|
|
184
|
+
Project configuration may be reused only when it demonstrably selects a safe isolated test target. If safety cannot be proven, do not connect; report the unexecuted check and return `TEST_BLOCKED` when it is `automated-required`. A confirmed non-verdict manual/external target remains deferred and unproven rather than becoming permission to connect.
|
|
183
185
|
|
|
184
186
|
## Reporting
|
|
185
187
|
|
|
@@ -187,9 +189,11 @@ For every verdict-relevant boundary or test double, complete the Boundary and Te
|
|
|
187
189
|
|
|
188
190
|
Also record:
|
|
189
191
|
|
|
192
|
+
- the property's `automated-required` or `manual-external-nonblocking` obligation and its authority;
|
|
190
193
|
- variants exercised;
|
|
191
194
|
- production resources used: `no`;
|
|
192
|
-
- unresolved fidelity or deployed-environment risk
|
|
195
|
+
- unresolved fidelity or deployed-environment risk;
|
|
196
|
+
- authorized deferred external or manual evidence as visible unproven status, never as a conditional pass or unresolved testing-domain item.
|
|
193
197
|
|
|
194
198
|
Do not claim that a local mock, fake, contract snapshot, container, isolated service, or Mock Browser Test verifies composition it replaces or a deployed production environment.
|
|
195
199
|
|
|
@@ -66,7 +66,7 @@ The Main Agent supplies:
|
|
|
66
66
|
- original requirement and confirmed clarifications;
|
|
67
67
|
- exact artifact, spec, and plan paths plus current contents;
|
|
68
68
|
- complete current production-and-test change;
|
|
69
|
-
- affected business module, observable behaviors, applicable risks, and
|
|
69
|
+
- affected business module, observable behaviors, applicable risks, Regression Ring, and the authority-driven evidence-obligation classification;
|
|
70
70
|
- existing, added, and modified tests, fixtures, mocks, schemas, contracts, selected layers, and the complete boundary/test-double inventory with authority, fidelity, removed composition, proof limits, preserving evidence, and verdict impact;
|
|
71
71
|
- native test commands and results executed by Main Agent;
|
|
72
72
|
- testing-local repairs;
|
|
@@ -112,6 +112,10 @@ Execution boundaries:
|
|
|
112
112
|
|
|
113
113
|
First validate input consistency. Then review:
|
|
114
114
|
- requirement and acceptance-criteria coverage;
|
|
115
|
+
- every evidence obligation defaulting to automated-required unless a confirmed specification, acceptance criterion, or explicit caller decision authorizes non-verdict manual/external deferral;
|
|
116
|
+
- any unsupported obligation downgrade based only on difficulty, duration, cost, agent inability, or unavailable safely constructible tooling;
|
|
117
|
+
- authorized deferred external or manual evidence remaining visible and unproven without being treated as a verdict blocker or passed behavior;
|
|
118
|
+
- every out-of-scope diagnostic satisfying the exact current-checkout path, coupling, determinism, cause, and project-rule gate;
|
|
115
119
|
- complete observable behavior of the affected module;
|
|
116
120
|
- critical low-level logic and exact boundaries;
|
|
117
121
|
- functional, boundary, error, state, side-effect, permission, concurrency, idempotency, time, dependency, and consumer risks;
|
|
@@ -131,7 +135,7 @@ First validate input consistency. Then review:
|
|
|
131
135
|
- production defects or attempted repairs outside the permitted testing-local repair boundary;
|
|
132
136
|
- remaining risks being stated honestly.
|
|
133
137
|
|
|
134
|
-
Return `CORRECTION_NEEDED` when a verdict-relevant producer-consumer combination is replaced by a test double without authoritative fidelity proof and composition-preserving evidence,
|
|
138
|
+
Return `CORRECTION_NEEDED` when a verdict-relevant producer-consumer combination is replaced by a test double without authoritative fidelity proof and composition-preserving evidence, when a test-layer claim exceeds the actual composition executed, when an unsupported obligation downgrade weakens required automation, or when authorized deferred external or manual evidence is the sole reason an otherwise complete automated verdict is blocked.
|
|
135
139
|
|
|
136
140
|
Do not rewrite the requirement, modify code, execute tests, or perform broad exploration.
|
|
137
141
|
Return exactly one result using the Reviewer Output Protocol.
|
|
@@ -269,7 +273,7 @@ Record:
|
|
|
269
273
|
- each response number `1..5`, input identity, result, and correction count;
|
|
270
274
|
- every Main-Agent adjudication and its evidence;
|
|
271
275
|
- actual repair and native verification;
|
|
272
|
-
- boundary authority/fidelity, removed-composition, proof-limit, preserving-evidence, layer-classification, and mutation-lifecycle corrections;
|
|
276
|
+
- boundary authority/fidelity, evidence-obligation authority, unsupported downgrade, deferred-evidence visibility, diagnostic-gate, removed-composition, proof-limit, preserving-evidence, layer-classification, and mutation-lifecycle corrections;
|
|
273
277
|
- whether the exact final state was independently rechecked;
|
|
274
278
|
- capability basis, continuation mode (`native`, `replacement`, `mixed`, or `not-applicable`), and replacement count.
|
|
275
279
|
|
|
@@ -36,7 +36,7 @@ Include only evidenced coupling:
|
|
|
36
36
|
- persistence, cache, lock, queue, transaction, or other shared state;
|
|
37
37
|
- registrations, configuration, or runtime discovery that concretely connects behavior.
|
|
38
38
|
|
|
39
|
-
Record dynamic or unprovable coupling as a remaining edge. An edge that can change the testing verdict prevents `TEST_PASS` until resolved.
|
|
39
|
+
Record dynamic or unprovable coupling as a remaining edge. An edge that can change the automated testing verdict prevents `TEST_PASS` until resolved; an authoritatively separate manual/external obligation remains visible under its own evidence status.
|
|
40
40
|
|
|
41
41
|
## Truth Precedence
|
|
42
42
|
|
|
@@ -51,6 +51,28 @@ Resolve expected business behavior from confirmed specifications and acceptance
|
|
|
51
51
|
|
|
52
52
|
Lower-authority material cannot override a higher-authority source or prove a property outside its boundary. Do not encode a possible implementation defect as expected behavior. Conflicting higher-precedence truth that cannot be resolved produces `TEST_BLOCKED`.
|
|
53
53
|
|
|
54
|
+
## Evidence Obligation and Verdict Relevance
|
|
55
|
+
|
|
56
|
+
Classify each material acceptance criterion, environment prerequisite, composition proof, and failing diagnostic before selecting layers or assigning verdict impact. The default is `automated-required`.
|
|
57
|
+
|
|
58
|
+
| Obligation | Authority and Meaning | Verdict Rule |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `automated-required` | The property belongs to the current software-change verdict, including safely constructible local tooling or isolated services needed to prove it. | Missing truth, safe execution, fidelity, or composition evidence prevents `TEST_PASS`. |
|
|
61
|
+
| `manual-external-nonblocking` | A confirmed specification, acceptance criterion, or explicit caller decision says physical-device, public-infrastructure, production-account, or human-confirmation evidence may remain pending after the automated software-change verdict. | Record the evidence as unproven and preserve any project-native status such as `MANUAL_VERIFICATION_REQUIRED`; do not treat it as an unresolved testing-domain item. |
|
|
62
|
+
| `out-of-scope-diagnostic` | A current-checkout failure has no concrete path, caller, consumer, contract, configuration, dependency, generated-artifact, or shared-state coupling to this change. | It may be informational only after every condition below is proven. |
|
|
63
|
+
|
|
64
|
+
Difficulty, duration, cost, agent inability, or initial absence of safely constructible local tooling or isolated services cannot downgrade an `automated-required` obligation. A manual/external classification must be explicit at a higher authority and must separate that evidence from software implementation/commit completion; inability to access an environment is not itself authority. Ambiguous authority or verdict relevance remains blocking.
|
|
65
|
+
|
|
66
|
+
A current-checkout failure is `out-of-scope-diagnostic` only when all of these hold:
|
|
67
|
+
|
|
68
|
+
1. affected-module and Regression Ring verification pass;
|
|
69
|
+
2. every failure is outside changed paths and concrete coupling;
|
|
70
|
+
3. the failure reproduces deterministically on the current state;
|
|
71
|
+
4. no changed dependency, configuration, generated artifact, or shared contract caused it;
|
|
72
|
+
5. no explicit requirement or project rule makes that broad command a completion gate.
|
|
73
|
+
|
|
74
|
+
Do not claim historical or pre-existing provenance from a historical worktree, second checkout, test overlay, or unsupported baseline comparison. If any relationship is uncertain, keep the failure verdict-capable. These classifications affect only the current automated Test verdict: they never approve release, deployment, public readiness, signing, security review, or physical-device acceptance.
|
|
75
|
+
|
|
54
76
|
## Behavior Inventory
|
|
55
77
|
|
|
56
78
|
For each observable behavior, capture enough working context to answer:
|
|
@@ -146,7 +168,7 @@ Use the lowest layer that proves a property without removing relevant compositio
|
|
|
146
168
|
|
|
147
169
|
Browser execution alone does not determine the layer. Every test claim must state the property proved and any property not proven because a test double removes relevant composition.
|
|
148
170
|
|
|
149
|
-
Not every behavior needs every layer. Record a concise reason for omitted higher layers, such as a pure library having no process or UI boundary. A missing layer blocks `TEST_PASS`
|
|
171
|
+
Not every behavior needs every layer. Record a concise reason for omitted higher layers, such as a pure library having no process or UI boundary. A missing layer blocks `TEST_PASS` when it is needed to preserve an `automated-required` verdict-capable combination; authorized manual/external evidence is reported as unproven rather than relabeled as an executed layer.
|
|
150
172
|
|
|
151
173
|
## Critical Low-Level Logic
|
|
152
174
|
|
|
@@ -200,18 +222,19 @@ Use existing line, branch, or function coverage to locate possibly omitted behav
|
|
|
200
222
|
|
|
201
223
|
Coverage is complete enough for `TEST_PASS` only when:
|
|
202
224
|
|
|
203
|
-
1. every discoverable observable behavior is represented;
|
|
204
|
-
2. every applicable risk has a credible project-native test;
|
|
225
|
+
1. every discoverable `automated-required` observable behavior is represented;
|
|
226
|
+
2. every applicable automated-verdict risk has a credible project-native test;
|
|
205
227
|
3. critical low-level logic has direct focused coverage when justified;
|
|
206
|
-
4. every verdict
|
|
207
|
-
5. selected layers preserve the property being proved and composition-preserving evidence covers every verdict
|
|
228
|
+
4. every automated-verdict boundary and test double has contract authority, fidelity proof, removed-composition, proof-limit, and remaining-risk analysis;
|
|
229
|
+
5. selected layers preserve the property being proved and composition-preserving evidence covers every automated-verdict removed combination;
|
|
208
230
|
6. provider contracts inspect risk-relevant raw wire output;
|
|
209
231
|
7. applicable state-changing workflows cover commit, cancellation, failure, re-entry, and repeated-operation semantics;
|
|
210
232
|
8. complete affected-module regression passes;
|
|
211
233
|
9. Regression Ring verification passes;
|
|
212
|
-
10. concrete unresolved coupling no longer affects the verdict;
|
|
213
|
-
11.
|
|
214
|
-
12.
|
|
215
|
-
13.
|
|
234
|
+
10. concrete unresolved coupling no longer affects the verdict and every non-blocking current-checkout failure satisfies the full diagnostic gate;
|
|
235
|
+
11. every deferred manual/external obligation has explicit authority, visible unproven status, and no false pass claim;
|
|
236
|
+
12. Main-Agent review converges;
|
|
237
|
+
13. applicable independent review converges or is strictly downgraded;
|
|
238
|
+
14. no mutation follows final review and execution.
|
|
216
239
|
|
|
217
240
|
Absolute completeness cannot be guaranteed. State remaining informational risks honestly without presenting them as proven behavior.
|
|
@@ -17,6 +17,23 @@ Create one human-readable report for every terminal result. Replace an older rep
|
|
|
17
17
|
- Test paths: <existing, added, and modified paths>
|
|
18
18
|
- Requirement source: <specification, acceptance criteria, caller request, or none>
|
|
19
19
|
|
|
20
|
+
## Evidence Obligation Classification
|
|
21
|
+
|
|
22
|
+
| Property / Check | Authority | Obligation | Evidence / Status | Verdict Impact |
|
|
23
|
+
|---|---|---|---|---|
|
|
24
|
+
| <criterion, composition, prerequisite, or diagnostic> | <confirmed spec, acceptance criterion, explicit caller decision, project rule, or coupling evidence> | automated-required / manual-external-nonblocking / out-of-scope-diagnostic | <executed result, unproven status, or exact current-checkout failure> | <passed / TEST_NEEDS_FIXES correction / TEST_BLOCKED prerequisite / non-blocking> |
|
|
25
|
+
|
|
26
|
+
- Classification ambiguities: <none or blocking list>
|
|
27
|
+
- Unsupported obligation downgrades: none
|
|
28
|
+
|
|
29
|
+
## Deferred External and Manual Evidence
|
|
30
|
+
|
|
31
|
+
| Evidence | Authority for Deferral | Current Status | Automated Verdict Rationale |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| <physical/public/production-account/human evidence or none> | <confirmed source> | MANUAL_VERIFICATION_REQUIRED / other explicit unproven status | <why it may remain pending after automated software-change completion> |
|
|
34
|
+
|
|
35
|
+
Authorized deferred evidence is not an unresolved testing-domain item, does not prove the deferred behavior, and does not authorize release or deployment.
|
|
36
|
+
|
|
20
37
|
## Affected Business Module
|
|
21
38
|
|
|
22
39
|
- Boundary: <explicit module or cohesion-derived responsibility>
|
|
@@ -63,8 +80,9 @@ Coverage metrics, when available: <diagnostic values or not collected>. Percenta
|
|
|
63
80
|
|
|
64
81
|
- Required affected-module regression complete: yes / no
|
|
65
82
|
- Required Regression Ring verification complete: yes / no
|
|
66
|
-
- Project-wide
|
|
67
|
-
- Project-wide
|
|
83
|
+
- Project-wide command executed: yes / no
|
|
84
|
+
- Project-wide command is a whole-result completion gate: yes / no, with authority
|
|
85
|
+
- Project-wide command result: passed / failed / not-run / blocked / failed-with-proven-out-of-scope-diagnostics
|
|
68
86
|
|
|
69
87
|
## Main-Agent Review
|
|
70
88
|
|
|
@@ -112,7 +130,7 @@ Coverage metrics, when available: <diagnostic values or not collected>. Percenta
|
|
|
112
130
|
|
|
113
131
|
| Property Not Proven | Composition-Preserving Test | Evidence Classification | Remaining Risk / Verdict Impact |
|
|
114
132
|
|---|---|---|---|
|
|
115
|
-
| <property outside the double-backed proof boundary> | <provider/consumer contract, integration, Full-stack E2E, or missing> | <local / consumer contract / provider contract / integration / Mock Browser / Full-stack> | <none, informational, TEST_NEEDS_FIXES correction, or TEST_BLOCKED prerequisite> |
|
|
133
|
+
| <property outside the double-backed proof boundary> | <provider/consumer contract, integration, Full-stack E2E, authorized manual/external deferral, or missing> | <local / consumer contract / provider contract / integration / Mock Browser / Full-stack / manual-external-nonblocking> | <none, informational, deferred-unproven, TEST_NEEDS_FIXES correction, or TEST_BLOCKED prerequisite> |
|
|
116
134
|
|
|
117
135
|
- Test-layer claims match actual composition: yes / no
|
|
118
136
|
- Every verdict-capable removed combination has preserving evidence: yes / no
|
|
@@ -122,7 +140,9 @@ Coverage metrics, when available: <diagnostic values or not collected>. Percenta
|
|
|
122
140
|
|
|
123
141
|
## Remaining Risks and Unresolved Items
|
|
124
142
|
|
|
125
|
-
- <none, or every known correction/blocker with concrete target and next required fact>
|
|
143
|
+
- Testing-domain unresolved items: <none, or every known correction/blocker with concrete target and next required fact>
|
|
144
|
+
- Informational risks and proven out-of-scope diagnostics: <none or exact list; do not claim unsupported historical provenance>
|
|
145
|
+
- Deferred external/manual evidence is reported in its dedicated section, not repeated as an unresolved testing-domain item.
|
|
126
146
|
```
|
|
127
147
|
|
|
128
148
|
## Result Rendering Rules
|
|
@@ -131,19 +151,21 @@ Render `TEST_PASS` only when:
|
|
|
131
151
|
|
|
132
152
|
- mandatory Main-Agent review converged;
|
|
133
153
|
- independent review converged or was visibly downgraded under its strict capability gate;
|
|
134
|
-
-
|
|
135
|
-
- every verdict
|
|
136
|
-
- every verdict
|
|
154
|
+
- every `automated-required` native test and composition obligation passes on the exact final state;
|
|
155
|
+
- every automated-verdict test double has boundary-specific authority and fidelity proof;
|
|
156
|
+
- every automated-verdict property removed by a double has composition-preserving evidence, and every layer claim matches actual composition;
|
|
137
157
|
- applicable provider contract tests assert risk-relevant raw wire payload and state-changing workflows cover commit, cancellation, failure, re-entry, and repeated-operation semantics;
|
|
138
|
-
-
|
|
158
|
+
- each `manual-external-nonblocking` item has explicit authority, visible unproven status, and no false pass/release/deployment claim;
|
|
159
|
+
- each `out-of-scope-diagnostic` satisfies affected-module/Regression Ring, path/coupling, determinism, cause, and project-rule conditions;
|
|
160
|
+
- no accepted or unresolved testing-domain finding remains;
|
|
139
161
|
- no high-risk production defect or correction remains;
|
|
140
162
|
- no mutation occurred after final applicable review and execution.
|
|
141
163
|
|
|
142
164
|
Render `TEST_NEEDS_FIXES` for a known remaining correction, an exhausted testing-local review/repair budget with known work, or a proven high-risk production defect that this invocation must not repair.
|
|
143
165
|
|
|
144
|
-
Render `TEST_BLOCKED` when truth, required input, safe environment, execution reliability, external-target safety, or required Reviewer input prevents a safe verdict. This includes unavailable required composition-preserving execution and unresolved contract authority or test-double fidelity that affects the verdict; lower-layer green tests cannot substitute.
|
|
166
|
+
Render `TEST_BLOCKED` when truth, required input, an `automated-required` safe environment, execution reliability, external-target safety, obligation authority, diagnostic independence, or required Reviewer input prevents a safe verdict. This includes unavailable required composition-preserving execution and unresolved contract authority or test-double fidelity that affects the automated verdict; lower-layer green tests cannot substitute.
|
|
145
167
|
|
|
146
|
-
No conditional pass, commit authorization, release authorization, runtime classification, target hash, manifest, attestation, or package state belongs in the report.
|
|
168
|
+
Authorized `manual-external-nonblocking` evidence alone does not block an otherwise complete automated verdict, but it remains unproven. No conditional pass, commit authorization, release authorization, runtime classification, target hash, manifest, attestation, or package state belongs in the report.
|
|
147
169
|
|
|
148
170
|
## Terminal Machine Projection
|
|
149
171
|
|
|
@@ -178,6 +200,6 @@ Constraints:
|
|
|
178
200
|
- `downgraded` requires `responses=0`, a non-empty `downgrade_reason`, and `final_state_rechecked=false`.
|
|
179
201
|
- `not_applicable` requires `responses=0`, `downgrade_reason=null`, and `final_state_rechecked=false`.
|
|
180
202
|
- `independent_review.responses` is otherwise bounded from `0` through `5`.
|
|
181
|
-
- `TEST_PASS`
|
|
203
|
+
- `TEST_PASS` keeps `unresolved_items` empty; authorized deferred evidence and proven out-of-scope diagnostics remain in their human report sections. `TEST_NEEDS_FIXES` and `TEST_BLOCKED` each require at least one concise testing-domain correction or blocker string, and the list agrees with the report.
|
|
182
204
|
- Report and JSON agree on final result and production-change diagnostics.
|
|
183
205
|
- The JSON is terminal output only and is never updated as an internal checkpoint.
|
|
@@ -211,17 +211,15 @@ The internal `prizmkit-code-review` limit of ten completed review rounds remains
|
|
|
211
211
|
|
|
212
212
|
The composite reaches `/prizmkit-committer operation=interactive-commit` but must not silently create a Git commit.
|
|
213
213
|
|
|
214
|
-
The composite must validate all prior stage artifacts, derive exact non-`.prizmkit/` change paths for
|
|
214
|
+
The composite must validate all prior stage artifacts, derive exact non-`.prizmkit/` source-change paths for retrospective input, and validate its result. It then assembles one exact interactive `intended_paths` manifest from every final Git-visible requirement output, regardless of whether a justified path is under `.prizmkit/**`. Ignored paths remain naturally absent. Prizm documentation has no separate commit-ownership or retrospective-evidence admission rule.
|
|
215
215
|
|
|
216
|
-
-
|
|
217
|
-
- exact `.prizmkit/prizm-docs/**` paths listed by a consistent `RETRO_COMPLETE` + `DOCS_UPDATED` result;
|
|
218
|
-
- exact support paths explicitly owned by the spec/plan, separately labeled in the preview, covered by the support validation below, and subject to the user's confirmation of that exact manifest.
|
|
216
|
+
`.prizmkit/**` remains the framework capability boundary and ordinary Code Review black box, but project Git tracking is independent. The composite must not force-add a framework path, modify or interpret ignore policy, broadly stage, or reject a Git-visible intended path solely by directory name. Exact Runtime request/checkpoint/state and installed Runtime/host payloads remain outside the manifest because of their semantic support/bookkeeping role, not a blanket framework-directory rule. Global Secret checks apply equally to every intended path.
|
|
219
217
|
|
|
220
|
-
For each explicit support path, select and execute its applicable semantic contract before invoking Committer: instruction files require readable structure, resolvable project references, consistency with the exact requirement and applicable project conventions, and
|
|
218
|
+
For each explicit host/platform support path, select and execute its applicable semantic contract before invoking Committer: instruction files require readable structure, resolvable project references, consistency with the exact requirement and applicable project conventions, and Secret scanning; lockfiles require parse/schema checks plus owning-installer or deterministic-regeneration parity; any other support class requires an exact project-native semantic validator named by the spec/plan. User confirmation alone is not support validation. A path is not host support merely because it is under `.prizmkit/**`.
|
|
221
219
|
|
|
222
|
-
|
|
220
|
+
Invoke Committer with the same `artifact_dir`, exact `evidence_paths`, exact caller-state/bookkeeping paths in `excluded_paths`, exact `intended_paths`, conditional one-to-one host `support_validation_evidence`, and `operation=interactive-commit`. Committer validates the exact manifest and staged-set equality, presents it, waits for confirmation, and creates it only after approval.
|
|
223
221
|
|
|
224
|
-
External headless orchestration supplies explicit evidence to `operation=prepare-runtime-commit`, maps `COMMIT_REQUEST_READY` to its own pending state, and lets Python Runtime validate and execute the request.
|
|
222
|
+
External headless orchestration supplies explicit readiness evidence to `operation=prepare-runtime-commit`, maps `COMMIT_REQUEST_READY` to its own pending state, and lets Python Runtime validate and execute the request. Safe Git-visible `.prizmkit/**` task output may appear in Runtime `intended_paths`; exact Runtime bookkeeping/support, Secrets, unrelated paths, and ignored paths do not. Remote publication remains separate.
|
|
225
223
|
|
|
226
224
|
## Automatic Handoff and Manual Fallback
|
|
227
225
|
|
|
@@ -158,15 +158,14 @@ Any outer repair or continuation policy is independently owned by the caller and
|
|
|
158
158
|
Interactive execution:
|
|
159
159
|
|
|
160
160
|
```text
|
|
161
|
-
coordinator assembles exact intended_paths from final requirement paths
|
|
162
|
-
+
|
|
163
|
-
|
|
164
|
-
→ committer validates and previews the exact files and message
|
|
161
|
+
coordinator assembles exact intended_paths from all final Git-visible requirement paths, including justified `.prizmkit/**` output
|
|
162
|
+
+ separately labeled explicitly owned host support paths with one-to-one passing support_validation_evidence
|
|
163
|
+
→ committer validates ordinary task ownership, global Secret safety, and the exact files/message
|
|
165
164
|
→ waits for explicit current-user confirmation
|
|
166
165
|
→ stages exact pathspecs, creates, and verifies the local commit
|
|
167
166
|
```
|
|
168
167
|
|
|
169
|
-
|
|
168
|
+
The framework directory is not a blanket allowlist or denylist: a Git-visible `.prizmkit/**` path uses the same exact manifest, task justification, staged-set equality, Secret checks, and receipt verification as any other path, with no documentation-specific evidence. Ignored files remain absent and are never force-added. Exact Runtime request/checkpoint/state, installed Runtime/host payloads, sensitive, unknown, and unrelated paths remain excluded or blocking because of their semantic role. User confirmation alone is not host-support validation.
|
|
170
169
|
|
|
171
170
|
Pipeline execution:
|
|
172
171
|
|
|
@@ -178,7 +177,7 @@ external coordinator validates its required gates and supplies exact readiness e
|
|
|
178
177
|
→ remote publication remains separate
|
|
179
178
|
```
|
|
180
179
|
|
|
181
|
-
The preparation request is data for
|
|
180
|
+
The preparation request is data for Runtime validation, not prompt-level authorization. The committer must not stage, commit, or predeclare COMMITTED in preparation mode. Safe Git-visible `.prizmkit/**` task output may appear in Runtime `intended_paths`; ignored paths remain absent, while exact Runtime bookkeeping/support and Secrets remain excluded. Runtime verifies the commit before writing its post-commit receipt/checkpoint and never retroactively inserts those writes into the committed snapshot.
|
|
182
181
|
|
|
183
182
|
## Recovery
|
|
184
183
|
|