Skip to content

TRT-2612: feat(ci): teach payload-analysis to read RPM changelogs as evidence - #688

Open
petr-muller wants to merge 3 commits into
openshift-eng:mainfrom
petr-muller:trt-2612-rpm-changelogs-in-snapshots
Open

TRT-2612: feat(ci): teach payload-analysis to read RPM changelogs as evidence#688
petr-muller wants to merge 3 commits into
openshift-eng:mainfrom
petr-muller:trt-2612-rpm-changelogs-in-snapshots

Conversation

@petr-muller

@petr-muller petr-muller commented Aug 10, 2026

Copy link
Copy Markdown
Member

The payload snapshot now includes RPM changelog diffs (what actually changed in each RPM bump, not just version numbers). Update the payload-analysis skill to consume this data: document the data structures, instruct subagents to read changelogs when investigating RHCOS RPM correlations, use changelog text to sharpen correlation confidence in, surface changelog evidence in the HTML report, and check for unused changelog evidence in the completeness review.

Instead of treating RHCOS RPM changes as a separate "correlation" sidecar that runs after PR scoring, integrate them into the main candidate scoring flow. RPM changelogs serve as the RHCOS equivalent of PR diffs — they are now read and matched against failure symptoms using the same rubric.

Summary by CodeRabbit

  • New Features

    • Payload analysis now evaluates RHCOS RPM changes and changelogs alongside pull requests.
    • Added variant-specific correlation, changelog evidence, deduplication, and intermediate-hop analysis.
    • RPM findings now include scores, rationale, affected jobs, and supporting evidence in YAML and HTML reports.
    • Results clearly distinguish pull request and RHCOS RPM candidates.
  • Bug Fixes

    • RHCOS RPM candidates are excluded from experimentation and standard revert recommendations.
    • Improved validation for candidate types and required evidence.
  • Chores

    • Updated the CI plugin version to 0.0.83 across marketplace and documentation entries.

@openshift-ci
openshift-ci Bot requested review from Prashanth684 and stleerh August 10, 2026 12:23
@openshift-ci

openshift-ci Bot commented Aug 10, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: petr-muller

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

The pull request process is described 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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 10, 2026
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2d549c21-a9a0-4b1a-9d30-797f3354b9b3

📥 Commits

Reviewing files that changed from the base of the PR and between b845b27 and 0b0d666.

📒 Files selected for processing (5)
  • plugins/ci/skills/payload-results-yaml/scripts/test_validate.py
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/invalid_candidate_type_not_string.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid_with_rhcos_rpm_candidate.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/validate.py
🚧 Files skipped from review as they are similar to previous changes (3)
  • plugins/ci/skills/payload-results-yaml/scripts/test_validate.py
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid_with_rhcos_rpm_candidate.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid.yaml

Walkthrough

The CI payload-analysis workflow now scores RHCOS RPM changes with changelog evidence. Typed RPM candidates appear with PR candidates in YAML and HTML output, while experiment and revert actions remain PR-only. CI plugin metadata is updated to version 0.0.83.

Changes

Payload candidate workflow

Layer / File(s) Summary
RPM analysis and reporting
plugins/ci/skills/payload-analysis/SKILL.md, plugins/ci/skills/prow-job-analysis/references/operating-system-changes.md
The analysis derives failure-mode origins, matches RPM changes by variant and hop, uses changelog evidence, scores typed RPM candidates, and renders candidate and changelog data in HTML.
Typed candidate contract and validation
plugins/ci/skills/payload-results-yaml/SKILL.md, plugins/ci/skills/payload-results-yaml/scripts/validate.py, plugins/ci/skills/payload-results-yaml/scripts/test_validate.py, plugins/ci/skills/payload-results-yaml/scripts/testdata/*
The YAML contract replaces rhcos_suspects with typed pr and rhcos_rpm candidates. Validation and fixtures cover type-specific fields and RPM metadata.
PR-only experiment and revert actions
plugins/ci/commands/payload-experiment.md, plugins/ci/commands/payload-revert.md, plugins/ci/skills/payload-analysis/SKILL.md
Experiment and revert filters require type: "pr" and exclude rhcos_rpm candidates.
CI plugin release metadata
.claude-plugin/marketplace.json, plugins/ci/.claude-plugin/plugin.json, docs/index.html
The CI plugin version changes from 0.0.82 to 0.0.83 in all listed metadata locations.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PayloadAnalysis
  participant ChangelogData
  participant CandidateResults
  participant HTMLReport
  PayloadAnalysis->>ChangelogData: Match RPM versions and changelogs
  ChangelogData-->>PayloadAnalysis: Return changelog evidence
  PayloadAnalysis->>CandidateResults: Add scored rhcos_rpm candidate
  CandidateResults->>HTMLReport: Render candidate and changelog data
Loading

Possibly related PRs

Suggested reviewers: stleerh, prashanth684, rvanderp3

🚥 Pre-merge checks | ✅ 8 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Ai-Helpers Overlap Detection ❓ Inconclusive placeholder placeholder
✅ 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 clearly describes the main change: payload analysis now uses RPM changelogs as evidence.
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 PR additions contain no real-person names or person-style references; targeted searches found only technical terms and metadata version changes.
No Assumed Git Remote Names ✅ Passed The full PR diff adds no hardcoded origin or upstream remote names and no Git commands using them; matches are only originating prose.
Git Push Safety Rules ✅ Passed The only added git push is a manual README example for eval/* branches; the PR adds no force push, protected-branch push, or automated push workflow.
No Untrusted Mcp Servers ✅ Passed The complete PR range changes CI documentation, payload-analysis guidance, schemas, fixtures, and versions only; it adds no MCP configuration, server dependency, install command, or dependency mani...
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@petr-muller

Copy link
Copy Markdown
Member Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 10, 2026
@petr-muller

Copy link
Copy Markdown
Member Author

/test ?

@petr-muller

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis-changed

@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: 5

🤖 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/skills/payload-analysis/SKILL.md`:
- Line 261: Revise the “Subpackage deduplication” guidance to require an
explicit source-RPM/source-package identifier before merging candidates. Do not
infer shared SRPM identity from matching version bumps or changelog text; when
no source key exists in diff.changed[], retain each binary package as a separate
logical candidate.
- Around line 604-638: Update the RHCOS Changes rendering to include RPM
changelog evidence for every relevant originating payload and variant, rather
than using only one originating_payload_tag. In the full changelog diff section,
render all distinct origin-and-variant pairs, including the baseline and each
relevant intermediate hop, while preserving the existing candidate and
collapsible evidence structure.
- Around line 604-638: Update the report-generation section around the RHCOS
Changes card to escape every dynamic value before HTML insertion, including
package, versions, variants, scores, jobs, rationale, changelog text,
snapshot/PR/analysis values, and URLs. Use the existing auto-escaping mechanism
where available, escape text and attribute contexts separately, and permit only
safe URL schemes; do not rely on <pre> to prevent markup injection.
- Around line 249-263: Update Step 3.7b and its subagent instructions to use
each failure mode’s test_failures.blocking[].first_failed_in value for RPM
lookups instead of the job-level originating_payload. For every failure mode,
pass that per-failure first_failed_in payload through when selecting
rhcos_changes[], rpm_changelogs[], and per-hop report files, preserving separate
attribution for jobs with multiple failure modes.
- Around line 450-456: The candidate schema is inconsistent between RPM output,
validation, and reviewer prompts. Update the validator and reviewer input
together so candidates use one score field name, define required fields by
`type` (`pr` versus `rhcos_rpm`), remove obsolete `pr_url` and `rhcos_suspects`
requirements, and replace PR-shaped tuple guidance with the unified typed
candidate schema; update the related sections around the RPM fields,
completeness prompt, and downstream validation references.
🪄 Autofix

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: ba0bce83-248a-48d1-8107-450b2b9c32d5

📥 Commits

Reviewing files that changed from the base of the PR and between 0b9c562 and bbd8ac9.

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

Comment thread plugins/ci/skills/payload-analysis/SKILL.md Outdated
Comment thread plugins/ci/skills/payload-analysis/SKILL.md
Comment thread plugins/ci/skills/payload-analysis/SKILL.md Outdated
Comment thread plugins/ci/skills/payload-analysis/SKILL.md Outdated
@petr-muller petr-muller changed the title feat(ci): teach payload-analysis to read RPM changelogs as evidence TRT-2612: feat(ci): teach payload-analysis to read RPM changelogs as evidence Aug 10, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 10, 2026
@openshift-ci-robot

openshift-ci-robot commented Aug 10, 2026

Copy link
Copy Markdown

@petr-muller: This pull request references TRT-2612 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

The payload snapshot now includes RPM changelog diffs (what actually changed in each RPM bump, not just version numbers). Update the payload-analysis skill to consume this data: document the data structures, instruct subagents to read changelogs when investigating RHCOS RPM correlations, use changelog text to sharpen correlation confidence in, surface changelog evidence in the HTML report, and check for unused changelog evidence in the completeness review.

Instead of treating RHCOS RPM changes as a separate "correlation" sidecar that runs after PR scoring, integrate them into the main candidate scoring flow. RPM changelogs serve as the RHCOS equivalent of PR diffs — they are now read and matched against failure symptoms using the same rubric.

Summary by CodeRabbit

  • New Features

  • Payload analysis now evaluates RHCOS RPM changes and changelogs alongside pull requests.

  • Added variant-specific correlation, changelog evidence, deduplication, and intermediate-hop analysis.

  • RPM findings now include scores, rationale, affected jobs, and supporting evidence in YAML and HTML reports.

  • RPM changes remain excluded from standard revert recommendations.

  • Chores

  • Updated the CI plugin version to 0.0.83 across marketplace and documentation entries.

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 openshift-eng/jira-lifecycle-plugin repository.

@petr-muller

Copy link
Copy Markdown
Member Author

/test ?

@petr-muller

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis

@petr-muller-reviewer petr-muller-reviewer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This teaches payload-analysis to score RHCOS RPM changes into candidates[] (tagged type: "pr"/type: "rhcos_rpm") instead of a separate rhcos_suspects[] array. The prompt-spec change itself is clearly written and internally consistent, but it changes a schema owned by another skill (payload-results-yaml) without updating that skill's spec/validator, and without updating the one downstream consumer that filters candidates for reverts (payload-revert.md). See the inline comment on SKILL.md for the core issue; the other two files below aren't touched by this PR's diff so I can't anchor comments on them directly:

[blocking] plugins/ci/commands/payload-revert.md:44 — payload-analysis (SKILL.md:442) says RHCOS RPM candidates must never be proposed as reverts and relies on type: "rhcos_rpm" so "downstream tooling can route it correctly." But this command's filter step (Select candidates with confidence_score >= 85) only checks score, with no type check (and no type field exists in the schema yet, per the inline comment). Effect: an RHCOS RPM candidate scoring >=85 (explicitly allowed by this PR's rubric) has no pr_url; stage-payload-reverts templates {pr_url} into a JIRA bug/revert PR, so a later /ci:payload-revert run would attempt a broken revert for a nonexistent PR instead of escalating to the RHCOS/platform team.

[nit] plugins/ci/skills/prow-job-analysis/references/operating-system-changes.md:115 — still says "Surface them as RHCOS RPM suspects," the terminology this PR replaced in payload-analysis (now scored "RHCOS RPM candidates"). This doc cross-references payload-analysis directly, so the mismatched vocabulary reads as if RPM changes are informational-only here, contradicting the new scored-candidate behavior.

Checked and fine with:

  • Rubric text in SKILL.md (6.1b RHCOS RPM Candidate Notes) is internally consistent and clearly written.
  • Subpackage dedup and variant-isolation guidance make sense given how RHCOS RPM changelogs are structured.
  • Version bump present in plugin.json, as expected for a SKILL.md change.

Open questions:

  • Is a companion PR planned for payload-results-yaml (schema/validator/testdata), or should that land in this same PR before merge?
  • Should payload-revert.md's filter step be updated now (e.g. a type != "pr" exclusion, or treating missing pr_url as non-revertable) even before the schema formally adds type?
  • Any objection to also updating the operating-system-changes.md wording to match the new "RHCOS RPM candidate" terminology?

Comment thread plugins/ci/skills/payload-analysis/SKILL.md Outdated
@openshift-ci

openshift-ci Bot commented Aug 10, 2026

Copy link
Copy Markdown

@petr-muller-reviewer: changing LGTM is restricted to collaborators

Details

In response to this:

This teaches payload-analysis to score RHCOS RPM changes into candidates[] (tagged type: "pr"/type: "rhcos_rpm") instead of a separate rhcos_suspects[] array. The prompt-spec change itself is clearly written and internally consistent, but it changes a schema owned by another skill (payload-results-yaml) without updating that skill's spec/validator, and without updating the one downstream consumer that filters candidates for reverts (payload-revert.md). See the inline comment on SKILL.md for the core issue; the other two files below aren't touched by this PR's diff so I can't anchor comments on them directly:

[blocking] plugins/ci/commands/payload-revert.md:44 — payload-analysis (SKILL.md:442) says RHCOS RPM candidates must never be proposed as reverts and relies on type: "rhcos_rpm" so "downstream tooling can route it correctly." But this command's filter step (Select candidates with confidence_score >= 85) only checks score, with no type check (and no type field exists in the schema yet, per the inline comment). Effect: an RHCOS RPM candidate scoring >=85 (explicitly allowed by this PR's rubric) has no pr_url; stage-payload-reverts templates {pr_url} into a JIRA bug/revert PR, so a later /ci:payload-revert run would attempt a broken revert for a nonexistent PR instead of escalating to the RHCOS/platform team.

[nit] plugins/ci/skills/prow-job-analysis/references/operating-system-changes.md:115 — still says "Surface them as RHCOS RPM suspects," the terminology this PR replaced in payload-analysis (now scored "RHCOS RPM candidates"). This doc cross-references payload-analysis directly, so the mismatched vocabulary reads as if RPM changes are informational-only here, contradicting the new scored-candidate behavior.

Checked and fine with:

  • Rubric text in SKILL.md (6.1b RHCOS RPM Candidate Notes) is internally consistent and clearly written.
  • Subpackage dedup and variant-isolation guidance make sense given how RHCOS RPM changelogs are structured.
  • Version bump present in plugin.json, as expected for a SKILL.md change.

Open questions:

  • Is a companion PR planned for payload-results-yaml (schema/validator/testdata), or should that land in this same PR before merge?
  • Should payload-revert.md's filter step be updated now (e.g. a type != "pr" exclusion, or treating missing pr_url as non-revertable) even before the schema formally adds type?
  • Any objection to also updating the operating-system-changes.md wording to match the new "RHCOS RPM candidate" terminology?

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.

petr-muller and others added 2 commits August 11, 2026 10:59
The payload snapshot now includes RPM changelog diffs (what actually
changed in each RPM bump, not just version numbers). Update the
payload-analysis skill to consume this data: document the data
structures (Step 3.7b), instruct subagents to read changelogs when
investigating RHCOS RPM correlations (Step 4), use changelog text to
sharpen correlation confidence in Step 6.1b, surface changelog evidence
in the HTML report (Step 7.3b), and check for unused changelog evidence
in the completeness review (Step 9).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of treating RHCOS RPM changes as a separate "correlation" sidecar
that runs after PR scoring (Step 6.1b), integrate them into the main
candidate scoring flow. RPM changelogs serve as the RHCOS equivalent of
PR diffs — they are now read and matched against failure symptoms using
the same rubric.

- Step 3.7b: frame changelogs as "the RHCOS equivalent of PR diffs"
- Step 4: merge two RHCOS subagent prompt paragraphs into one
- Step 6.1: expand candidate universe to include RPM changes alongside
  PRs; generalize rubric signal descriptions to cover both types
- Step 6.1b: rename to "RHCOS RPM Candidate Notes" — no longer a
  separate scoring pass, just notes on how RPM candidates differ
  (not revertable, subpackage dedup, hop pinpointing, variant isolation)
- RPM candidates live in candidates[] with type: "rhcos_rpm"
- Step 6.2: exclude RPM candidates from revert proposals
- Step 7.3b: update HTML from "Suspected" to scored "Candidates"
- Step 9: merge two reviewer checks into one

Review follow-ups folded in:
- RHCOS RPM lookups (Step 3.7, Step 4 prompt) now use the failure mode's
  first_failed_in instead of the job-level streak.originating_payload,
  matching how candidate PRs are already re-derived per failure mode
- Name the RPM candidate score field confidence_score, matching PR
  candidates, instead of the ambiguous "score"
- Step 7.3b HTML renders the baseline RPM changelog diff plus a
  subsection per relevant intermediate hop, instead of assuming every
  failure mode shares one origin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@petr-muller
petr-muller force-pushed the trt-2612-rpm-changelogs-in-snapshots branch from bbd8ac9 to b845b27 Compare August 11, 2026 11:09

@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: 3

🤖 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/skills/payload-results-yaml/scripts/validate.py`:
- Around line 9-13: Align candidate validation with the documented schema: in
plugins/ci/skills/payload-results-yaml/scripts/validate.py lines 9-13, update
REQUIRED_CANDIDATE_FIELDS to require rationale and actions and update
REQUIRED_CANDIDATE_FIELDS_BY_TYPE for the documented type-specific fields. In
plugins/ci/skills/payload-results-yaml/scripts/testdata/valid.yaml lines 19-20,
add rationale to the PR candidate. In
plugins/ci/skills/payload-results-yaml/scripts/testdata/valid_with_rhcos_rpm_candidate.yaml
lines 18-25, add actions as an empty list and add changelog_evidence to the RPM
candidate.
- Around line 66-78: Update the candidate validation logic around
REQUIRED_CANDIDATE_FIELDS_BY_TYPE and cand_type to reject non-string type values
before dictionary membership lookup, append an input-validation error, and
ensure validation returns 1 without raising for YAML values such as lists or
mappings. Add a regression fixture covering these cases.

In `@plugins/ci/skills/payload-results-yaml/SKILL.md`:
- Around line 128-162: Update the payload-results schema and processing
operations to handle legacy files before reading candidates: add and enforce a
schema version that rejects older files, or migrate legacy PR and rhcos_suspects
data into typed candidates[] entries with the required type fields. Ensure
migration or rejection occurs before filtering, staging, or any other operation,
and preserve current typed-candidate behavior.
🪄 Autofix

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: 3c99a6e0-09ea-46db-a013-d126651cd08c

📥 Commits

Reviewing files that changed from the base of the PR and between bbd8ac9 and b845b27.

📒 Files selected for processing (10)
  • plugins/ci/commands/payload-experiment.md
  • plugins/ci/commands/payload-revert.md
  • plugins/ci/skills/payload-analysis/SKILL.md
  • plugins/ci/skills/payload-results-yaml/SKILL.md
  • plugins/ci/skills/payload-results-yaml/scripts/test_validate.py
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/invalid_rhcos_rpm_candidate.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/testdata/valid_with_rhcos_rpm_candidate.yaml
  • plugins/ci/skills/payload-results-yaml/scripts/validate.py
  • plugins/ci/skills/prow-job-analysis/references/operating-system-changes.md

Comment thread plugins/ci/skills/payload-results-yaml/scripts/validate.py Outdated
Comment thread plugins/ci/skills/payload-results-yaml/scripts/validate.py
Comment thread plugins/ci/skills/payload-results-yaml/SKILL.md
…load-analysis

payload-analysis now writes RHCOS RPM changes into candidates[] with
type: "rhcos_rpm" alongside PR candidates (type: "pr"), but the schema
they write against, and the two commands that read it, still assumed
the old shape: a separate rhcos_suspects[] array, no type field, and a
validator that unconditionally required pr_url on every candidate. Any
payload-results YAML written under the new instructions failed
validation, and a high-confidence RHCOS RPM candidate had no PR to
revert.

- payload-results-yaml: fold rhcos_suspects[] into candidates[],
  document common vs type-specific fields, require type-conditional
  fields in validate.py (pr_url for "pr"; package/rhcos_tag/
  changelog_evidence for "rhcos_rpm"; rationale/actions for both),
  guard against non-string type values instead of crashing on
  unhashable dict membership, update test fixtures accordingly
- payload-revert.md, payload-experiment.md: filter to type: "pr"
  candidates explicitly, excluding rhcos_rpm candidates from reverts
  and experiments (they cannot be pulled out of a payload like a PR)
- operating-system-changes.md: update stale "RHCOS RPM suspects"
  terminology to match the new scored-candidate flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@petr-muller
petr-muller force-pushed the trt-2612-rpm-changelogs-in-snapshots branch from b845b27 to 0b0d666 Compare August 11, 2026 11:50
@petr-muller

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis

@petr-muller

Copy link
Copy Markdown
Member Author

/hold cancel

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants