Skip to content

Improve analyze-payload scoring precision with three targeted signals - #478

Closed
not-stbenjam wants to merge 1 commit into
openshift-eng:mainfrom
not-stbenjam:worktree-agent-a9da920bcee7f52ec
Closed

not-stbenjam wants to merge 1 commit into
openshift-eng:mainfrom
not-stbenjam:worktree-agent-a9da920bcee7f52ec

Conversation

@not-stbenjam

@not-stbenjam not-stbenjam commented May 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add cloud platform infrastructure triage with -20 negative adjustment for platform-specific failures without clear mechanism evidence (reduces false positives like Azure Graph API issues blamed on builder image changes)
  • Add test-introduction match signal (+40) for PRs that introduce a test which immediately fails — near-certain causation evidence
  • Add sub-component resolution for repos with 3+ PRs, scoring component exclusivity at sub-component level rather than whole-repo level (fixes persistent Case 008 weakness)

Test plan

  • Run eval suite against baseline (2026-05-14-opus-4cases) and compare scores
  • Verify Case 008 (hypershift multi-PR) improves from 3/5 to 4-5/5 on analysis_quality
  • Verify Case 012 (HyperShift builder FP) correctly applies -20 platform adjustment
  • Verify no regressions on Cases 006, 007, 009

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Updated CI plugin version to 0.0.40
  • Documentation

    • Enhanced candidate scoring rubric with improved failure triage classification and new test-introduction matching signal for more accurate PR assessment

- Add test-introduction match signal (+40) to rubric: near-certain
  causation when a PR introduces a test that immediately fails
- Add sub-component resolution guidance: score component exclusivity
  at sub-component level (e.g., control-plane-operator/ vs test/)
  for repos with 3+ PRs, fixing misidentification in Case 008
- Add cloud platform infrastructure triage with -20 adjustment for
  platform-specific failures lacking a causal mechanism from PR
  changes, reducing false positive revert recommendations
- Bump ci plugin version to 0.0.40

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci
openshift-ci Bot requested review from bentito and brandisher May 15, 2026 03:08
@openshift-ci

openshift-ci Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: not-stbenjam
Once this PR has been reviewed and has the lgtm label, please assign prashanth684 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

CI plugin version 0.0.39 is incremented to 0.0.40 across the plugin manifest, marketplace configuration, and data export. The marketplace dependency allowlist is reformatted to multi-line. The candidate scoring rubric for the analyze-payload skill is enhanced with infrastructure-failure triage logic and a new test-introduction-matching signal.

Changes

CI Plugin v0.0.40 Release

Layer / File(s) Summary
Version synchronization across manifests and data
plugins/ci/.claude-plugin/plugin.json, .claude-plugin/marketplace.json, docs/data.json
CI plugin version is bumped from 0.0.39 to 0.0.40 across the plugin manifest, marketplace config, and data export; the marketplace dependency allowlist is reformatted from inline to multi-line format with the same allowed value preserved.
Scoring rubric enhancements
plugins/ci/skills/analyze-payload/SKILL.md
Candidate scoring rubric adds infrastructure/platform-specific failure triage (with -20 adjustment for failures lacking clear mechanism), introduces a new "Test-introduction match" signal (+40), and clarifies score capping and sub-component-based component exclusivity resolution for repos with multiple PRs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • openshift-eng/ai-helpers#337: Updates to plugins/ci/skills/analyze-payload/SKILL.md for candidate-PR scoring logic and analyze-payload skill documentation.
  • openshift-eng/ai-helpers#385: Expands candidate-PR scoring logic in plugins/ci/skills/analyze-payload/SKILL.md for infrastructure/platform-specific failure handling.
  • openshift-eng/ai-helpers#377: Bumps CI plugin version fields in .claude-plugin/marketplace.json and plugins/ci/.claude-plugin/plugin.json.

Suggested labels

approved, lgtm

Suggested reviewers

  • stbenjam
  • enxebre
  • rvanderp3

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (2 errors)

Check name Status Explanation Resolution
No Assumed Git Remote Names ❌ Error File plugins/ci/skills/revert-pr/SKILL.md uses hardcoded "upstream" and "origin" in git commands without discovering remotes first (git fetch upstream, git checkout upstream/$base_branch). Discover remotes with git remote -v before using hardcoded names in Step 7 commands.
Git Push Safety Rules ❌ Error PR introduces git push without user confirmation in two new files: add-debug-wait.md (Step 7) and revert-pr SKILL.md (Step 7). Both push autonomously without asking permission. Add confirmation prompts before git push. Both files need user confirmation (y/n) before executing git push commands.
✅ Passed checks (8 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly references the main change: improving analyze-payload scoring precision with three targeted signals, which aligns with the primary objective of adding cloud platform infrastructure triage, test-introduction match, and sub-component resolution signals.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No Real People Names In Style References ✅ Passed No real people's names used as style references. "Claude" references are environment variables, directory paths, or tool names, not person style references.
No Untrusted Mcp Servers ✅ Passed No untrusted MCP servers are introduced. PR modifies only plugin versions, allowlist formatting, and skill documentation. No external dependencies or MCP servers added.
Ai-Helpers Overlap Detection ✅ Passed PR modifies only one existing skill (analyze-payload) with scoring improvements. No new commands/skills created, no file paths overlap with other ai-helpers, no competing functionality detected.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label May 15, 2026
@openshift-ci

openshift-ci Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Hi @not-stbenjam. Thanks for your PR.

I'm waiting for a openshift-eng member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/ci/.claude-plugin/plugin.json`:
- Around line 5-7: The plugin manifest's author field is using an object instead
of the required canonical string; update the "author" entry in
plugins/ci/.claude-plugin/plugin.json to be the string
"github.com/openshift-eng" (replace the existing object with that exact string
value) so the plugin manifest matches the contract.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 33444abc-f7b9-4dab-b827-756bdd613bed

📥 Commits

Reviewing files that changed from the base of the PR and between 503e009 and e0ca9b0.

📒 Files selected for processing (4)
  • .claude-plugin/marketplace.json
  • docs/data.json
  • plugins/ci/.claude-plugin/plugin.json
  • plugins/ci/skills/analyze-payload/SKILL.md

Comment on lines 5 to 7
"author": {
"name": "openshift"
}

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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Set author to the required canonical value.

The current author object does not match the required plugin manifest contract. It should be a string value: "github.com/openshift-eng".

🔧 Proposed fix
 {
   "name": "ci",
   "description": "Tools for working with OpenShift CI and analyzing Prow job results",
   "version": "0.0.40",
-  "author": {
-    "name": "openshift"
-  }
+  "author": "github.com/openshift-eng"
 }

As per coding guidelines, "Set author field to "github.com/openshift-eng" in plugin.json".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"author": {
"name": "openshift"
}
{
"name": "ci",
"description": "Tools for working with OpenShift CI and analyzing Prow job results",
"version": "0.0.40",
"author": "github.com/openshift-eng"
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/ci/.claude-plugin/plugin.json` around lines 5 - 7, The plugin
manifest's author field is using an object instead of the required canonical
string; update the "author" entry in plugins/ci/.claude-plugin/plugin.json to be
the string "github.com/openshift-eng" (replace the existing object with that
exact string value) so the plugin manifest matches the contract.

@stbenjam stbenjam closed this May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants