Skip to content

[WIP] feat: convert marketplace-ops to skills + automated pruning#461

Open
not-stbenjam wants to merge 2 commits into
openshift-eng:mainfrom
not-stbenjam:prune
Open

[WIP] feat: convert marketplace-ops to skills + automated pruning#461
not-stbenjam wants to merge 2 commits into
openshift-eng:mainfrom
not-stbenjam:prune

Conversation

@not-stbenjam

Copy link
Copy Markdown
Contributor

Summary

  • Convert marketplace-ops commands (prune, prune-update) to skills
  • Add deterministic Python scripts for all mechanical CI operations (comment parsing, save/drop processing, PR body generation, cross-reference scanning)
  • Add make to the CI Docker image
  • Bump marketplace-ops to v0.2.0

This is the ai-helpers side of the automated marketplace pruning Prow job. The corresponding release repo PR adds the step registry ref and periodic job config.

Architecture

The pruning workflow maximizes deterministic operations:

  • Deterministic: Plugin/item scoring, comment parsing/validation, save/drop application, version bumping, PR body generation, cross-reference scanning
  • LLM-only: Qualitative review of flagged items (does the command require AI reasoning? duplicates? dead references?)

New scripts in plugins/marketplace-ops/scripts/

Script Purpose
process-comments.py Parse /save//drop directives from PR comments, filter to trusted collaborators
apply-changes.py Apply save (git checkout + .pruneprotect) and drop (git rm) operations
build-pr-body.py Generate PR body with removal manifest from scoring reports
update-pr-body.py Update PR body after processing save/drop directives
cross-reference-scan.py Detect cross-references to items being removed

Prerequisites (not in this PR)

  • GitHub App installed on openshift-trt-bot (fork) and openshift-eng (upstream)
  • Prow secret ai-helpers-github-app
  • Fork repo openshift-trt-bot/ai-helpers

Test plan

  • Python scripts compile-check passes
  • score-plugins.py and score-items.py still work against the repo
  • cross-reference-scan.py detects references correctly
  • make update syncs marketplace.json
  • make lint passes (needs amd64 runner)

🤖 Generated with Claude Code

Replace interactive commands with skills (LLM-only prune review, update
processing) and add deterministic Python scripts for all mechanical
operations: comment parsing, save/drop application, PR body generation,
cross-reference scanning. Add make to the CI image.

This prepares marketplace-ops for automated execution as a Prow periodic
job where Claude is only invoked for qualitative item-level review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 12, 2026
@openshift-ci

openshift-ci Bot commented May 12, 2026

Copy link
Copy Markdown

[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 rvanderp3 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

@openshift-ci
openshift-ci Bot requested review from LuboTerifaj and dgoodwin May 12, 2026 11:52
@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 12, 2026
@openshift-ci

openshift-ci Bot commented May 12, 2026

Copy link
Copy Markdown

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 commented May 12, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@not-stbenjam has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 24 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4f3a9a6a-afba-46ed-ab0f-e01a20235d41

📥 Commits

Reviewing files that changed from the base of the PR and between 050c35f and 3bb043f.

📒 Files selected for processing (15)
  • .claude-plugin/marketplace.json
  • PLUGINS.md
  • docs/data.json
  • images/Dockerfile
  • plugins/marketplace-ops/.claude-plugin/plugin.json
  • plugins/marketplace-ops/README.md
  • plugins/marketplace-ops/commands/prune-update.md
  • plugins/marketplace-ops/commands/prune.md
  • plugins/marketplace-ops/scripts/apply-changes.py
  • plugins/marketplace-ops/scripts/build-pr-body.py
  • plugins/marketplace-ops/scripts/cross-reference-scan.py
  • plugins/marketplace-ops/scripts/process-comments.py
  • plugins/marketplace-ops/scripts/update-pr-body.py
  • plugins/marketplace-ops/skills/prune/SKILL.md
  • plugins/marketplace-ops/skills/update/SKILL.md
✨ 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.

For individual command removals, only search for the /plugin:command
pattern instead of bare item names which produce false positives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 22, 2026
@openshift-ci

openshift-ci Bot commented May 22, 2026

Copy link
Copy Markdown

PR needs rebase.

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.

@stbenjam

stbenjam commented Jun 6, 2026

Copy link
Copy Markdown
Member

/ok-to-test

@openshift-ci openshift-ci Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jun 6, 2026
@openshift-ci

openshift-ci Bot commented Jul 7, 2026

Copy link
Copy Markdown

Stale PRs are closed after 21d of inactivity.

If this PR is still relevant, comment to refresh it or remove the stale label.
Mark the PR as fresh by commenting /remove-lifecycle stale.

If this PR is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci Bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants