Repository navigation
fix(review): title the pr-review-cli completion notice and count demoted CRITICAL findings - #865
Conversation
…ted CRITICAL findings The completion notice now carries the annotation title claude-lane-review-complete on every path, as pr-review.yml and pr-review-security.yml emit it, so a merge gate that filters on the title finds the record. When one bad anchor moves the whole inline batch to the summary, the summary's critical-findings line now counts the moved CRITICAL findings, and one is added when the model left it out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 25s —— View job Security reviewReviewed the three changed files against
No No security vulnerabilities found (logic flaws, auth/access-control gaps, injection, or credential handling). This is an internal CI-bookkeeping fix with no new trust-boundary or data-flow surface; GitHub Actions hardening concerns (triggers, permissions, pins) are unaffected and out of scope for this lane regardless. critical-findings: 0 claude-lane-summary: lane=claude-security-review sha=1f41a44879912310dd405eca27aea18c6c575d6a run=39902588980 |
|
Claude finished @kyle-sexton's task in 4m 9s —— View job Code review:
|
|
claude-security-review has reviewed this pull request through 1f41a44; a later push is reviewed from there. |
|
claude-review has reviewed this pull request through 1f41a44; a later push is reviewed from there. |
…contract (#849) Refs: melodic-software/claude-code-plugins#9307 ## Summary Registers `pr-review-cli.yml@83b739f625b501ad40c65dee7168d836883195e1` (ci-workflows [v0.63.1](https://github.com/melodic-software/ci-workflows/releases/tag/v0.63.1)) so claude-code-plugins#9307 can re-pin its security lane to it. ## Fix v0.63.1 changes only the publish step ([ci-workflows#865](melodic-software/ci-workflows#865): titled completion notice, demoted CRITICAL findings counted). The contract copies the v0.63.0 entry forward verbatim: same routing, inputs and secrets. ## Verification - `node --test runner-policy.test.mjs` in `components/runner-policy`: 337 pass, including the new copy-forward test. ## Related - Same shape as #848 (v0.63.0). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Refs: melodic-software/claude-code-plugins#9307
Summary
Two pr-review-cli publish fixes that block claude-code-plugins#9307 from moving its security lane onto pr-review-cli:
claude-lane-review-completenotice had no annotation title. pr-review.yml and pr-review-security.yml emit::notice title=claude-lane-review-complete::, and babysit's evidence reader keeps only annotations with that title. Without it, every pr-review-cli review read as no-record.critical-findings:line still left those findings out. A demoted CRITICAL finding then counted as non-blocking.Fix
publish.cjs: the three completion notices (whole or incremental review,skip=no-change,skip=docs-only) pass{ title: "claude-lane-review-complete" }.countedSummary: on a demoted batch, it adds the moved CRITICAL findings to the model's onecritical-findings:line, changing that line in place. A finding counts as CRITICAL unless it has exactly one IMPORTANT or SUGGESTIONseverity:line, which is how the gate reads a thread. With no line, it adds one that counts every summary finding as CRITICAL. With two or more lines it leaves the text alone, because a gate already counts every finding then.Not changed: the skipped jobs' names. When a pr-review-cli job is skipped, its
${{ inputs.lane ... }}name renders as the raw expression. Literal per-lane job names would emit a skipped wrong-lane check (pr-review-security / claude-review-status) on every run. babysit'sAI_REVIEW_CHECKSmatchesclaude-review-statuson the last segment, so that check would hold every PR. Each reader treats a skipped AI review check the same as a missing one (babysit_merge.pyai_review_holds, merge.mdlane()), so the raw name changes no gate.Verification
node --test .github/scripts/publish-review.test.cjs: 17 pass. Three of the new tests fail on main: the title on all completion notices, a demoted CRITICAL count raised in place, and a line added when missing.node --test .github/scripts/claude-lane-*.test.cjs .github/scripts/publish-review.test.cjs: 201 pass.Related
🤖 Generated with Claude Code