Skip to content

CC-528: Accept generic Gate results for publish - #457

Merged
screenleon merged 1 commit into
mainfrom
feat/CC-528
Jul 30, 2026
Merged

CC-528: Accept generic Gate results for publish#457
screenleon merged 1 commit into
mainfrom
feat/CC-528

Conversation

@screenleon

Copy link
Copy Markdown
Owner

Summary

  • define publication policy compatibility so a current generic Gate GO satisfies the publish baseline while maintainer remains preferred
  • keep the explicit maintainer consumer strict and fail closed for unknown consumers
  • let pmctl ship finish --gate-result reuse a current-tree initial Gate artifact without running a replacement Gate
  • preserve targeted remediation boundaries: a targeted artifact alone cannot authorize publication
  • document the policy coordinates and add CC-529 as a bounded observability follow-up

Why

generic and maintainer are consumer policies, not identities or permission levels. Both use the same tier, risk-signal, reviewer, and verification contracts. The previous publish verification treated maintainer as a hard minimum, so a valid current generic GO could not be reused even though it should satisfy the baseline publication requirement.

This change separates required policy from preferred policy: publish accepts generic as baseline and reports maintainer as preferred, while direct maintainer verification still requires a maintainer artifact.

User and developer impact

  • everyday /pr-gate results can be reused for publication when they are valid, current, initial-pass artifacts
  • maintainers still get stronger assurance when the artifact was produced under maintainer
  • ship finish retains its clean-tree, HEAD-drift, full-suite, push, and PR guards
  • malformed policy metadata and unknown policy consumers fail closed

Validation

  • Claude Sonnet 5 PR Gate: GO under generic, full tier, parallel mode, all five reviewer dimensions (run before the docs-only CC-529 follow-up; the follow-up was explicitly accepted without re-gating)
  • tests/bin/run-all-tests.sh: 97 passed, 0 failed, 0 skipped
  • test-pr-gate: 211 passed
  • test-pmctl-gate: 69 passed
  • test-pmctl-ship: 79 passed
  • ./cli/pmctl backlog lint
  • git diff --check

Follow-up

CC-529 tracks surfacing embedded_policy, required/preferred policy, and policy_satisfaction consistently in ship stdout, PR bodies, and finish markers. It does not change the policy floor introduced here.

@screenleon
screenleon marked this pull request as ready for review July 30, 2026 05:59
@screenleon
screenleon merged commit 91bb3b6 into main Jul 30, 2026
57 checks passed
@screenleon
screenleon deleted the feat/CC-528 branch July 30, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant