Repository navigation
fix(source-control): bind review evidence on review plugin changes - #10027
Conversation
The reusable pr-review-cli.yml stages the review plugin from claude-code-plugins' default-branch tip, never the head, so a pull request that changes plugins/review/ cannot change its own review. Drop plugins/review/ from LANE_SOURCE_PREFIXES and pin the reason with scripts/ci-review-plugin-source.test.sh, which fails if either review caller stops calling that reusable at a commit SHA or passes it a plugin path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LY6PpXaikB8J2tRLeypMmn
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-security-review reviewed Security review of PR #10027 at 0f1e739: no security findings. critical-findings: 0 What the change does. Why this is the instruction-surface and trust-boundary question. The binder decides whether a review record proves the default-branch lane reviewed the head. Narrowing the list is safe only if a PR's copy of
Bypass paths checked.
Manifests. The diff changes no Spend. The change adds a test script and does not affect turn limits, review frequency or billing, so there is no cost hold. |
|
claude-review reviewed No findings. I read the diff, the PR context and both caller workflows. I did not run any tests.
|
No related issue: owner decision Q-LSC in the poteto session, 2026-10-25 ("go w/ recommended"). It unsticks lane PRs #9890, #9831, #9821, #9806 and #9800.
Summary
pr-merge's review-evidence binder no longer unbinds both review lanes when a PR changes
plugins/review/. The review plugin never comes from the PR's head: the reusable review workflow stages it read-only from the claude-code-plugins default branch's tip. So a PR's changes to the plugin cannot change the review it gets.Fix
babysit_review_evidence.py:plugins/review/leavesLANE_SOURCE_PREFIXES. Every other lane source stays, including.github/workflows/, the standards and criteria docs,.claude-lane/,.claude*,CLAUDE.mdand.gitattributes. The comment says why the plugin is not listed and names the test that pins it.scripts/ci-review-plugin-source.test.sh: fails if either review caller (pr-review-hosted.yml,pr-review-security-hosted.yml) stops callingmelodic-software/ci-workflows'pr-review-cli.ymlat a 40-hex SHA, or passes any plugin input or plugin path from the checkout. A PR that repoints a caller still unbinds, because.github/workflows/stays a lane source.Verification
pr-review-cli.yml@4fbceb4b..lane.plugin-dirs: .lane/plugins/reviewat L1178 and L2265.python3 -m unittest discover -s tests -t .(babysit-prs scripts): 2897 OK..claude-plugin/plugin.json). It failed all 5 subtests on the old code.docs/standards,.claude-lane,plugins/review/CLAUDE.md,plugins/review/.claude/settings.json) still unbinds.scripts/ci-review-plugin-source.test.sh: 10 passed. Seven bad-shape fixtures are rejected: tag ref, short SHA, another repository,plugin-dirs, a plugin path in another input, no call, and two calls.scripts/check-affected.sh --tests: 14 passed.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01LY6PpXaikB8J2tRLeypMmn