ci: route the standards-sync caller through the governed selector - #188
Merged
Conversation
Standards-sync caller lane from the melodic-software/github-iac#157 plan: sync.yml adopts the governed selector (success-guard shape per epic decision 4) and passes its routed runner into the ci-workflows standards-sync reusable at the v0.6.0 pin, whose runner input already ships at ec91c343. The secret-capable runner-input contract is registered in components/runner-policy/policy.json — exact reviewed allowedSecrets mapping (both STANDARDS_SYNC_* expressions), full input surface, no allowedCallerPermissions (the caller stays statically read-only) — and the sync.yml#sync privileged-control-plane exception is removed; the contract, not an exception, is now the admitting evidence. ## Verification - GITHUB_REPOSITORY=melodic-software/standards node components/runner-policy/runner-policy.mjs passes with the exception removed; the contract is required (removing it fails closed). - npm run test:runner-policy: 219/219. ## Related - melodic-software/github-iac#157 (conversion plan) - melodic-software/github-iac#78 (epic) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 37s —— View job PR Review
The implementation is correct and consistent with the established governed-selector pattern in this repository. No critical or important findings. Contract registration (
|
This was referenced Jul 18, 2026
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.
No linked issue.
Standards-sync caller lane from the melodic-software/github-iac#157 plan — the last privileged-control-plane exception in this repository converts.
standards-sync.yml@ec91c343…registered incomponents/runner-policy/policy.jsonwithrouting: runner-input, the full input surface (runner,manifest,standards-ref,dry-run,targets), and the exact reviewedallowedSecretsmapping (app-client-id/app-private-key→ the twoSTANDARDS_SYNC_*secret expressions). NoallowedCallerPermissions— the caller stays statically read-only, so the contract alone owns the secret boundary. Secret-capable contracts decline Dependabot auto-approval unconditionally, so every future SHA of this reusable is human-reviewed.sync.ymladopts the governed selector (success-guard shape per epic decision 4) with the routed runner input and the|| 'ubuntu-24.04'fallback, and bumps the reusable pin35f2684 → ec91c343(the v0.6.0 revision that added therunnerinput — no ci-workflows change needed).sync.yml#sync'sprivileged-control-planeentry is deleted;publish-packages#publish(publication, feat(runner-policy): classify packages-only write jobs as publication #184) is now this repository's only hosted exception.Verification
GITHUB_REPOSITORY=melodic-software/standards node components/runner-policy/runner-policy.mjspasses with the exception removed; removing the contract instead fails closed on the caller.npm run test:runner-policy: 219/219.Related
🤖 Generated with Claude Code