Skip to content

feat(runner-policy): register the ci-workflows v0.66.1 pr-review-cli contract - #902

Merged
kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-pr-review-cli-v0.66.1
Oct 28, 2026
Merged

kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-pr-review-cli-v0.66.1

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: melodic-software/claude-code-plugins#10782

Summary

Registers the reviewed pr-review-cli.yml@20a822d73b6e2d7e21d48e609a01b427e0e161e7 (v0.66.1) contract. The claude-code-plugins repin fails runner-target-contract because surface-diff auto-approval declines: jobPermissions changed since the previously reviewed ...pr-review-cli.yml@3180217076b19bbdfccc43026c7f91c604da673d.

Fix

  • policy.json: the new entry copies the v0.65.14 (3180217) entry forward unchanged. From 3180217 to 20a822d, the workflow changes in three non-comment lines, all from fix(apply-review-hold)!: take a cost decision's decided head from this lane's check-run notices ci-workflows#904: the status job adds actions: read and checks: read (the hold step reads this workflow's earlier runs and their check-run cost notices), and that step takes a STATUS_JOB env built from the lane input. No input, secret, write scope or routing change. A hosted-only contract records no job permissions and checks no caller permissions, so the callers' existing read grants need no entry.
  • README.md: a v0.66.1 paragraph that names ci-workflows#904 and the permission change.
  • runner-policy.test.mjs: pins the new entry as equal to its v0.65.14 entry.

Verification

  • node --test components/runner-policy/runner-policy.test.mjs: 371 pass, 0 fail.
  • npm run lint:runner-policy on this repo: Runner policy passed.
  • On the claude-code-plugins repin branch ci/repin-pr-review-cli-v0.66.1:
    • before (its synced policy): both review callers fail runner-target-contract with the auto-approval decline above, exit 1.
    • after (--policy pointed at this branch's policy.json): Runner policy passed., exit 0.

Related

🤖 Generated with Claude Code

…contract

The v0.66.1 tag adds actions: read and checks: read to the pr-review-cli
status job (ci-workflows#904), which declines surface-diff auto-approval.
The hosted-only contract records no job permissions, so the entry copies
the v0.65.14 entry forward unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review October 28, 2026 23:40
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 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-28T23:41:26.416143Z ed197d5 Draft marked ready
ℹ️ 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.

@github-actions

Copy link
Copy Markdown

claude-review reviewed ed197d51a801b0bf83d62bdac813fc2fccc1e2a4: 0 finding(s), 0 as inline comments.

No findings. I reported no inline comments.

What I checked (I ran these myself):

  • The new pr-review-cli.yml@20a822d… entry in policy.json has the same routing (hosted-only), fixedRunsOn, allowedInputs and allowedSecrets as the existing …@3180217… (v0.65.14) entry. I compared the two entries by reading them.
  • REPINE_LANE_SHA_V0_65_14 is defined at runner-policy.test.mjs:60. The new test's prior lookup resolves to the existing v0.65.14 entry.
  • The new test asserts the entry deep-equals its predecessor, has no allowedCallerPermissions, and is the only contract registered at that SHA.
  • The README paragraph follows the existing per-tag pattern. It names the SHA, the ci-workflows#904 change, and that no input, secret, write-permission or routing change results.
  • The PR body follows the contract: Refs: line, then Summary, Fix, Verification and Related.

Not verified:

  • I did not run the node tests or npm run lint:runner-policy. The PR body's 371-pass result and the claude-code-plugins before/after results are author-claimed.
  • I did not read the pr-review-cli.yml@20a822d workflow, so the claim that the three changed lines are the status job's actions: read and checks: read permissions and the STATUS_JOB env is also author-claimed. Those permissions are not recorded in a hosted-only contract, which is why the copied entry looks right.
  • There are no closing issues, only a Refs: link, so there are no acceptance criteria to check.

@github-actions

Copy link
Copy Markdown

claude-security-review reviewed ed197d51a801b0bf83d62bdac813fc2fccc1e2a4: 0 finding(s), 0 as inline comments.

Security review: PR #902 (head ed197d5)

No security findings.

critical-findings: 0

What the PR does: It registers a new pr-review-cli.yml@20a822d73b6e2d7e21d48e609a01b427e0e161e7 (v0.66.1) entry in approvedReusableWorkflowContracts. It also adds a README note and a test for the entry.

Trust-control read. The policy entry decides which reusable-workflow pins callers may use, which inputs and secrets they may pass, and how the job routes. I read the whole change against the prior entry.

  • Entry matches its predecessor. The new entry at components/runner-policy/policy.json lines 1412–1432 matches the v0.65.14 entry at lines 1390–1411 (3180217076b19bbdfccc43026c7f91c604da673d). I compared them by reading both. The routing is hosted-only with fixedRunsOn: ["ubuntu-24.04"]. The 11 allowed inputs are identical. The three allowed secrets are identical: CLAUDE_API_KEY, CLAUDE_CODE_OAUTH_TOKEN and FALLBACK_CLAUDE_CODE_OAUTH_TOKEN, each mapped to the same secrets.* slot.
  • Nothing is widened. There is no new input, no new secret and no routing change. It adds no runner label, so the entry is no wider on self-hosted runner exposure. It gives no caller permissions: widening, because the contract records no allowedCallerPermissions. The new actions: read and checks: read grants are inside the upstream status job and read-only, as the README says. The diff adds no workflow that uses them.
  • Pinned by full commit SHA. The new pin is a 40-character SHA, not a mutable tag.
  • Test. The new test in runner-policy.test.mjs asserts deep equality with the v0.65.14 entry, hosted-only routing and no allowedCallerPermissions. It also asserts exactly one entry for the new SHA. It adds no executable behavior beyond the assertions.

Not verified: I could not confirm that 20a822d… is the real v0.66.1 tag commit in melodic-software/ci-workflows. The ref lookup needed an approval this session did not have. I also could not read the upstream workflow at that SHA, so the claim that the release changes only the status job's permissions and env rests on the PR text. That text is data, not evidence. This entry only allowlists the pin, and the upstream pin is reviewed in ci-workflows. A mismatched SHA would just fail to match a caller pin, unless a caller already adopts the SHA.

Instruction-surface check: no standing instruction is deleted or softened. The README change adds prose only.

Manifest items: the diff touches no plugin manifest.

@kyle-sexton
kyle-sexton merged commit 9af3779 into main Oct 28, 2026
24 checks passed
@kyle-sexton
kyle-sexton deleted the feat/runner-policy-pr-review-cli-v0.66.1 branch October 28, 2026 23:45
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