Skip to content

ci(review): count the legacy FAILs file as read through generated-data - #12601

Merged
kyle-sexton merged 4 commits into
mainfrom
chore/review-generated-data-list
Nov 3, 2026
Merged

kyle-sexton merged 4 commits into
mainfrom
chore/review-generated-data-list

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: #12558

Summary

Both hosted review lanes now count verify-legacy-fails.json as read, through ci-workflows' generated-data input (ci-workflows#971).

Fix

  • The file is 184 KB of generated verdict records (550 FAIL artifacts). The review lanes cannot read it whole, so every review of feat(source-control): commit the legacy FAILs file to turn on FAIL index mode #12558 ended failure-class=partial (run 41556656275).
  • New list scripts/review-generated-data.txt, beside scripts/shared-copies.txt, names it.
  • pr-review-hosted.yml and pr-review-security-hosted.yml pass the list as generated-data. The lane reads it at the merge base, so no pull request can exempt its own files. A path matching SENSITIVE_PATHS or a hold path is never exempted, and gitleaks still scans the file.

Verification

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW

kyle-sexton and others added 2 commits November 2, 2026 20:39
verify-legacy-fails.json is 184 KB of generated verdict records the review
lanes can never read whole, so every review of a change to it ends partial.
List it in scripts/review-generated-data.txt and pass that list to both
hosted review lanes through ci-workflows' generated-data input, read at the
merge base.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 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-11-03T02:09:00.333598Z 97abd5c 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.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

claude-security-review: 1 inline finding(s) on 97abd5cc4bc7c8c7fdf1a9166bb1e93d9efe11af; the summary is in this lane's pull request comment.

claude-lane: claude-security-review

Comment thread scripts/review-generated-data.txt Resolved
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review needs no new review of 80dd9b0a624f2dbd15aaed670b0f4a64d1e361aa: no file of this pull request changed since the review of d2b3ece.

Security review: PR #12601 (incremental, 97abd5c → d2b3ece)

No security issues found and no hold. This round covers one file, scripts/review-generated-data.txt, and I read its whole change.

What changed. Only the list's header comment changed. The comment now says what the loader checks: structure only, never content. It also says a listed path stays only while the commit that adds the file lands, and is removed once that commit is on main. The listed path (verify-legacy-fails.json) is the same, and the two workflows that pass the list as generated-data are unchanged since the last review.

Earlier finding. Last round I raised one IMPORTANT finding: the generated-data exemption would let a later pull request change the merge gate's legacy-FAILs file without either review lane reading it. That thread is now settled by the owner's reply, and the settled-threads file records no line changes since it was resolved. The reply states a decision:

The new header records that plan. The finding was IMPORTANT, not CRITICAL, and this round touches no code the reply relies on, so I have not raised it again.

Still open. The removal is a written plan, not something enforced. The exemption stays live until that follow-up merges.

Other checks

  • No new untrusted text reaches a lane, and no token, permission, trusted-actor list or kill switch is touched.
  • No plugin manifest changed, so there are no manifest lines.
  • No standing instruction is deleted or narrowed. The header gets more precise; it is not weakened.
  • Nothing in the PR context or the settled-threads file tries to direct this review.
  • Spend: none.

critical-findings: 0

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

claude-review: 1 inline finding(s) on 97abd5cc4bc7c8c7fdf1a9166bb1e93d9efe11af; the summary is in this lane's pull request comment.

claude-lane: claude-review

Comment thread scripts/review-generated-data.txt Resolved
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

claude-review needs no new review of 80dd9b0a624f2dbd15aaed670b0f4a64d1e361aa: no file of this pull request changed since the review of d2b3ece.

Code review: PR #12601 (incremental, 97abd5c → d2b3ece)

Scope: this push changed one file, scripts/review-generated-data.txt. I read its whole change: the header comment was rewritten and the list entry is untouched.

Result: no findings.

My last advisory said the header claimed each listed file is "checked by its own loader", when verify-legacy-fails.json's loader only checks its structure. The new header fixes that:

  • It now says the loader "checks its structure only, never its content".
  • It limits the exemption to the commit that adds the file. The entry is removed once that commit is on main, and after that, edits get a full review.

That matches the owner's replies on both threads, and the settled-threads file marks both lines changed since resolution: no. I found no new problem in the rewritten lines.

Prior findings: the one inline advisory from the last round (discussion_r4450160296) is resolved by this change, so I have not reposted it. This is round 2 of 3, not past the cap.

Still open, not a finding: the header's removal rule is a process commitment, and nothing enforces it. The plan is a follow-up PR that drops the entry once #12558 is on main. Until then, an edit to the file in another PR would still count as read. The owner's reply says ci-workflows#971's 7500-byte floor keeps small edits under review in that window. That is author-claimed, and I did not check it. Someone should make sure the follow-up actually lands.

Carried over from last round, still unchecked: both callers pin pr-review-cli.yml@main. The new generated-data input needs ci-workflows#971 to be on ci-workflows main when this merges, and I cannot see its merge state from here.

Other checks:

… is added

The legacy FAILs file's loader checks structure, not content, so the header
no longer promises content checks, and states that an entry is removed once
the commit adding its file is on main, so later edits are reviewed in full.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW
kyle-sexton added a commit to melodic-software/standards that referenced this pull request Nov 3, 2026
Refs: melodic-software/claude-code-plugins#12558
<!-- session: poteto -->

## Summary

Adds `generated-data` to the reviewed `allowedInputs` of
`melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml` in
`components/runner-policy/policy.json`.

## Fix

melodic-software/ci-workflows#971 (merged) added the opt-in
`generated-data` input. Without this entry, a caller that passes it
fails `runner-policy` with "the reusable workflow call has inputs absent
from its reviewed contract: generated-data" (seen on
claude-code-plugins#12601). The input names a repository file listing
generated data files the review skips. It carries no secret and does not
affect runner routing.

## Verification

- `node --test components/runner-policy/runner-policy.test.mjs`: 226/226
pass.

## Related

- melodic-software/ci-workflows#971 (the input);
melodic-software/claude-code-plugins#12601 (the caller opt-in, waiting
on this through the sync). Same shape as #940.

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

https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 3, 2026
Merged via the queue into main with commit cf5a569 Nov 3, 2026
47 checks passed
@kyle-sexton
kyle-sexton deleted the chore/review-generated-data-list branch November 3, 2026 03:08
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Post-merge mutation testing

Killed 6, survived 1, timeout 0, no coverage 0, invalid 0, not run 0.
Covered-code score 86%; mutation score 86%.

File Killed Survived Timeout No coverage Invalid Not run
plugins/discovery/scripts/check-claim-eligibility.py 3 1 0 0 0 0
plugins/discovery/scripts/check-restatement-labels.py 3 0 0 0 0 0

Surviving mutants

Location Operator Disposition Cause
plugins/discovery/scripts/check-claim-eligibility.py:130 SBR productive input-gap

The run's summary has the full report.

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