Skip to content

feat(runner-policy): register the ci-workflows v0.65.0 intake-triage and pr-review-cli contracts - #856

Merged
kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-ci-workflows-v0.65.0
Oct 23, 2026
Merged

kyle-sexton merged 1 commit into
mainfrom
feat/runner-policy-ci-workflows-v0.65.0

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

No related issue: G6 part 2 of the lane-funding plan (owner-approved 2026-10-23).

Summary

Registers intake-triage.yml@d02b8697e092705153f0996549b05f95a446bb52 and pr-review-cli.yml@d02b8697e092705153f0996549b05f95a446bb52 (ci-workflows v0.65.0), so claude-code-plugins' intake and review callers can re-pin to the release whose lane-outcome record carries costUsd.

Fix

v0.65.0 changes only report-lane-outcome's classify.cjs (ci-workflows#872). Both reusables reach that action through $/. Neither workflow file changed since its last registered SHA (git log 2fe38c03..v0.65.0 -- .github/workflows/intake-triage.yml and git log v0.64.2..v0.65.0 -- .github/workflows/pr-review-cli.yml list no commits), so both contracts copy their prior entries forward verbatim.

Verification

  • node --test runner-policy.test.mjs in components/runner-policy: 341 pass. That count includes the new copy-forward test, which checks both entries deep-equal their prior SHAs' entries and that exactly two contracts name the new SHA.
  • Left out: nothing.

Related

  • Same shape as #853 (v0.64.2).
  • Next: the standards sync into claude-code-plugins, then that repository's caller re-pin.

🤖 Generated with Claude Code

…and pr-review-cli contracts

v0.65.0 adds the optional costUsd field to the lane-outcome record
(ci-workflows#872). intake-triage.yml and pr-review-cli.yml are unchanged
and reach the action through $/, so both contracts copy their prior
entries forward verbatim.

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

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 🔄 Running since 2026-10-23T21:24:41.058413Z 652b43e 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-security-review reviewed 652b43ef782b6a80ae30413c953e5a6cbd9311d7: 0 finding(s), 0 as inline comments.

Security review: PR #856 at 652b43e

critical-findings: 0

I found no security issues in this pull request.

What changed. The PR adds two entries to approvedReusableWorkflowContracts in components/runner-policy/policy.json. They cover intake-triage.yml and pr-review-cli.yml, both pinned to d02b8697… (the ci-workflows v0.65.0 tag). It also adds one test in runner-policy.test.mjs that checks they match the earlier entries.

Checks.

  • Copy-forward. I compared each new entry with its predecessor in the file: intake-triage @ 2fe38c03… and pr-review-cli @ 6d6cb798…. They match field for field:

    • the routing, role and fixed runner;
    • the input allowlists;
    • the secret mappings, which stay on the AUTOMATIONS_* and REVIEWS_* secrets;
    • the caller permissions (contents: read, issues: write) for intake-triage.

    Nothing is widened: no new input, no new secret, no higher permission, and no change to the hosted-only or runner-input routing.

  • Pins. Both references are full 40-character commit SHAs, not branch or tag names.

  • Old entries. The old entries stay in place, which is the existing pattern for in-flight callers. The test asserts exactly two entries for the new SHA.

  • Not verified. I did not confirm that d02b8697… is the v0.65.0 commit. The environment had no network access to check, and I did not run the test suite. The PR text says v0.65.0 changes only report-lane-outcome's classify.cjs, and I could not check that either.

  • Trust-gate paths. The PR touches none of .github/standards/trusted-actors/**, check-trusted-trigger, CODEOWNERS or .gitmodules, so nothing needs a hold.

  • Instruction surfaces and plugin manifests. The PR deletes or softens no instruction text and changes no manifest, so there are no manifest <field> lines.

@github-actions

Copy link
Copy Markdown

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

No findings.

The PR adds two approvedReusableWorkflowContracts entries for ci-workflows v0.65.0 (d02b8697…) in components/runner-policy/policy.json: intake-triage.yml and pr-review-cli.yml. It also adds a copy-forward test in runner-policy.test.mjs.

  • Verbatim copies (checked by reading the file).
    • The new intake-triage entry matches the 2fe38c03… entry field for field: routing, runnerInput, role, allowedInputs, allowedSecrets and allowedCallerPermissions.
    • The new pr-review-cli entry matches the 6d6cb798… entry field for field: hosted-only, fixedRunsOn, allowedInputs and allowedSecrets.
  • Not run. The shell sandbox refused my node invocations, so I did not run the test suite. The 341-pass count is author-claimed and unverified by me.
  • Test. The new test compares both entries to the prior-SHA entries and asserts exactly two contracts name the new SHA. This matches the file's neighbouring copy-forward tests. I checked by reading that policy.json contains the two entries and that the predecessor SHAs exist.
  • Claim that the workflow files are unchanged. I have not verified it, because the ci-workflows repo is outside this review's scope. The PR gives the git log commands behind it.
  • Closing issue. The PR states No related issue: …, so there are no acceptance criteria to check.
  • PR body contract. The body opens with a No related issue: line and fills Summary, Fix, Verification and Related.
  • Hold classes. None apply. The change adds no model or API spend, does not touch trust-gate paths and has no critical security finding. The entries only register already-approved contract shapes.

@kyle-sexton
kyle-sexton merged commit eaac7fa into main Oct 23, 2026
24 of 25 checks passed
@kyle-sexton
kyle-sexton deleted the feat/runner-policy-ci-workflows-v0.65.0 branch October 23, 2026 21:30
kyle-sexton added a commit that referenced this pull request Oct 24, 2026
…e funding role (#863)

No related issue: lane-funding roles plan (D)5, owner-approved
2026-10-24.

## Summary

Registers `intake-triage.yml@b0ecc273abe492d12f2efa98ee4741a84c219ed2`
on the `intake` funding role, so claude-code-plugins' intake caller can
read `INTAKE_CLAUDE_API_KEY` and `INTAKE_CLAUDE_CODE_OAUTH_TOKEN`
instead of the `AUTOMATIONS_*` pair.

## Fix

A contract carries one `role`, and its caller must pass that literal
(`runner-policy.mjs`, the `role` check in the reusable-call audit).
Changing the v0.65.0 entry in place would fail runner-policy on
claude-code-plugins' sync PR, whose caller still passes `role:
automations`. So this adds a contract at a new SHA and leaves the
v0.65.0 entry until the caller repins, as the v0.51.0 registration did.


[b0ecc27](melodic-software/ci-workflows@b0ecc27)
is ci-workflows main, one commit past
[v0.65.0](https://github.com/melodic-software/ci-workflows/releases/tag/v0.65.0)
that changes only
`docs/conventions/source-control/commit-convention.yml` (`git diff
v0.65.0 b0ecc27 -- .github` is empty). It is untagged, so the caller pin
takes the pin-comment convention's fallback form. The entry is the
v0.65.0 entry with `role: intake` and the two `INTAKE_*` secrets;
inputs, routing and caller permissions are unchanged.

## Verification

- `node --test runner-policy.test.mjs` in `components/runner-policy`:
342 pass. That count includes the new test, which checks the b0ecc27
entry deep-equals the v0.65.0 entry apart from role and secrets, and
that one contract names the new SHA.

## Related

- Same shape as
[#856](#856)
(v0.65.0).
- Next: the standards sync into claude-code-plugins, then that
repository's intake, pr-unblock and pr-verify wiring PR.

🤖 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 24, 2026
…contract (#864)

No related issue: follow-up to
[ci-workflows#874](melodic-software/ci-workflows#874),
which fixed a review-lane failure on
[claude-code-plugins#9545](melodic-software/claude-code-plugins#9545).

## Summary

Registers `pr-review-cli.yml@b49ac366bb3426039363a6927c41512e44533808`
(ci-workflows
[v0.65.1](https://github.com/melodic-software/ci-workflows/releases/tag/v0.65.1)),
so claude-code-plugins' two review callers can re-pin to the release
that passes the review between jobs as an artifact.

## Fix

v0.65.1 changes only `pr-review-cli.yml`'s jobs and its tests: the
review and the last marker's summary now travel as a checked artifact
instead of a job output, which the runner dropped whenever the text
contained a registered secret's value. The workflow's `on.workflow_call`
inputs, secrets and runner did not change (`git diff d02b8697..b49ac366
-- .github/workflows/pr-review-cli.yml` touches the header comment and
`jobs:` only), so the contract copies its v0.65.0 entry forward
verbatim.

## Verification

- `node --test runner-policy.test.mjs` in `components/runner-policy`:
343 pass, 0 fail. That includes the new copy-forward test, which checks
the new entry deep-equals the v0.65.0 entry and that exactly one
contract names the new SHA.
- `npx --no-install @biomejs/biome check` (2.5.15) on both changed
files: clean.

## Related

- Same shape as
[#856](#856) (v0.65.0)
and [#853](#853)
(v0.64.2).
- Next: the standards sync into claude-code-plugins, then that
repository's review-caller re-pin.

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

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