prizmkit 1.1.159 → 1.1.161
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/heartbeat.py +9 -6
- package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +155 -93
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +2 -2
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +9 -15
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +9 -5
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +4 -2
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +4 -2
- package/bundled/dev-pipeline/tests/test_runtime_commit.py +228 -69
- package/bundled/dev-pipeline/tests/test_unified_cli.py +182 -10
- package/bundled/rules/prizm/prizm-commit-workflow.md +14 -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 +5 -5
- package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +4 -5
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +4 -6
- package/bundled/skills/prizmkit-code-review/scripts/render_review_report.py +1 -4
- package/bundled/skills/prizmkit-committer/SKILL.md +50 -59
- 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 +28 -15
- 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 +34 -11
- package/bundled/skills/prizmkit-test/references/test-report-template.md +33 -11
- package/bundled/skills/prizmkit-workflow/SKILL.md +4 -8
- package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +10 -9
- 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
|
|
|
@@ -34,7 +34,7 @@ After writing its result, this Skill stops. It owns only testing-local source/te
|
|
|
34
34
|
|---|---|---|
|
|
35
35
|
| `scope` | No | `full-project`, `module:<name>`, `feature:<slug>`, or `this-change`. Defaults to `this-change` when current change context exists, otherwise `full-project`. |
|
|
36
36
|
| `artifact_dir` | Yes | Exact caller-supplied project-relative directory for the two terminal artifacts and any available specification, plan, and behavior context. Reuse it unchanged. |
|
|
37
|
-
| `changed_files` | No | Explicit
|
|
37
|
+
| `changed_files` | No | Explicit complete Git-visible changed paths. Highest-priority scope locator; callers coordinating a commit supply every behavior-affecting visible path regardless of provenance. |
|
|
38
38
|
| `diff_base` | No | Git comparison base when explicit changed paths are absent. |
|
|
39
39
|
| `test_commands` | No | Project-native commands when repository conventions are ambiguous. |
|
|
40
40
|
|
|
@@ -54,13 +54,25 @@ Do not create `.prizmkit/test/evidence/`, manifests, hashes, attestations, packa
|
|
|
54
54
|
|
|
55
55
|
1. Reuse current requirement and workspace context already loaded by the Main Agent.
|
|
56
56
|
2. Load `root.prizm`, the relevant module indexes, and the applicable detail docs before modifying source or tests.
|
|
57
|
-
3. Inspect current staged, unstaged, untracked, deleted, and
|
|
57
|
+
3. Inspect every current staged, unstaged, non-ignored untracked, deleted, renamed, and copied path. Treat every behavior-affecting Git-visible change, including correct pre-existing or framework/support content, as current Test scope; changed lines locate impact but never define completeness.
|
|
58
58
|
4. Read the available specification, acceptance criteria, plan, and caller-supplied behavior context only as needed to establish expected behavior.
|
|
59
59
|
5. Inspect manifests, runner configuration, CI conventions, existing test assertions, fixtures, fakes, mocks, contracts, and coverage support.
|
|
60
60
|
6. If necessary scope cannot be determined safely, report the precise missing input and return `TEST_BLOCKED` in the resolved artifact pair.
|
|
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
|
|
|
@@ -18,7 +18,7 @@ business capability or acceptance criterion
|
|
|
18
18
|
└── callers, consumers, shared contracts, and shared state
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Changed lines locate possible impact. They do not define completeness.
|
|
21
|
+
Changed lines locate possible impact. They do not define completeness. When the caller intends to commit a combined workspace, every behavior-affecting Git-visible change belongs to this scope regardless of whether it predates the active requirement or resides in product, framework, generated, instruction, lock, or host-support paths. Ignored content remains absent.
|
|
22
22
|
|
|
23
23
|
## Affected Business Module
|
|
24
24
|
|
|
@@ -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,13 @@ 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. Code Review and Test must have treated the complete behavior-affecting Git-visible workspace as their final scope, including correct changes that predated this implementation session or live in framework, generated, instruction, lock, or host-support namespaces. If production behavior changes after those final gates, re-enter Review/Test rather than carrying stale authority into Committer.
|
|
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
|
+
Invoke Committer with the same `artifact_dir`, exact `evidence_paths`, `operation=interactive-commit`, and `causal_bookkeeping_path` equal to this workflow's exact state path. Do not assemble or pass `intended_paths`, support-path admission records, namespace classifications, or ordinary content exclusions. Committer inventories and validates the complete current Git-visible workspace, presents all of it with one truthful message, waits for confirmation, and stages and creates the complete commit only after approval. A non-clean starting checkout is not a blocker when the combined final content is correct and validated.
|
|
219
217
|
|
|
220
|
-
|
|
218
|
+
Ignored paths remain naturally absent, stay local, and never block or require force-add. Global Secret, sensitive-content, merge-state, evidence-freshness, and content-correctness checks apply to every Git-visible candidate without provenance exceptions. The exact `.prizmkit/state/workflows/<requirement-identity>.json` remains local during the interactive commit because this coordinator must finalize it after Committer returns. Exact active Runtime request/checkpoint and post-commit receipt writes follow the same causal rule in automation; no broader or caller-selected exclusion is allowed.
|
|
221
219
|
|
|
222
|
-
|
|
223
|
-
|
|
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. Preparation mode preserves the existing automated contract: the complete `.prizmkit/**` tree remains outside Runtime `intended_paths`. Remote publication remains separate.
|
|
220
|
+
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 schema-v2 pathless request. Runtime commits the complete validated Git-visible workspace with only exact causal bookkeeping omitted, then verifies Git and finalizes `COMMITTED`. Remote publication remains separate.
|
|
225
221
|
|
|
226
222
|
## Automatic Handoff and Manual Fallback
|
|
227
223
|
|
|
@@ -158,27 +158,28 @@ Any outer repair or continuation policy is independently owned by the caller and
|
|
|
158
158
|
Interactive execution:
|
|
159
159
|
|
|
160
160
|
```text
|
|
161
|
-
coordinator
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
→ committer
|
|
161
|
+
coordinator validates final Review, Test, and Retrospective authority for the complete behavior-affecting Git-visible workspace
|
|
162
|
+
→ committer inventories and inspects the complete current Git-visible workspace without caller-supplied paths
|
|
163
|
+
→ committer applies global correctness, freshness, merge-state, and Secret checks
|
|
164
|
+
→ committer previews every visible change and one truthful message
|
|
165
165
|
→ waits for explicit current-user confirmation
|
|
166
|
-
→ stages
|
|
166
|
+
→ stages the complete workspace, creates, and verifies the local commit
|
|
167
167
|
```
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
Git visibility, validated final content, and confirmation determine commit scope; path provenance does not. Correct changes may predate the active requirement or live under `.prizmkit/**`, generated, instruction, lock, or host-support namespaces. Ignored files remain absent, stay local, never block, and are never force-added. If behavior-affecting content appears after final Review/Test, the evidence is stale and the workflow re-enters those gates. Sensitive, conflicted, incorrect, incoherent, unreadable, or unverifiable content blocks on its actual state rather than an unknown-path category. The exact active workflow-state path derived from the artifact basename remains outside the interactive snapshot only because the coordinator finalizes it after Committer returns; it is not a general framework exclusion.
|
|
170
170
|
|
|
171
171
|
Pipeline execution:
|
|
172
172
|
|
|
173
173
|
```text
|
|
174
174
|
external coordinator validates its required gates and supplies exact readiness evidence
|
|
175
|
-
→ committer validates
|
|
175
|
+
→ committer validates the complete Git-visible workspace and writes a schema-v2 pathless runtime-commit-request.json without Git mutation
|
|
176
176
|
→ external coordinator maps COMMIT_REQUEST_READY to its checkpoint's in_progress/COMMIT_PENDING state
|
|
177
|
-
→ Python runtime
|
|
177
|
+
→ Python runtime re-enumerates and stages the complete non-ignored workspace
|
|
178
|
+
→ Python runtime verifies the commit, writes its receipt, and finalizes checkpoint completed/COMMITTED
|
|
178
179
|
→ remote publication remains separate
|
|
179
180
|
```
|
|
180
181
|
|
|
181
|
-
The preparation request
|
|
182
|
+
The preparation request carries artifact identity, base head, and commit message, not path authorization. The committer must not stage, commit, or predeclare COMMITTED in preparation mode. Exact active request/checkpoint and post-commit receipt mutations may remain outside the committed snapshot only because their causal Runtime bookkeeping cannot truthfully precede the commit. Runtime verifies the base, non-empty commit, parent, message, receipt, and checkpoint order before integration; it never retroactively inserts post-commit writes into the snapshot.
|
|
182
183
|
|
|
183
184
|
## Recovery
|
|
184
185
|
|