Repository navigation
fix(ci): select the manifest-reading suites when a plugin manifest changes - #13174
Conversation
…anges A change to plugins/<p>/.claude-plugin/plugin.json selected neither lib/view-settings.test.sh nor scripts/check-data-root.test.sh. Both read every plugin's manifest through a path built from parts, and the selector maps manifests only through R1, R2 or a declared scope (R8). The merge group for #13027 therefore skipped view-settings, and only the full main run caught the break. Both suites now declare `plugins/*/.claude-plugin/plugin.json` in a `# test-scope:` header, as lib/prerequisites.test.sh already does. check-data-root also declares `plugins/*/README.md`, which it reads the same way. scripts/affected-tests-live.sh pins both selections. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… diff 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-security-review reviewed Security review: PR #13174No security issues found. I read every hunk in all 4 changed files.
Trust controls checked:
No plugin manifest changes, and no standing instruction is deleted, narrowed or softened. No embedded directives in the PR context. critical-findings: 0 |
|
claude-review reviewed Code review: no findingsI read every hunk of all 4 changed files. Nothing reaches the reporting bar. What the change does. It adds an R8 What I checked by reading the code:
Minor, not counted as a finding:
Unverified. I had no shell, so I ran nothing. The PR's Verification section is the author's claim and I did not confirm it: 37 passing and 2 failing on main, 39 passing here, 147 passing in Closing issue. There is none; the PR cites hub ledger L268. With no stated acceptance criteria, there is nothing to check against. Spend. Any plugin manifest change will now also run these two suites in the PR and merge-group CI. That is a little more Actions time on existing runners and needs no hold. |
No related issue: hub ledger L268. Main went red at 2026-11-04T07:18Z after #13027 merged green: the merge group's affected set missed
lib/view-settings.test.sh.Summary
#13027 changed
userConfiginplugins/architecture/.claude-plugin/plugin.json.lib/view-settings.test.mjschecks each lane'shasMediumOptionagainst whether its plugin's manifest ships one, building each manifest path from its parts (line 235). The selector picks a suite for a manifest only through rules R1, R2 or R8, never through a file that mentions the manifest (scripts/affected-tests.sh:163-168). This suite had no R8 declaration, so the merge group never ran it. Only the 07:09Z full main run caught the failure.Fix
lib/view-settings.test.sh:3:# test-scope: plugins/*/.claude-plugin/plugin.json. This is the existing R8 per-suite reads declaration (scripts/affected-tests.sh:133-144, parsed at :688-703) thatlib/prerequisites.test.sh:6already uses. No new mechanism.scripts/check-data-root.test.sh:12:# test-scope: plugins/*/.claude-plugin/plugin.json plugins/*/README.md. It runscheck-stamps.shover every liveplugin.jsonand every plugin README with the generated block (:104-111), and nothing selected it before either.lib/prerequisites.test.sh,scripts/node-notice-rows.test.sh, and the user-experience and user-interfacerouting.test.sh.lib/view-registry.mjsalready selectslib/view-settings.test.sh.pr-require-checks.yml: the diff-base comment said a merge group touching a manifest tests the whole tree.scripts/resolve-diff-base.sh:13-18scopes it to the group's own diff, so the comment now says that.Verification
scripts/affected-tests-live.sh: two newread_pairs. They fail on main (37 passed, 2 failed: the architecture manifest selected neither suite) and pass here (39 passed).scripts/affected-tests.test.sh147 passing.lib/view-settings.test.sh52/52;scripts/check-data-root.test.sh18/18.scripts/check-affected.sh --base origin/main --no-fetch: exit 0.selection-audit.test.shandcheck-affected.test.sh, which have no known-miss entries for these suites.Related
🤖 Generated with Claude Code