prizmkit 1.1.160 → 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.
Files changed (25) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +9 -6
  3. package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +145 -110
  4. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
  5. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +2 -2
  6. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +1 -1
  7. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +1 -1
  8. package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +9 -15
  9. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +8 -5
  10. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +4 -2
  11. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +4 -2
  12. package/bundled/dev-pipeline/tests/test_runtime_commit.py +170 -66
  13. package/bundled/dev-pipeline/tests/test_unified_cli.py +172 -4
  14. package/bundled/rules/prizm/prizm-commit-workflow.md +12 -5
  15. package/bundled/skills/_metadata.json +1 -1
  16. package/bundled/skills/prizmkit-code-review/SKILL.md +5 -5
  17. package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +4 -5
  18. package/bundled/skills/prizmkit-code-review/references/review-report-template.md +4 -6
  19. package/bundled/skills/prizmkit-code-review/scripts/render_review_report.py +1 -4
  20. package/bundled/skills/prizmkit-committer/SKILL.md +47 -63
  21. package/bundled/skills/prizmkit-test/SKILL.md +2 -2
  22. package/bundled/skills/prizmkit-test/references/test-coverage-model.md +1 -1
  23. package/bundled/skills/prizmkit-workflow/SKILL.md +4 -6
  24. package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +10 -8
  25. package/package.json +1 -1
@@ -2,10 +2,17 @@
2
2
  description: "PrizmKit commit workflow rules"
3
3
  ---
4
4
 
5
+ # Commit Workflow
6
+
7
+ Do not commit after implementation alone.
8
+
5
9
  For a formal requirement:
6
10
  1. Complete `/prizmkit-retrospective` after Test and before Committer; it synchronizes durable documentation or records `NO_DOC_CHANGE` but never stages or commits.
7
- 2. Use `/prizmkit-committer` for one exact local commit operation and Conventional Commit message.
8
- 3. Interactive Committer stages only the user-confirmed exact manifest and verifies staged-set/receipt equality; broad staging and force-add are prohibited.
9
- 4. A Git-visible `.prizmkit/**` requirement path is handled like any other exact intended path and requires no documentation-specific commit evidence. Ignored paths remain absent; project tracking policy is unchanged.
10
- 5. Exact Runtime bookkeeping/support and Secrets remain excluded by semantic role. Secret checks apply globally and no framework-directory exception exists.
11
- 6. Remote publication and deployment remain separate.
11
+ 2. Use `/prizmkit-committer` for one local commit operation and one truthful Conventional Commit message.
12
+ 3. The commit candidate is the complete current Git-visible workspace: staged, unstaged, added, deleted, renamed, copied, and non-ignored untracked content, regardless of when or where each valid change originated.
13
+ 4. Final Code Review and Test authority must cover every behavior-affecting candidate. Committer inspects the complete final workspace, blocks stale or unsafe evidence, previews every visible change, and waits for explicit interactive confirmation.
14
+ 5. Interactive Committer stages the confirmed complete workspace. Headless preparation writes a schema-v2 pathless request, and Python Runtime re-enumerates and stages the complete validated workspace after `COMMIT_PENDING`.
15
+ 6. Ignored paths remain local, never block, and are never force-added. Path provenance or namespace alone never admits or excludes content.
16
+ 7. Merge conflicts, Secrets, sensitive local content, known incorrect or incoherent changes, and unverifiable content still block. Only the exact active interactive workflow state or Runtime request/checkpoint and post-commit receipt writes may remain outside the snapshot because their causal finalization follows the commit.
17
+ 8. Runtime verifies the base, parent, message, non-empty commit, recovery receipt, and checkpoint finalization before integration.
18
+ 9. Remote publication and deployment remain separate.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.160",
2
+ "version": "1.1.161",
3
3
  "skills": {
4
4
  "prizmkit": {
5
5
  "description": "Framework introduction and navigation for the formal single-requirement lifecycle, project initialization, Prizm docs, and independent deployment.",
@@ -55,19 +55,19 @@ Resolve a compatible Python 3 interpreter through the current Host's executable
55
55
 
56
56
  Review only the caller-supplied `artifact_dir`; never discover a different recent artifact. Missing or inconsistent stage input produces `NEEDS_FIXES` with the exact input blocker.
57
57
 
58
- ## Default Correctness Scope
58
+ ## Complete Git-Visible Correctness Scope
59
59
 
60
- The current requirement change outside `.prizmkit/**` is the ordinary correctness scope. Every `.prizmkit/**` path is excluded by default from correctness review, including correctness diffs, candidate findings, repairs, and verification scope. The Skill may read only exact caller-supplied `.prizmkit` artifacts such as `spec.md` and `plan.md` as evidence for the outside-framework requirement and may write its own `review-report.md`; it must not assess, report findings against, or repair their content. Neither action makes `.prizmkit` content reviewable production change. Correctness review of any framework/support artifact requires a separate explicit support-artifact review contract naming the exact artifacts and validator.
60
+ The complete current Git-visible workspace is the correctness scope: staged and unstaged tracked changes, additions, deletions, renames, copies, and non-ignored untracked files. Correct changes that predate the active requirement or implementation session remain in scope. Do not exclude, specially admit, or require a separate support contract solely because a path is under `.prizmkit/**`, generated, an instruction or lock file, a platform directory, local support, or otherwise outside the original requirement namespace.
61
61
 
62
- Generated host-support paths are also excluded by default, including `AGENTS.md`, `skills-lock.json`, installed platform directories, and local platform settings. An explicitly owned support change requires a separate explicit support-artifact validation contract; do not pull it into ordinary Code Review through workspace expansion. Record excluded changed paths in the report so exclusion is visible rather than mistaken for reviewed content.
62
+ Inspect each visible path through the applicable contract: production behavior through code and callers, tests through assertion and boundary quality, instructions through readable structure and referenced-project consistency, lock/generated content through parse or deterministic parity, and binary or specialized content through the available project-native validator. Block when correctness cannot be established safely. Ignored paths remain naturally absent and are not review findings. Artifact files read or written by this stage are evidence/output, but any such file that is Git-visible in the final workspace is still disclosed to the final commit inspection rather than hidden by provenance.
63
63
 
64
64
  ## Phase 0: Initialize Report and Reuse Current Context
65
65
 
66
66
  1. Resolve `{artifact_dir}` and `{artifact_dir}/review-report.md` from the active requirement context.
67
67
  2. At the start of each execution, initialize a replacement report through the Report Renderer Contract and `${SKILL_DIR}/references/review-report-template.md`.
68
68
  3. Within that execution, append every review round, repair batch, independent-review event, final verification, and exactly one `## Final Result` through the renderer or its visible equivalent fallback.
69
- 4. Start from the Main Agent's current requirement context and inspect the complete workspace inventory first: `git status --short`, the staged diff, and the unstaged diff. Include untracked, deleted, and renamed paths in classification, then remove default-excluded `.prizmkit/**` and host-support paths from the correctness scope before producing findings.
70
- 5. Append one validated `scope-classification` renderer event containing exact in-scope paths and exact default-excluded changed paths; do not describe exclusions as reviewed or silently repair them.
69
+ 4. Start from the Main Agent's current requirement context and inspect the complete workspace inventory first: `git status --short`, the staged diff, and the unstaged diff. Include all non-ignored untracked, deleted, renamed, and copied paths in the correctness scope before producing findings.
70
+ 5. Append one validated `scope-classification` renderer event containing the exact complete Git-visible in-scope paths. Do not maintain excluded-path metadata or claim ignored content was reviewed.
71
71
  6. Reuse current context and load only missing or potentially stale material required to resolve a concrete ambiguity, verify an acceptance criterion, or understand a changed contract.
72
72
  7. Inspect unchanged callers, dependents, contracts, or tests only when the in-scope diff changes or may violate an interface, shared behavior, or regression boundary. Do not perform an unconditional repository-wide dependency sweep.
73
73
  8. For `review_scope=delta`, focus on in-scope files and behavior affected since the prior review pass and expand only across contracts implicated by that delta.
@@ -62,15 +62,14 @@ The Main Agent supplies:
62
62
 
63
63
  - original requirement and confirmed clarifications;
64
64
  - exact artifact, spec, and plan paths plus current contents;
65
- - current workspace status after the Main Agent classifies default exclusions;
66
- - staged and unstaged tracked changes in the ordinary correctness scope;
67
- - relevant in-scope untracked, deleted, and renamed content;
68
- - exact default-excluded changed paths as visible exclusion metadata, never as reviewed content;
65
+ - the complete current Git-visible workspace status;
66
+ - all staged and unstaged tracked changes;
67
+ - all non-ignored untracked, deleted, renamed, and copied content;
69
68
  - implementation task completion and targeted verification results;
70
69
  - response number and total budget;
71
70
  - prior adjudication, actual repairs, and repair verification on continuation or replacement.
72
71
 
73
- The Main Agent runs Git and captures authoritative current-change state, then applies the Skill's default `.prizmkit/**` and generated host-support exclusions before supplying the correctness change. The Reviewer may read the exact supplied spec/plan artifacts but must not inspect other `.prizmkit` content. It may use structurally read-only checkout access to inspect unchanged callers, consumers, contracts, schemas, types, configurations, fixtures, or tests only when concrete coupling to this requirement justifies it. It must not run commands or perform an unconditional repository-wide scan. Missing or inconsistent required input produces `REVIEW_BLOCKED`, never partial success.
72
+ The Main Agent runs Git and captures the authoritative complete Git-visible change without namespace or provenance exclusions. Correct pre-existing, `.prizmkit/**`, generated, instruction, lock, and host-support content remains reviewable. The Reviewer may use structurally read-only checkout access to inspect unchanged callers, consumers, contracts, schemas, types, configurations, fixtures, or tests only when concrete coupling to a visible change justifies it. It must not run commands or perform an unconditional repository-wide scan. Ignored content is absent. Missing or inconsistent required input produces `REVIEW_BLOCKED`, never partial success.
74
73
 
75
74
  ## Initial Reviewer Prompt
76
75
 
@@ -18,18 +18,16 @@ Within that execution, append sections only. Never edit or replace an earlier pr
18
18
 
19
19
  ### Review Scope
20
20
 
21
- Append once after workspace inventory classification and before the first review round:
21
+ Append once after complete workspace inventory and before the first review round:
22
22
 
23
23
  ```markdown
24
24
  ## Review Scope
25
25
 
26
- - In-Scope Paths:
27
- - <exact requirement-owned path or None.>
28
- - Default-Excluded Changed Paths:
29
- - <exact .prizmkit/support path or None.>
26
+ - Git-Visible Paths:
27
+ - <exact staged, unstaged, deleted, renamed, copied, or non-ignored untracked path or None.>
30
28
  ```
31
29
 
32
- Paths under `.prizmkit/**` and generated host-support paths are visible exclusions, not reviewed content.
30
+ Every Git-visible path is review scope regardless of provenance. Ignored paths remain absent rather than becoming exclusions.
33
31
 
34
32
  ### Main-Agent Review Round
35
33
 
@@ -115,15 +115,12 @@ def _render_event(data: dict[str, Any]) -> str:
115
115
 
116
116
  if event == "scope-classification":
117
117
  in_scope = _require_text_list(data, "in_scope_paths")
118
- excluded = _require_text_list(data, "excluded_paths")
119
118
  return "\n".join(
120
119
  [
121
120
  "## Review Scope",
122
121
  "",
123
- "- In-Scope Paths:",
122
+ "- Git-Visible Paths:",
124
123
  *_render_path_list(in_scope),
125
- "- Default-Excluded Changed Paths:",
126
- *_render_path_list(excluded),
127
124
  ]
128
125
  )
129
126
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: "prizmkit-committer"
3
- description: "Perform one commit stage for a caller-supplied final change. Either preview and create an explicitly confirmed interactive local commit, or validate the final diff and write an exact runtime-commit-request.json without Git mutation. Returns only commit-stage results. (project)"
3
+ description: "Perform one commit stage for a caller-supplied final change. Either review, preview, confirm, and commit the complete Git-visible workspace interactively, or validate it and prepare a pathless Runtime commit request without Git mutation. Returns only commit-stage results. (project)"
4
4
  ---
5
5
 
6
6
  # PrizmKit Committer
7
7
 
8
- `/prizmkit-committer` handles one caller-supplied final change through one explicit operation:
8
+ `/prizmkit-committer` handles one caller-supplied final workspace through one explicit operation:
9
9
 
10
- - `operation=interactive-commit`: preview, confirm, stage, commit, and verify locally.
11
- - `operation=prepare-runtime-commit`: validate the intended change and write an exact commit request without staging or committing.
10
+ - `operation=interactive-commit`: inspect the complete Git-visible workspace, preview it, confirm it, stage it, commit it, and verify it locally.
11
+ - `operation=prepare-runtime-commit`: validate the complete Git-visible workspace and write a pathless Runtime request without staging or committing.
12
12
 
13
13
  Remote publication is outside this Skill.
14
14
 
@@ -18,75 +18,64 @@ Remote publication is outside this Skill.
18
18
  |---|---|---|
19
19
  | `artifact_dir` | Yes | Exact caller-supplied artifact root for this commit stage. |
20
20
  | `operation` | Yes | `interactive-commit` or `prepare-runtime-commit`. |
21
- | `evidence_paths` | Yes | Exact caller-supplied project-relative artifacts that establish commit readiness. |
22
- | `intended_paths` | Interactive only: Yes | Exact unique project-relative final paths approved by the caller for preview and staging. It is never inferred from workspace breadth. |
23
- | `support_validation_evidence` | Interactive conditional | Required only for an explicit host/platform support path. Supply one exact record per support path with `path`, named semantic `contract`, completed `validation`, `result=PASS`, and an exact `evidence_path` also present in `evidence_paths`. A path is not support merely because it is under `.prizmkit/**`. |
24
- | `excluded_paths` | No | Exact caller-owned operation metadata that the selected consumer also excludes. It cannot hide unrelated project changes. |
21
+ | `evidence_paths` | Yes | Exact caller-supplied artifacts that establish final Review/Test/Retrospective readiness. |
22
+ | `causal_bookkeeping_path` | Interactive conditional | The one exact caller-owned coordinator state whose truthful finalization must follow this commit. It cannot exclude ordinary content. |
25
23
  | `request_path` | Preparation only | Must equal `{artifact_dir}/runtime-commit-request.json`. |
26
24
 
27
- Do not discover another artifact root or infer the operation from provider, platform, prompt style, tracking policy, or human availability.
25
+ There is no caller-supplied commit-path manifest, support-path admission record, or ownership classification. Do not discover another artifact root or infer the operation from provider, platform, prompt style, tracking policy, checkout cleanliness, or human availability.
28
26
 
29
27
  ## Stage Boundary
30
28
 
31
- This Skill owns only final-change inspection and its selected commit operation. It does not invoke another Skill.
29
+ This Skill owns only final-workspace inspection and its selected commit operation. It does not invoke another Skill or repair incorrect content.
32
30
 
33
- In preparation mode it must not stage, unstage, commit, amend, reset, merge, or push.
31
+ In preparation mode it must not stage, unstage, commit, amend, reset, merge, or push. It may write only the exact Runtime request after validation succeeds.
34
32
 
35
- ## Framework Directory and Git Policy
33
+ ## Complete Git-Visible Workspace
36
34
 
37
- `.prizmkit/**` is the PrizmKit framework directory, not a blanket Git exclusion. The project alone decides which paths are ignored, untracked, or tracked. A Git-visible intended path must not be rejected, specially admitted, or require documentation-specific evidence solely because it is under `.prizmkit/**`.
35
+ The candidate commit is the complete current Git-visible workspace:
38
36
 
39
- Ignored paths remain naturally absent. Never force-add a path, add/remove/interpret `.gitignore` entries, or require a project to track framework artifacts. Exact Runtime request/checkpoint paths and installed Runtime/state may remain outside a task commit only because of their concrete operation-owned support/bookkeeping role. Global Secret and sensitive-content checks apply to every intended path, including framework paths; this contract creates no Secret exception.
37
+ - staged and unstaged tracked changes;
38
+ - added, modified, deleted, renamed, and copied paths;
39
+ - non-ignored untracked files.
40
40
 
41
- ## Step 1: Validate Supplied Evidence and Final Change
41
+ Ignored files remain naturally absent, stay local, do not block, and are never force-added. Git visibility is independent of path provenance: product, test, documentation, `.prizmkit`, generated, instruction, lock, host-support, or previously existing content receives no namespace-based admission or exclusion. A non-clean starting checkout is acceptable when the combined final workspace is correct and fully validated.
42
42
 
43
- 1. Resolve `artifact_dir` and every `evidence_paths` entry exactly as supplied. For interactive operation, also resolve every exact `intended_paths` entry without broadening it.
43
+ The only non-final Git-visible content that may remain outside a commit snapshot is exact active coordinator/Runtime bookkeeping whose final mutation cannot truthfully precede the commit: one validated caller-supplied interactive coordinator-state path, or the automated request/checkpoint and post-commit receipt. This is a causal operation boundary, not a directory allowlist, denylist, or general exclusion mechanism.
44
+
45
+ ## Step 1: Validate Evidence and the Complete Final Workspace
46
+
47
+ 1. Resolve `artifact_dir`, every `evidence_paths` entry, the optional interactive `causal_bookkeeping_path`, and preparation `request_path` exactly as supplied. Reject any causal path not proven to be the active caller-owned coordinator state finalized after this operation.
44
48
  2. Reject missing, unreadable, stale, contradictory, blocked, or explicitly non-passing readiness evidence.
45
- 3. Inspect staged, unstaged, untracked, deleted, and renamed Git-visible files with bounded Git status/diff commands. Ignored files are not discovered.
46
- 4. Confirm every intended path belongs to the supplied requirement, a concrete dependency, its tests, project documentation/configuration, a framework-managed requirement output, or an explicitly caller-owned support artifact. Unknown or unrelated Git-visible changes block rather than entering or disappearing from the manifest.
47
- 5. For each explicit host/platform support path, require one unique `support_validation_evidence` record whose `path` equals that manifest entry, whose `evidence_path` is supplied and readable, and whose named contract, completed validation, and `result=PASS` agree with that evidence. Do not apply this requirement to a path merely because its prefix is `.prizmkit/` or `.prizmkit/prizm-docs/`.
48
- 6. Reject unresolved merge state and scan all intended content/diffs for real environment files, credentials, Secrets, private keys, certificates, local settings, and other sensitive material.
49
- 7. Confirm no requested task output remains to be generated after this stage.
50
- 8. Require every intended path to be Git-visible and stageable under existing project policy. If an exact path is ignored or otherwise not stageable, report its ordinary Git visibility/policy result; never force-add or change policy.
49
+ 3. Inventory staged, unstaged, untracked, deleted, renamed, and copied Git-visible files with bounded Git status and diff commands. Do not discover ignored files. Identify only the exact active causal bookkeeping path for the selected operation; every other visible path remains a candidate.
50
+ 4. Inspect every candidate path and its relevant diff/content. Correct pre-existing or requirement-adjacent changes may be included even when they were not created in the current implementation session.
51
+ 5. Require behavior-affecting content to be covered by the supplied final Code Review and Test authority. If production behavior changed after authoritative Review/Test, block with the exact stale-evidence reason so the caller can re-enter those stages.
52
+ 6. Reject unresolved merge state, known incorrect or incoherent changes, unreadable or unverifiable final content, real environment files, credentials, Secrets, private keys/certificates, dangerous local settings, and other sensitive material. Safety checks apply globally without namespace exceptions.
53
+ 7. Confirm no requested final output remains to be generated and that at least one commit candidate exists.
54
+ 8. Never force-add, change or interpret ignore policy, or reject a valid candidate merely because it is unrelated to the original requirement or came from a dirty checkout.
51
55
 
52
- The caller decides which readiness evidence is required and how the returned stage result is used. The Skill validates supplied evidence but does not infer a larger lifecycle.
56
+ The caller decides which readiness evidence is required and how the returned stage result is routed. This Skill validates supplied evidence and current content but does not infer a larger lifecycle.
53
57
 
54
- ## Step 2: Classify Paths and Build the Exact Manifest
58
+ ## Step 2: Build the Commit Message
55
59
 
56
- Generate one concise Conventional Commit message:
60
+ Generate one concise single-line Conventional Commit message describing the combined final workspace:
57
61
 
58
62
  ```text
59
63
  <type>(<scope>): <description>
60
64
  ```
61
65
 
62
- Classify observed changes by semantic role, not by a blanket `.prizmkit/**` prefix:
63
-
64
- - **task-owned**: justified source, tests, documentation, configuration, dependencies, and framework-managed requirement output, including safe Git-visible `.prizmkit/**` paths when they belong to the supplied change;
65
- - **explicit interactive support**: host instruction/lock/config support named by the exact spec/plan, validated one-to-one, labeled separately, and confirmed by the user;
66
- - **operation-owned Runtime bookkeeping/support**: exact request/checkpoint/caller-state paths, installed `.prizmkit/dev-pipeline/**`, Runtime state, installed host payloads, and local host settings that the active consumer contract identifies as support rather than task output;
67
- - **project transient**: data naturally absent because the project's existing ignore policy excludes it;
68
- - **sensitive**: Secrets, credentials, private environment, private keys/certificates, or local settings;
69
- - **unknown Git-visible**: any remaining path whose task or explicit support ownership cannot be proven.
70
-
71
- A Prizm documentation path has no separate commit-ownership class and requires no `retrospective-result.json` authorization. Retrospective may have created it, but Committer handles a Git-visible path through the same task justification, exact manifest, Secret scan, and receipt verification as any other path.
72
-
73
- For `operation=interactive-commit`, validate caller-supplied `intended_paths` as the complete approved manifest. Every entry must be exact, unique, project-relative, currently Git-visible, stageable without force, and task-owned or explicitly validated support. Prohibit `.git/**`, exact operation-owned Runtime bookkeeping, installed host payload/state, Secrets, temporary files, and unrelated/unknown changes. Label explicit host support separately; do not label `.prizmkit/**` specially.
74
-
75
- For `operation=prepare-runtime-commit`, construct a unique exact set of all justified task-owned Git-visible changed paths, including safe `.prizmkit/**` task output. Exclude only consumer-recognized semantic support/bookkeeping, sensitive, unrelated, or naturally ignored data. Exact caller metadata in `excluded_paths` is valid only when the Python Runtime independently excludes that same semantic role. Unknown Git-visible changes block.
76
-
77
- Never use wildcard pathspecs, broad `git add .`, broad `git add -A`, or force-add. Exact literal path staging may use Git's update semantics for a listed deletion, but the path set must remain exactly the manifest.
66
+ A heterogeneous but coherent workspace may use the narrowest truthful shared scope and description. If no truthful single commit description exists, block as incoherent content rather than silently omit files.
78
67
 
79
68
  ## Step 3A: Interactive Commit
80
69
 
81
70
  For `operation=interactive-commit`:
82
71
 
83
- 1. Present exact `intended_paths`, change summary, Secret/sensitive warnings, diff statistics, proposed message, intentionally excluded semantic support, and separate labels only for admitted host support.
84
- 2. Ask the current user to confirm that exact local commit.
85
- 3. Only after confirmation, stage with `git add -- <exact paths>` semantics using literal exact pathspecs for tracked changes, deletions, and explicitly named Git-visible new files; never stage workspace breadth or force-add ignored content.
86
- 4. Verify the staged path set exactly equals the confirmed manifest and no hook/incidental operation added a path.
87
- 5. Re-run global Secret checks against the exact staged snapshot.
88
- 6. Create the local commit and verify its hash, message, parent, committed path set, and remaining workspace changes against the confirmed manifest.
89
- 7. Return `COMMITTED`, commit hash/message, committed paths, and intentional remaining changes.
72
+ 1. Present the complete Git-visible candidate set, the exact validated interactive causal bookkeeping path retained locally when visible, change summary, diff statistics, sensitive-content result, proposed message, and a clear statement that confirmation covers every candidate while ignored files stay local.
73
+ 2. Ask the current user to confirm that complete local commit.
74
+ 3. If the workspace changes after preview, repeat whole-workspace validation and preview before using the confirmation.
75
+ 4. Only after confirmation, stage the complete workspace with ordinary `git add -A -- .` semantics, then reset only the validated `causal_bookkeeping_path` in the index to `HEAD` when it is Git-visible. Never force-add ignored content or accept any other exclusion.
76
+ 5. Verify that the staged paths equal the in-memory confirmed candidate set, no non-ignored unstaged/untracked candidate remains outside the exact causal state, no incidental path appeared, and the staged snapshot still passes global sensitive-content checks.
77
+ 6. Create the local commit and verify its hash, single parent, message, committed path set, and remaining Git-visible workspace against the confirmed snapshot.
78
+ 7. Return `COMMITTED`, commit hash/message, committed paths, and any remaining ignored or causal bookkeeping content that is intentionally local.
90
79
 
91
80
  If confirmation is declined, return `COMMIT_DECLINED` without Git mutation.
92
81
 
@@ -94,20 +83,16 @@ If confirmation is declined, return `COMMIT_DECLINED` without Git mutation.
94
83
 
95
84
  For `operation=prepare-runtime-commit`:
96
85
 
97
- 1. Require `request_path={artifact_dir}/runtime-commit-request.json` and exclude that exact operation-owned request plus the caller-supplied Runtime checkpoint from `intended_paths`.
98
- 2. Read current full `HEAD` as `base_head`.
86
+ 1. Require `request_path={artifact_dir}/runtime-commit-request.json`.
87
+ 2. Read the current full `HEAD` as `base_head`.
99
88
  3. Write this JSON atomically without Git mutation:
100
89
 
101
90
  ```json
102
91
  {
103
- "schema_version": 1,
92
+ "schema_version": 2,
104
93
  "artifact_dir": ".prizmkit/specs/example",
105
94
  "base_head": "<full current HEAD hash>",
106
- "commit_message": "feat(scope): concise description",
107
- "intended_paths": [
108
- ".prizmkit/prizm-docs/example.prizm",
109
- "src/example.py"
110
- ]
95
+ "commit_message": "feat(scope): concise description"
111
96
  }
112
97
  ```
113
98
 
@@ -115,14 +100,13 @@ For `operation=prepare-runtime-commit`:
115
100
  - `artifact_dir` equals the supplied artifact root;
116
101
  - `base_head` equals current `HEAD`;
117
102
  - `commit_message` is one non-empty line;
118
- - `intended_paths` is non-empty, unique, exact, project-relative, and equals the complete task-owned Git-visible change outside exact semantic support/bookkeeping;
119
- - no path escapes the checkout, enters `.git/**`, names exact Runtime-owned request/checkpoint data, or contains sensitive content;
120
- - no path was rejected solely because it is under `.prizmkit/**`;
121
- - every unknown Git-visible path caused a block rather than implicit exclusion.
122
- 5. Return `COMMIT_REQUEST_READY`, request path, message, intended paths, and explicit confirmation that no Git mutation occurred.
103
+ - the request has no path manifest or caller-owned commit receipt;
104
+ - the complete current Git-visible workspace passed Step 1;
105
+ - the exact request and workflow checkpoint are treated only as causal Runtime bookkeeping when Git-visible.
106
+ 5. Return `COMMIT_REQUEST_READY`, request path, message, and explicit confirmation that no Git staging or commit mutation occurred.
123
107
  6. Stop.
124
108
 
125
- The Python Runtime independently revalidates exact changed/staged/committed sets, safety, base/message/receipt, and post-commit bookkeeping order.
109
+ Schema version 1 path-manifest requests are not silently reinterpreted as workspace authorization. The Python Runtime independently validates the schema, base, final workspace, safety, commit identity, recovery receipt, and post-commit checkpoint order.
126
110
 
127
111
  ## Output
128
112
 
@@ -138,4 +122,4 @@ Preparation operation returns exactly one of:
138
122
  COMMIT_REQUEST_READY | COMMIT_BLOCKED
139
123
  ```
140
124
 
141
- Every blocked result includes concrete missing evidence, unsafe paths, or validation errors. Return only the listed commit-operation outputs.
125
+ Every blocked result includes concrete missing evidence, unsafe or incorrect content, stale authority, or validation errors. Return only the listed commit-operation outputs.
@@ -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 current changed paths. Highest-priority scope locator. |
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,7 +54,7 @@ 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 renamed paths. Changed lines locate impact but never define completeness.
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.
@@ -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
 
@@ -211,15 +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/` 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.
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
- `.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.
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.
217
217
 
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/**`.
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.
219
219
 
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.
221
-
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.
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.
223
221
 
224
222
  ## Automatic Handoff and Manual Fallback
225
223
 
@@ -158,26 +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 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
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
164
165
  → waits for explicit current-user confirmation
165
- → stages exact pathspecs, creates, and verifies the local commit
166
+ → stages the complete workspace, creates, and verifies the local commit
166
167
  ```
167
168
 
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.
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.
169
170
 
170
171
  Pipeline execution:
171
172
 
172
173
  ```text
173
174
  external coordinator validates its required gates and supplies exact readiness evidence
174
- → committer validates only that evidence and writes an exact runtime-commit-request.json
175
+ → committer validates the complete Git-visible workspace and writes a schema-v2 pathless runtime-commit-request.json without Git mutation
175
176
  → external coordinator maps COMMIT_REQUEST_READY to its checkpoint's in_progress/COMMIT_PENDING state
176
- → Python runtime validates the request, commits, verifies Git, and writes checkpoint completed/COMMITTED
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
177
179
  → remote publication remains separate
178
180
  ```
179
181
 
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
+ 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.
181
183
 
182
184
  ## Recovery
183
185
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.1.160",
3
+ "version": "1.1.161",
4
4
  "description": "Create a new PrizmKit-powered project with clean initialization — no framework dev files, just what you need.",
5
5
  "type": "module",
6
6
  "bin": {