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.
- package/bundled/VERSION.json +3 -3
- package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +9 -6
- package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +145 -110
- 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 +8 -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 +170 -66
- package/bundled/dev-pipeline/tests/test_unified_cli.py +172 -4
- package/bundled/rules/prizm/prizm-commit-workflow.md +12 -5
- 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 +47 -63
- package/bundled/skills/prizmkit-test/SKILL.md +2 -2
- package/bundled/skills/prizmkit-test/references/test-coverage-model.md +1 -1
- package/bundled/skills/prizmkit-workflow/SKILL.md +4 -6
- package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +10 -8
- 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
|
|
8
|
-
3.
|
|
9
|
-
4.
|
|
10
|
-
5.
|
|
11
|
-
6.
|
|
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.
|
|
@@ -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
|
-
##
|
|
58
|
+
## Complete Git-Visible Correctness Scope
|
|
59
59
|
|
|
60
|
-
The current
|
|
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
|
-
|
|
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,
|
|
70
|
-
5. Append one validated `scope-classification` renderer event containing exact in-scope paths
|
|
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
|
-
-
|
|
66
|
-
- staged and unstaged tracked changes
|
|
67
|
-
-
|
|
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
|
|
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
|
|
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
|
-
-
|
|
27
|
-
- <exact
|
|
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
|
-
|
|
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
|
-
"-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
22
|
-
| `
|
|
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-
|
|
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
|
-
##
|
|
33
|
+
## Complete Git-Visible Workspace
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
The candidate commit is the complete current Git-visible workspace:
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
- staged and unstaged tracked changes;
|
|
38
|
+
- added, modified, deleted, renamed, and copied paths;
|
|
39
|
+
- non-ignored untracked files.
|
|
40
40
|
|
|
41
|
-
|
|
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
|
-
|
|
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.
|
|
46
|
-
4.
|
|
47
|
-
5.
|
|
48
|
-
6. Reject unresolved merge state
|
|
49
|
-
7. Confirm no requested
|
|
50
|
-
8.
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
|
84
|
-
2. Ask the current user to confirm that
|
|
85
|
-
3.
|
|
86
|
-
4.
|
|
87
|
-
5.
|
|
88
|
-
6. Create the local commit and verify its hash,
|
|
89
|
-
7. Return `COMMITTED`, commit hash/message, committed paths, and
|
|
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
|
|
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":
|
|
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
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
162
|
-
|
|
163
|
-
→ 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
|
|
164
165
|
→ waits for explicit current-user confirmation
|
|
165
|
-
→ stages
|
|
166
|
+
→ stages the complete workspace, creates, and verifies the local commit
|
|
166
167
|
```
|
|
167
168
|
|
|
168
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|