feat(gate): add immutable subject verification - #454
Merged
Conversation
screenleon
marked this pull request as ready for review
July 29, 2026 03:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gate_assurance_v3with a stable Git subject, base/head bindings, tree fingerprint, dirty policy, timestamps, and digest-linked evidencepmctl gate verifyassessment with independentartifact_valid,subject_current, andpolicy_applicableaxes plus reason codes and JSON outputFinal: GOtext cannot authorize continuationWhy
Gate consumers previously could verify structural integrity but could not reliably distinguish a forged artifact from an intact artifact whose reviewed subject had become stale, or from an artifact that remained current but did not satisfy the consuming policy. Gate wait and ship finish also retained separate continuation checks, creating a risk of policy and freshness drift.
This change gives all consumers one fail-closed assessment contract and treats the physical worktree path as provenance rather than repository identity.
Impact
CC-515 is complete as the shared verifier foundation. Its evidence-link contract supports
unavailable|verifiedscope-manifest and closure links and verifies a linked artifact's basename, digest, and subject fingerprint. The actualgate_scope_manifest_v1content/producer remains CC-518; theremediation_closure_v1lifecycle/producer remains CC-517. Those are downstream tickets that depend on CC-515, not unfinished CC-515 scope.Verification
Runtime implementation subject
c97bab0e1faef385c9eb6fb38b0cd032c3057346:Final: GO, full tier, sequential mode, maintainer policy; critic, QA, architecture, security, and risk all passedFinal: GO; targeted QA passed; maintainer verification reportedartifact_valid,subject_current, andpolicy_applicableall passfd0e5d996b82d1d69f97d401268feaa89f017c83639792df9e0ba55df784b5f8.pm-dispatch/test-results/latest-full.jsonDocs-only tracking correction
6b05527:pm/scripts/validate.sh BACKLOG.md DECISIONS.md CHANGELOG.md: PASSbash tests/shell/test-pmctl-backlog.sh: 18 passed, 0 failedgit diff --check: PASSCurrent PR HEAD:
6b05527.Tracking: CC-515