Skip to content

ci: remove analyze-payload and add RHCOS version to payload snapshots - #519

Merged
openshift-merge-bot[bot] merged 4 commits into
openshift-eng:mainfrom
stbenjam:old-removal
Jun 3, 2026
Merged

openshift-merge-bot[bot] merged 4 commits into
openshift-eng:mainfrom
stbenjam:old-removal

Conversation

@stbenjam

@stbenjam stbenjam commented Jun 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Remove the legacy analyze-payload command and skill, superseded by payload-analysis
  • Port RHCOS version determination logic into payload_snapshot.py so each job in summary.json includes an rhcos_version field (rhcos9, rhcos10, rhcos9_10, or rhcos9-default)
  • Bump CI plugin version to 0.0.45

Test plan

  • Verify python3 -c "import ast; ast.parse(open('plugins/ci/skills/payload-snapshot/scripts/payload_snapshot.py').read())" passes
  • Run snapshot on a 4.x payload and confirm jobs have rhcos_version: rhcos9-default
  • Run snapshot on a 5.x payload with rhcos10 jobs and confirm correct detection
  • Verify /ci:payload-analysis still works end-to-end without the removed analyze-payload files

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Bumped CI plugin version to 0.0.45.
  • Documentation

    • Updated command reference examples; removed deprecated analyze-payload command and skill docs.
    • Adjusted marketplace and index docs to reflect plugin changes.
    • Clarified payload-snapshot and payload-analysis docs on RHCOS variant handling and reporting; updated analyze-disruption description to include CPU metrics.
  • New Features

    • Added RHCOS variant tracking to job metadata.
    • Reporting shows RHCOS badges, variant-isolation detection, and explanatory callouts.

Remove the legacy analyze-payload command and skill, superseded by
payload-analysis. Port the RHCOS version determination logic into the
payload_snapshot.py script so each job in summary.json includes an
rhcos_version field (rhcos9, rhcos10, rhcos9_10, or rhcos9-default).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci
openshift-ci Bot requested review from bryan-cox and zaneb June 3, 2026 13:36
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 3, 2026
@coderabbitai

coderabbitai Bot commented Jun 3, 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: 574e68be-eae4-4ce8-8a14-9b12c073c8bc

📥 Commits

Reviewing files that changed from the base of the PR and between 7b7cc5f and 26e25e3.

📒 Files selected for processing (2)
  • plugins/ci/skills/payload-analysis/SKILL.md
  • plugins/ci/skills/payload-snapshot/SKILL.md
✅ Files skipped from review due to trivial changes (1)
  • plugins/ci/skills/payload-snapshot/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugins/ci/skills/payload-analysis/SKILL.md

Walkthrough

CI plugin version bumped to 0.0.45; GEMINI example command updated. Payload-snapshot adds per-job rhcos_version (derived from job name/OCP version) and propagates it into job.json and summaries. Payload-analysis docs require/pass rhcos_version, classify variant-isolated failures, and render RHCOS badges/callouts.

Changes

CI Plugin Version Bump and RHCOS Version Tracking

Layer / File(s) Summary
Version bump and documentation alignment
.claude-plugin/marketplace.json, plugins/ci/.claude-plugin/plugin.json, GEMINI.md, docs/index.html
Plugin version bumped from 0.0.44 to 0.0.45 in marketplace and manifest; GEMINI example command changed from /ci:analyze-payload to /ci:payload-analysis; analyze-payload command/skill entries removed from docs dataset.
RHCOS version added and propagated in snapshot collection
plugins/ci/skills/payload-snapshot/scripts/payload_snapshot.py
JobInfo gains rhcos_version; Snapshotter._collect_jobs() passes OCP version to _extract_jobs(); _extract_jobs() and new _determine_rhcos_version() compute rhcos_version from job-name fragments and OCP major-version fallback; JobCollector._fetch() conditionally writes rhcos_version; SummaryGenerator._build_failed_job_details() and _collect_job_paths() propagate it into summaries.
Payload-analysis documentation and HTML report updates
plugins/ci/skills/payload-analysis/SKILL.md
Failed-job entries include rhcos_version; per-subagent prompt now passes rhcos_version and rhcos_context; ANALYSIS_RESULT requires rhcos_version; new cross-job "variant isolation" classification added; HTML reports show RHCOS badges and conditional variant-isolation callouts with CSS styles.
Snapshot skill docs: schema and job.json docs
plugins/ci/skills/payload-snapshot/SKILL.md
summary.json docs list relative paths included per failed job; job.json docs extended to describe rhcos_version mapping rules and supported variant values (rhcos9_10, rhcos10, rhcos9, rhcos9-default).
sequenceDiagram
  participant Snapshotter
  participant _extract_jobs
  participant JobCollector_fetch
  participant SummaryGenerator
  Snapshotter->>_extract_jobs: pass OCP version (self.tag.version)
  _extract_jobs->>_extract_jobs: compute rhcos_version via _determine_rhcos_version
  _extract_jobs->>JobCollector_fetch: return JobInfo with rhcos_version
  JobCollector_fetch->>SummaryGenerator: write job.json (includes rhcos_version)
  SummaryGenerator->>SummaryGenerator: include rhcos_version in failed-job entries and report rendering
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

lgtm

Suggested reviewers

  • petr-muller
  • zaneb
  • bryan-cox
🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (9 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the two main changes: removal of analyze-payload command/skill and addition of RHCOS version tracking to payload snapshots.
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 in plugin commands, skills, or prompts. All "Claude" references are technical (tool name, environment variables, job names).
No Assumed Git Remote Names ✅ Passed PR contains no new git commands with hardcoded remote names. The only pre-existing git fetch origin in payload_snapshot.py was not modified.
Git Push Safety Rules ✅ Passed PR contains no git push commands, force push operations, or unauthorized pushes to main/master. Code additions focus on payload processing logic without any git automation.
No Untrusted Mcp Servers ✅ Passed PR introduces no MCP server installations. Changes are version bumps, removal of legacy files, and Python logic enhancements for RHCOS version tracking—no new external dependencies.
Ai-Helpers Overlap Detection ✅ Passed PR removes legacy analyze-payload (superseded by payload-analysis) and enhances existing skills; no new overlapping functionality introduced.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@petr-muller

Copy link
Copy Markdown
Member

/cc

@openshift-ci
openshift-ci Bot requested a review from petr-muller June 3, 2026 13:38
stbenjam and others added 2 commits June 3, 2026 13:41
Update payload-analysis skill to read rhcos_version from snapshot data,
pass it to subagents, perform variant isolation analysis, and render
RHCOS badges in the HTML report. Document the new rhcos_version field
in the payload-snapshot SKILL.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
plugins/ci/skills/payload-analysis/SKILL.md (1)

1-535: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Run the required 4-phase overlap check for plugins/ci/skills/payload-analysis/SKILL.md (include HIGH/MODERATE/LOW).

The earlier overlap check output wasn’t provided in the review, and the prior search indicates there is at least one concurrent open PR editing the same skill: #519 (ci: remove analyze-payload and add RHCOS version to payload snapshots), with changes including plugins/ci/skills/payload-analysis/SKILL.md. The 4-phase process (filter → quick title/path → semantic comparison w/ ≥60% threshold → HIGH/MODERATE/LOW) should be run against the relevant PR(s) and summarized before merge.

🤖 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/skills/payload-analysis/SKILL.md` around lines 1 - 535, The
reviewer requests a 4-phase overlap check for
plugins/ci/skills/payload-analysis/SKILL.md and a summary of overlap severity
(HIGH/MODERATE/LOW) before merging; run the canonical 4-phase process (filter by
concurrent PRs editing same file, quick title/path similarity, semantic
comparison with ≥60% threshold, then classify conflict severity) specifically
against open PR `#519` (and any other PRs that touch SKILL.md), produce the
overlap results (which PRs passed each phase, the semantic similarity score(s),
and a final HIGH/MODERATE/LOW verdict per PR), and include that summary as a
review comment prior to merge so maintainers can decide how to proceed.
🤖 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`:
- Around line 295-296: The documentation currently lists CSS badge classes
badge-rhcos9, badge-rhcos10 and badge-rhcos-mixed but the schema also accepts
rhcos9-default; add an explicit mapping that treats rhcos9-default the same as
rhcos9 by documenting that rhcos9-default renders with the badge-rhcos9 visual
style (and note adding the variant-isolated class if applicable). Update every
place that enumerates RHCOS badge examples/styles (references to badge-rhcos9,
badge-rhcos10, badge-rhcos-mixed and the rhcos entries) so rhcos9-default is
shown and described as using badge-rhcos9 (ensure the same wording appears in
the sections currently listing rhcos badges).
- Around line 170-174: The documentation for RHCOS variant isolation omits how
`rhcos9-default` should be treated; update the "RHCOS variant isolation" section
to state that `rhcos9-default` counts as RHCOS 9 for isolation checks (i.e., it
contributes to the RHCOS 9 side when computing `failure_scope` values like
"rhcos9-only" and "rhcos10-only"), alongside the existing note that `rhcos9_10`
counts toward both variants; explicitly mention `rhcos9-default` by name so
implementations of `failure_scope` logic treat it as RHCOS 9.

In `@plugins/ci/skills/payload-snapshot/SKILL.md`:
- Around line 192-196: The documentation claims `rhcos9-default` is derived from
the OCP major version but the implementation always returns `rhcos9-default` for
the no-fragment path; update the SKILL.md text that lists `rhcos_version` (the
paragraph describing `rhcos9-default`) to accurately reflect current behavior by
softening the wording (e.g., “currently defaults to `rhcos9-default` when no
fragment is present” or similar) so the docs match the actual logic rather than
implying OCP-major-based derivation.
- Line 161: Update the SKILL.md description for blocking_jobs.failed_jobs[] to
clearly mark conditional fields as optional: change the sentence listing
rhcos_version, streak, build_log_errors, and test_failure_count to indicate they
"may include" or append "(optional)" to each conditional field, and ensure
streak's subfields (streak_length, originating_payload, is_new_failure,
failure_pattern) are also marked optional; locate the text referencing
blocking_jobs.failed_jobs[] and replace the current definitive list with wording
that matches the generated schema (e.g., "may include: rhcos_version, streak
(may include ...), build_log_errors, test_failure_count, and relative paths
...").

---

Outside diff comments:
In `@plugins/ci/skills/payload-analysis/SKILL.md`:
- Around line 1-535: The reviewer requests a 4-phase overlap check for
plugins/ci/skills/payload-analysis/SKILL.md and a summary of overlap severity
(HIGH/MODERATE/LOW) before merging; run the canonical 4-phase process (filter by
concurrent PRs editing same file, quick title/path similarity, semantic
comparison with ≥60% threshold, then classify conflict severity) specifically
against open PR `#519` (and any other PRs that touch SKILL.md), produce the
overlap results (which PRs passed each phase, the semantic similarity score(s),
and a final HIGH/MODERATE/LOW verdict per PR), and include that summary as a
review comment prior to merge so maintainers can decide how to proceed.
🪄 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: 4df4dcb3-675c-4d25-b8d0-cf33d4d3047a

📥 Commits

Reviewing files that changed from the base of the PR and between a05f621 and 39c6509.

📒 Files selected for processing (2)
  • plugins/ci/skills/payload-analysis/SKILL.md
  • plugins/ci/skills/payload-snapshot/SKILL.md

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-snapshot/SKILL.md Outdated
Comment thread plugins/ci/skills/payload-snapshot/SKILL.md Outdated
- Clarify that rhcos9-default counts as RHCOS 9 for variant isolation
- Document that rhcos9-default renders with badge-rhcos9 CSS class
- Mark conditional fields as optional in summary.json schema docs
- Soften rhcos9-default wording to match current implementation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stbenjam

stbenjam commented Jun 3, 2026

Copy link
Copy Markdown
Member Author

/test ?

@stbenjam

stbenjam commented Jun 3, 2026

Copy link
Copy Markdown
Member Author

/test eval-payload-analysis-minimal

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 3, 2026
@openshift-ci

openshift-ci Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

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

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

@petr-muller

Copy link
Copy Markdown
Member

/hold

prevent accidental merge, unhold as needed

@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 Jun 3, 2026
@stbenjam

stbenjam commented Jun 3, 2026

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 Jun 3, 2026
@stbenjam

stbenjam commented Jun 3, 2026

Copy link
Copy Markdown
Member Author

/hold

Ah wait openshift/release#79922 needs to go first

@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 Jun 3, 2026
@stbenjam

stbenjam commented Jun 3, 2026

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 Jun 3, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit 5b6e8cf into openshift-eng:main Jun 3, 2026
6 checks passed
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. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants