Repository navigation
feat(runner-policy): add ci-workflows v0.39.3 contracts - #742
Conversation
Register the nine ci-workflows reusables at the v0.39.3 tag ab83b01273026ab5c23c6f3b40e946d97a863fa2, each a verbatim copy of its v0.39.0 entry. Every workflow blob is byte-identical between the two tags; pr-run-checks reaches five $/ action trees that changed only by shell re-indentation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 2m 20s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 4m 55s —— View job Code review complete
Scope: Verified independently:
Not independently verified (author-claimed only, no network access to Finding posted inline on No other correctness issues found in the data additions themselves; the change is a mechanical, well-scoped registration of already-reviewed contract shapes under a new tag. |
|
claude-security-review has reviewed this pull request through a75a9ad; a later push is reviewed from there. |
|
claude-review has reviewed this pull request through a75a9ad; a later push is reviewed from there. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R
|
Claude finished @kyle-sexton's task in 1m 35s —— View job Code review complete
Scope: incremental review per the lane's instructions — only the diff in Finding posted inline on No other issues found in this incremental change. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R
|
Claude finished @kyle-sexton's task in 1m 4s —— View job Incremental code review complete
Scope: per the incremental lane header, only Finding posted inline on Note: ci-workflows#712 (the shfmt re-indentation basis for the |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R
|
Claude finished @kyle-sexton's task in 54s —— View job Incremental code review complete
Scope: per the incremental lane header, only Verified independently: No findings on this incremental change. (The ci-workflows#712 citation flagged for visibility in an earlier round, but not re-raised as a blocking finding, still isn't present in this paragraph — not re-raising it again here either, since it wasn't part of this round's diff and the prior comment already left it as a non-blocking note.) |
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins in `.github/workflows/` from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`). ## Fix - Pin SHA and `# v0.39.3` comment on 29 lines across five workflows (`maintenance-sync-standards`, `pr-automerge-dependabot`, `pr-require-checks`, `pr-review`, `pr-review-security`). No input or secret names change: every reusable workflow blob is byte-identical between v0.39.0 and v0.39.3. - Component sources under `components/` are untouched; managed callers move through `maintenance-repin-ci-workflows` (#735 is its open PR, currently at v0.39.1, and also touches the three sync-family callers here). ## Verification - actionlint passes on the changed workflows; every pinned path exists at `ab83b01`; the lefthook pre-commit passed. - Runner-policy contracts for `ab83b01` are in #742; this PR's runner-policy check passes once #742 merges. ## Related - #742 (v0.39.3 runner-policy contracts) - #733 (v0.39.0 repin precedent) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment only. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved, every reusable workflow blob is byte-identical, and the only `action.yml` that changed is `check-managed-files` (Dependabot-skip hardening, ci-workflows#709). The rest of the release is shell re-indentation (ci-workflows#712) and a golangci-lint bump in `pr-run-checks-go` (ci-workflows#713). ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - actionlint passes on the changed workflows; the diff touches pin lines only; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: fleet repin to ci-workflows v0.39.3 in the GitHub Actions conventions migration. ## Summary Moves this repository's repo-owned ci-workflows pins from v0.39.0 (`6ba73b9`) and v0.39.1 (`c586acc`, the required `check-managed-files` job) to v0.39.3 (`ab83b01273026ab5c23c6f3b40e946d97a863fa2`), so the fleet runs one release. ## Fix Pin SHA and `# v0.39.3` comment on 25 lines across five workflows, plus the two repo-owned files that record the pin: the README "As of" line for the `machine-specific-paths` local pre-flight, and the hand-verified pin note in `check-docs-only-gate.sh`. Sync-managed callers and the synced runner-policy contracts are left to the standards sync. Between v0.39.0 and v0.39.3 no pinned path moved and every reusable workflow blob is byte-identical; `check-managed-files` is identical between v0.39.1 and v0.39.3. ## Verification - Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at `ab83b01`; every pinned path exists at that commit. - `aggregate-results`: `action.yml` is unchanged and `run.sh` differs only by re-indentation (`git diff -w 6ba73b97 ab83b01` is empty), so the hand-verified `contract-only` predicate note in `check-docs-only-gate.sh` still holds at the new pin. `check-machine-specific-paths.sh` likewise differs only by re-indentation, so the README's standalone-run claim holds. - actionlint passes on the changed workflows; the lefthook pre-commit passed. - The runner-policy contracts for `ab83b01` are in melodic-software/standards#742. Until it merges and the standards sync delivers them, this PR's runner-policy check fails on the new reusable keys; that is expected. ## Related - melodic-software/standards#742 (v0.39.3 runner-policy contracts) - ci-workflows v0.39.3 release 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: finishes the ci-workflows v0.39.3 repin wave, whose earlier PR in this repository missed these lines. ## Summary Repins the remaining ci-workflows v0.38.2 (`cf316d12`) composite-action pins in `pr-require-checks.yml` to v0.39.3 (`ab83b01`). ## Fix The wave PR moved the v0.39.0 pin but left these v0.38.2 lines. They are composite actions, so no runner-policy contract is involved. With these merged, no repository pins v0.38.2, and its contracts can be retired in standards. ## Verification - Each action path exists at `ab83b01` (`gh api repos/melodic-software/ci-workflows/contents/.github/actions/<path>/action.yml?ref=ab83b01`). - `actionlint` on the workflow: no new findings; the only report is a pre-existing SC2016 note on an unchanged step. - The diff changes only `uses:` pin lines. ## Related - ci-workflows v0.39.3 repin wave; contracts in melodic-software/standards#742. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: finishes the ci-workflows v0.39.3 repin wave, whose earlier PR in this repository missed these lines. ## Summary Repins the remaining ci-workflows v0.38.2 (`cf316d12`) composite-action pins in `pr-require-checks.yml` to v0.39.3 (`ab83b01`). ## Fix The wave PR moved the v0.39.0 pin but left these v0.38.2 lines. They are composite actions, so no runner-policy contract is involved. With these merged, no repository pins v0.38.2, and its contracts can be retired in standards. ## Verification - Each action path exists at `ab83b01` (`gh api repos/melodic-software/ci-workflows/contents/.github/actions/<path>/action.yml?ref=ab83b01`). - `actionlint` on the workflow: no new findings; the only report is a pre-existing SC2016 note on an unchanged step. - The diff changes only `uses:` pin lines. ## Related - ci-workflows v0.39.3 repin wave; contracts in melodic-software/standards#742. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
## Related Refs: melodic-software/ci-workflows#726 Refs: #748 Precedents: #742 (v0.39.3 contracts), #746 (retirement). ## Fix Registers the nine ci-workflows reusables at the v0.39.8 tag `594987abe8657a40bccc13d301f1f0d5cccb5348` in `components/runner-policy/policy.json`. This unblocks the claude-lanes repin in #748, whose policy lockstep declined, and the ci-runner repin, whose pin tests need one SHA across every ci-workflows reference. The v0.39.3 (`ab83b01`) entries stay until every consumer has repinned. - `policy.json`: nine new keys, each spliced in as text after its `ab83b01` entry (121 insertions, 0 deletions). No `workflow_call` input, secret, workflow or job permission, or `runs-on` routing changed between v0.39.3 and v0.39.8, so each contract equals its v0.39.3 entry. - `README.md`: rollout note for v0.39.8. - `runner-policy.test.mjs`: `REPINE_LANE_SHA_V0_39_8` and a copy-forward assertion that each v0.39.8 entry equals its v0.39.3 entry and that exactly nine v0.39.8 keys exist. | Reusable | Change since v0.39.3 | Lockstep result | | --- | --- | --- | | `intake-label-needs-triage.yml` | none, blob identical | unchanged | | `pr-scan-dependencies.yml` | none, blob identical | unchanged | | `pr-audit-workflows.yml` | none, blob identical | unchanged | | `pr-automerge-dependabot.yml` | none, blob identical | unchanged | | `intake-triage.yml` | `claude-code-action` v1.0.241 to v1.0.245 (`6fed3ca`) | declined: `credentialReferences` | | `pr-review.yml` | same bump, plus rate-limit summary wording | declined: `credentialReferences` | | `pr-review-security.yml` | same bump, plus rate-limit summary wording | declined: `credentialReferences` | | `maintenance-sync-standards.yml` | `setup-node` v7.0.0 to v7.1.0 (`949feb2`) | declined: `sync` job routes through `needs` | | `pr-run-checks.yml` | blob identical; `$/markdownlint` takes the `setup-node` bump | declined: commit-relative reference changed | "unchanged" means the comparison found the surface unchanged. Because any decline suppresses every lockstep write, all nine entries were registered by hand, and the five declined ones were reviewed against the v0.39.8 file content. `$/report-lane-outcome`, which the claude lanes reach, changes only its rate-limit error message. ## Verification - `laneSecuritySurfacesMatch` from `repin-policy-lockstep.mjs`, run without writes for all nine paths from `ab83b01` to `594987a`, gave the results in the table. - Each v0.39.8 file's `workflow_call` surface (inputs, secrets, workflow and job permissions, `runs-on`) was parsed and compared with v0.39.3: unchanged for all nine. - `npm run test:runner-policy` (298/298), `npm run lint:runner-policy`, biome, markdownlint and the lefthook pre-commit all pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01TRhsMPSTMFo99ik7gkdgQt --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
No related issue: unblocks the ci-workflows v0.39.3 fleet repin in the GitHub Actions conventions migration.
Summary
Registers the nine ci-workflows reusables at the v0.39.3 tag
ab83b01273026ab5c23c6f3b40e946d97a863fa2incomponents/runner-policy/policy.json, so consumer repins from v0.38.2, v0.39.0 and v0.39.1/v0.39.2 pass runner-policy. The6ba73b9(v0.39.0) andcf316d1(v0.38.2) entries stay until every consumer has repinned; a follow-up retires them.Fix
policy.json: nine new keys, each spliced in as text after its6ba73b9entry (no re-serialization; 121 insertions, 0 deletions). All nine are verbatim copies (parsed-JSON equality checked per entry).README.md: review note for v0.39.3.Contracts added (all
melodic-software/ci-workflows/.github/workflows/<file>@ab83b01273026ab5c23c6f3b40e946d97a863fa2):intake-triage.ymlCLAUDE_CODE_OAUTH_TOKEN)ccc44c4)$/report-lane-outcomeidentical (cff090b)pr-review.ymlCLAUDE_CODE_OAUTH_TOKEN)f0e042a)$/report-lane-outcomeidenticalpr-review-security.ymlCLAUDE_CODE_OAUTH_TOKEN)121c7e2)$/report-lane-outcomeidenticalmaintenance-sync-standards.ymlb3e81ac)intake-label-needs-triage.ymla0a7e39)pr-scan-dependencies.yml5ced69e)pr-audit-workflows.yml0a1a611)pr-automerge-dependabot.yml7f65abe)pr-run-checks.yml3f9622e)$/actions: 8 identical;detect-changes,gitleaks,check-exec-bit,check-machine-paths,check-comment-markerschangedHand review needed on
pr-run-checks: its surface and workflow blob are identical, but five action trees it reaches have different object SHAs, so it is not an auto-copy under the README's tree-SHA rule. The change is the shfmtswitch_case_indentre-indentation (ci-workflows#712):git diff --stat 6ba73b97 ab83b01on those five directories shows 103 insertions and 103 deletions acrosssuperset-test.sh,check-exec-bit.sh,check-machine-specific-paths.sh,match.sh,scan.shandscan.test.sh, andgit diff -won the same paths is empty. Noaction.ymlchanged.The other release changes (
check-managed-filesDependabot-skip hardening in ci-workflows#709,pr-require-checks.yml,pr-run-checks-go.ymlgolangci-lint bump in #713) are not reached by any registered reusable.Verification
git rev-parseof each of the nine workflow blobs at6ba73b97andab83b01matches, and a recursive walk of every$/and./reference shows the object SHAs in the table.6ba73b9predecessor.npm run test:runner-policy(297/297),npm run lint:runner-policy,npm run test:concurrency-policy(31/31),npm run lint:concurrency-policy,npm run test:pr-convention-lockstep(82/82),npm run lint:dependabot-automerge-lockstep,npx biome check components/runner-policy/policy.json,markdownlint-cli2 components/runner-policy/README.md, and the lefthook pre-commit (editorconfig, typos, markdownlint, gitleaks, biome): all pass.npm run lint:pr-convention-lockstepfails locally on live fleet fetches (unauthenticated HTTP 403s and caller drift in other repos); it reads no file this PR touches.Related
ab83b01)🤖 Generated with Claude Code
https://claude.ai/code/session_01T7GukBojtE99rLCPY7Cw3R