Skip to content

feat(runner-policy): add ci-workflows v0.39.0 contracts - #732

Merged
kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-v0.39.0-contracts
Oct 7, 2026
Merged

kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-v0.39.0-contracts

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

No related issue: unblocks the ci-workflows v0.39.0 fleet repin in the GitHub Actions conventions migration.

Summary

Registers the nine ci-workflows reusables at the v0.39.0 tag 6ba73b97b058602c4dd2bb6e2cce234d11011787 in components/runner-policy/policy.json, so consumer repins from v0.38.2 pass runner-policy. The cf316d1 (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 its cf316d1 entry (no re-serialization; 121 insertions, 0 deletions). Eight are verbatim copies; maintenance-sync-standards widens.
  • README.md: review note for v0.39.0.

Contracts added (all melodic-software/ci-workflows/.github/workflows/<file>@6ba73b97b058602c4dd2bb6e2cce234d11011787):

Reusable Secret-capable Surface change since v0.38.2 Contract
maintenance-sync-standards.yml yes (App client ID + private key) New environment input (default standards-sync); attest and sync jobs now run in that caller-repository environment with deployment: false, so an environment secret overrides a passed one. workflow_call secrets renamed app-client-id/app-private-key to STANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY. Widened: allowedInputs adds environment; allowedSecrets keys renamed to STANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY (caller-side values unchanged). Consumers must rename the keys under secrets: when they repin.
intake-triage.yml yes (CLAUDE_CODE_OAUTH_TOKEN) anthropics/claude-code-action v1.0.240 to v1.0.241 (cab360f); $/report-lane-outcome tree changes only in its tests. Verbatim copy
pr-review.yml yes (CLAUDE_CODE_OAUTH_TOKEN) Same claude-code-action bump and test-only $/report-lane-outcome change. Verbatim copy
pr-review-security.yml yes (CLAUDE_CODE_OAUTH_TOKEN) Same claude-code-action bump and test-only $/report-lane-outcome change. Verbatim copy
intake-label-needs-triage.yml no None: blob byte-identical (a0a7e39). Verbatim copy
pr-scan-dependencies.yml no None: blob byte-identical (5ced69e). Verbatim copy
pr-audit-workflows.yml no None: blob byte-identical (0a1a611). Verbatim copy
pr-automerge-dependabot.yml no None: blob byte-identical (7f65abe). Verbatim copy
pr-run-checks.yml no None: blob byte-identical (3f9622e). Verbatim copy

The four secret-capable entries never auto-copy and need the owner's hand sign-off. The other release changes (pr-require-checks.yml, check-managed-files, new check-workflow-naming) are not consumed by any pinned reusable.

Verification

  • git diff cf316d12..6ba73b97 -- .github/workflows in ci-workflows matches the table: four reusables changed, five byte-identical; caller permissions and runs-on routing unchanged for all nine. git diff of .github/actions/report-lane-outcome shows only classify.test.cjs and outcome-step.test.cjs.
  • npm run test:runner-policy (297/297), npm run lint:runner-policy, npx biome check components/runner-policy/policy.json, markdownlint-cli2 components/runner-policy/README.md, and the lefthook pre-commit (typos, editorconfig, gitleaks): all pass.

Related

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton enabled auto-merge (squash) October 7, 2026 13:43
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T13:45:38.472141Z ba362ec PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@claude

claude Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 3m 34s —— View job


Code review: feat(runner-policy): add ci-workflows v0.39.0 contracts

  • Gather context (diff, policy.json schema, CLAUDE.md/REVIEW.md)
  • Review policy.json additions for correctness
  • Review README.md changes
  • Verify claims against repo state (diff, byte-identical hashes, schema)
  • Post findings

No blocking findings.

What I checked

  • Schema conformance: all 9 new policy.json entries validate against components/runner-policy/policy.schema.json's runnerInputContract shape (required routing/runnerInput/allowedInputs/allowedSecrets, correct reusableWorkflowReference pattern for the key, valid githubPermissionMap/githubMinimumPermissionMap values).
  • "Eight verbatim copies" claim: compared each new @6ba73b97b05... entry byte-for-byte against its @cf316d12b4a... sibling in policy.json — intake-triage, pr-review, pr-review-security, intake-label-needs-triage, pr-scan-dependencies, pr-audit-workflows, pr-automerge-dependabot, and pr-run-checks are all structurally identical except the pinned SHA in the key. Confirmed.
  • maintenance-sync-standards widening: the new entry does add "environment" to allowedInputs and renames the allowedSecrets keys (app-client-id/app-private-key → STANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY) while the secret expression values stay the same. Matches the PR body's table and the README prose.
  • Diff stats: git diff origin/main...HEAD --numstat confirms exactly 121/0 for policy.json and 16/0 for README.md, matching the claimed insertion counts.
  • Lockstep process (README.md § Contract revision lockstep): this PR does step 2 (append contract + review note) only. Confirmed the standards repo's own workflows (pr-review.yml, pr-review-security.yml, maintenance-sync-standards.yml, pr-require-checks.yml, pr-automerge-dependabot.yml) are themselves still pinned at @cf316d12... (v0.38.2), so this PR correctly leaves the repin (step 3) and retirement of the old entries (step 4) for later, as the body says.
  • Secret-capable entries require hand review, never auto-copy: the four secret-capable contracts (intake-triage, pr-review, pr-review-security, maintenance-sync-standards) are exactly the ones the README's auto-approval logic (lines ~318–329) says can never auto-approve — consistent with the PR's claim that these were hand-reviewed rather than tool-generated.

Not independently verified

I don't have access to the melodic-software/ci-workflows repository from this sandbox, so the following are author-claimed, not verified by me:

  • That 6ba73b97b058602c4dd2bb6e2cce234d11011787 is in fact the merged main commit for the ci-workflows v0.39.0 tag.
  • The git diff cf316d12..6ba73b97 summary (which five workflows are byte-identical, which four changed and how).
  • The npm run test:runner-policy (297/297), lint, Biome, markdownlint, and lefthook results reported in the Verification section — I did not have node_modules installed in this sandbox to re-run them.
    · Branch

@claude

claude Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 1m 56s —— View job


Security review complete

  • Gather context (PR diff, changed files)
  • Apply skip-gate check
  • Review components/runner-policy/policy.json changes
  • Review components/runner-policy/README.md changes
  • Check instruction-surface deletions (AGENTS.md / rules files)
  • Post findings

No security issues found.

This PR is a pure-addition registration change: nine new approvedReusableWorkflowContracts entries in components/runner-policy/policy.json pinning melodic-software/ci-workflows reusable workflows to the v0.39.0 full-SHA tag 6ba73b97b058602c4dd2bb6e2cce234d11011787, plus a corresponding review note in components/runner-policy/README.md. No deletions, no existing entries modified, no workflow files (.github/workflows/**) touched.

Checked:

  • Permissions/secrets diff vs. v0.38.2 (cf316d1) entries — policy.json: eight of the nine new entries are byte-for-byte identical in allowedInputs, allowedSecrets, and allowedCallerPermissions/minimumCallerPermissions to their cf316d1 counterparts — no privilege widening. maintenance-sync-standards.yml@6ba73b97 (L137-L145) is the one entry that widens: it adds the environment input and renames the allowedSecrets keys from app-client-id/app-private-key to STANDARDS_SYNC_APP_CLIENT_ID/STANDARDS_SYNC_APP_PRIVATE_KEY. The secret values (${{ secrets.STANDARDS_SYNC_APP_CLIENT_ID }} / ${{ secrets.STANDARDS_SYNC_APP_PRIVATE_KEY }}) are unchanged, so no new secret exposure — only the upstream workflow_call input name changed, correctly mirrored here.
  • Environment-secret-override nuance — the README addition (L1123-L1140) itself documents that an environment secret can override a passed one for the attest/sync jobs. That's an upstream ci-workflows v0.39.0 behavior being transparently recorded, not a change introduced by this diff — there's no executable logic here for it to act on, and no concrete exploit path within this file pair.
  • SHA/repo integrity — all nine new keys target the same melodic-software/ci-workflows repo with a full 40-character commit SHA pin (not a mutable tag), consistent with the existing cf316d1 pattern and the org's established SHA-pinning convention. No typosquatted repo names or shortened/ambiguous refs.
  • Instruction-surface check — no rules files, AGENTS.md, hooks, or skill/agent bodies are touched or softened by this diff; not applicable here.

GitHub Actions supply-chain/pin-hardening concerns (e.g., independently verifying the SHA's content against the upstream release) are zizmor's advisory lane per this skill's scope and are not re-reported here.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

claude-security-review has reviewed this pull request through ba362ec; a later push is reviewed from there.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

claude-review has reviewed this pull request through ba362ec; a later push is reviewed from there.

@kyle-sexton
kyle-sexton merged commit a2c5761 into main Oct 7, 2026
21 checks passed
@kyle-sexton
kyle-sexton deleted the feat/runner-policy-v0.39.0-contracts branch October 7, 2026 13:48
kyle-sexton added a commit that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration (standards-sync automation, phase C).

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), and
renames the secrets this repository passes to
`maintenance-sync-standards` to the names v0.39.0 declares.

## Fix

- Pin SHA and `# v0.39.0` comment on 31 lines across five workflows.
- `maintenance-sync-standards.yml`: `app-client-id` / `app-private-key`
become `STANDARDS_SYNC_APP_CLIENT_ID` / `STANDARDS_SYNC_APP_PRIVATE_KEY`
(values unchanged). Environment secret names allow only `[A-Za-z0-9_]`,
so the hyphenated names could never be supplied from an environment. No
`environment` input is passed: the default `standards-sync` is intended,
and its main-only branch policy is declared in github-iac separately.
Until then the job auto-creates the environment and still reads the
repo-level secrets.
- Component sources under `components/` are untouched; managed callers
move through `maintenance-repin-ci-workflows`.

## Verification

- actionlint passes on `.github/workflows/*.yml`; every pinned path
exists at `6ba73b9`.
- Runner-policy contracts for `6ba73b9`, including the renamed secret
keys, are in #732; this PR's runner-policy check passes once #732
merges.

## Related

- #732 (v0.39.0 runner-policy contracts)
- melodic-software/ci-workflows#707 (environment input, secret rename),
#708 (sync-verify mode); release v0.39.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/codex-plugins that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/.github that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/ci-workflows that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/agent-plugins that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/cursor-plugins that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/ci-runner that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/claude-code-account-rotation that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment only, plus any repo-owned file that
asserts the pin. Sync-managed callers and the synced runner-policy
contracts are left to the standards sync. No pinned path moved between
v0.38.2 and v0.39.0, and no caller-facing input changed for the
reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9`; every pinned path exists at that commit.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit to melodic-software/claude-code-plugins that referenced this pull request Oct 7, 2026
No related issue: fleet repin to ci-workflows v0.39.0 in the GitHub
Actions conventions migration.

## Summary

Moves this repository's repo-owned ci-workflows pins from v0.38.2
(`cf316d1`) to v0.39.0 (`6ba73b97b058602c4dd2bb6e2cce234d11011787`), so
the fleet runs one release.

## Fix

Pin SHA and `# v0.39.0` comment, plus repo-owned files that assert the
pin (README, check-docs-only-gate.sh). The required
`check-managed-files` job pins v0.39.1 (`c586acc`), which adds only that
action's Dependabot-skip hardening (ci-workflows#709); it is a composite
action, so it needs no runner-policy contract. Sync-managed callers and
the synced runner-policy contracts are left to the standards sync. No
pinned path moved between v0.38.2 and v0.39.0, and no caller-facing
input changed for the reusables pinned here.

## Verification

- Every repo-owned `uses: melodic-software/ci-workflows/...` pin is at
`6ba73b9` except the required `check-managed-files` job at `c586acc`
(v0.39.1); every pinned path exists at its commit.
- `aggregate-results` is byte-identical between `cf316d1` and `6ba73b9`
(`git diff --stat` empty), so the hand-verified `contract-only`
predicate note in `check-docs-only-gate.sh` still holds at the new pin.
- actionlint passes on the changed workflows; the diff touches pin lines
only.
- The runner-policy contracts for `6ba73b9` merged in
melodic-software/standards#732; this PR's runner-policy check passes
once the standards sync delivers them.

## Related

- melodic-software/standards#732 (v0.39.0 runner-policy contracts)
- ci-workflows v0.39.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
kyle-sexton added a commit that referenced this pull request Oct 9, 2026
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
`ab83b01273026ab5c23c6f3b40e946d97a863fa2` in
`components/runner-policy/policy.json`, so consumer repins from v0.38.2,
v0.39.0 and v0.39.1/v0.39.2 pass runner-policy. The `6ba73b9` (v0.39.0)
and `cf316d1` (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 its
`6ba73b9` entry (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`):

| Reusable | Secret-capable | Workflow blob | Commit-relative paths
reached | Contract |
| --- | --- | --- | --- | --- |
| `intake-triage.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical
(`ccc44c4`) | `$/report-lane-outcome` identical (`cff090b`) | Verbatim
copy |
| `pr-review.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical
(`f0e042a`) | `$/report-lane-outcome` identical | Verbatim copy |
| `pr-review-security.yml` | yes (`CLAUDE_CODE_OAUTH_TOKEN`) | identical
(`121c7e2`) | `$/report-lane-outcome` identical | Verbatim copy |
| `maintenance-sync-standards.yml` | yes (App client ID + private key) |
identical (`b3e81ac`) | none | Verbatim copy |
| `intake-label-needs-triage.yml` | no | identical (`a0a7e39`) | none |
Verbatim copy |
| `pr-scan-dependencies.yml` | no | identical (`5ced69e`) | none |
Verbatim copy |
| `pr-audit-workflows.yml` | no | identical (`0a1a611`) | none |
Verbatim copy |
| `pr-automerge-dependabot.yml` | no | identical (`7f65abe`) | none |
Verbatim copy |
| `pr-run-checks.yml` | no | identical (`3f9622e`) | 13 `$/` actions: 8
identical; `detect-changes`, `gitleaks`, `check-exec-bit`,
`check-machine-paths`, `check-comment-markers` changed | Verbatim copy,
**needs hand review** |

**Hand 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 shfmt `switch_case_indent` re-indentation
(ci-workflows#712): `git diff --stat 6ba73b97 ab83b01` on those five
directories shows 103 insertions and 103 deletions across
`superset-test.sh`, `check-exec-bit.sh`,
`check-machine-specific-paths.sh`, `match.sh`, `scan.sh` and
`scan.test.sh`, and `git diff -w` on the same paths is empty. No
`action.yml` changed.

The other release changes (`check-managed-files` Dependabot-skip
hardening in ci-workflows#709, `pr-require-checks.yml`,
`pr-run-checks-go.yml` golangci-lint bump in #713) are not reached by
any registered reusable.

## Verification

- In ci-workflows, `git rev-parse` of each of the nine workflow blobs at
`6ba73b97` and `ab83b01` matches, and a recursive walk of every `$/` and
`./` reference shows the object SHAs in the table.
- Per-entry check: each new key's parsed contract equals its `6ba73b9`
predecessor.
- `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-lockstep` fails locally on live fleet
fetches (unauthenticated HTTP 403s and caller drift in other repos); it
reads no file this PR touches.

## Related

- ci-workflows v0.39.3 release (`ab83b01`)
- #732 (v0.39.0 contract precedent)

🤖 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>
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