Skip to content

feat: add skill for batch bot dependency PR triage across repos (starting with Install repos) - #127

Draft
rm3l wants to merge 12 commits into
redhat-developer:mainfrom
rm3l:feat/rhdh-pr-triage
Draft

rm3l wants to merge 12 commits into
redhat-developer:mainfrom
rm3l:feat/rhdh-pr-triage

Conversation

@rm3l

@rm3l rm3l commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add rhdh-pr-triage skill for batch triage of open bot dependency update PRs across RHDH Install repositories (rhdh-operator, rhdh-chart, rhdh-local, rhdh-must-gather), with room to expand to other repos as needed
  • Fetches open bot PRs, classifies by branch type / dep type / CI status / semver level, applies policy rules (main vs release branch, Go directive constraints, chart bump rules, EOL checks, FF/CF/GA dates), and produces a decision table — then executes approved operations through the mutation gate, or stops at dry-run
  • Fix rhdh-jira-api and rhdh-release-status to parse natural-language dates (e.g. "August 24", "Sep 2 (done)") in ADF milestone tables, and skip strikethrough text in ADF nodes
  • Special treatment of rhdh-local dev branch as the development branch (equivalent to main in other repos)

What's included

  • skills/plugins/rhdh-pr-triage/ — SKILL.md, policy reference, list_bot_prs.py fetch/classify script, triage workflow, OpenAI agent interface
  • skills/reference/rhdh-jira-api/scripts/adf_milestones.py — natural-language date parsing for milestone tables
  • skills/release/rhdh-release-status/scripts/release.py — same natural-language date parsing + strikethrough skip in ADF
  • Catalog registration in ask-rhdh, setup-rhdh-skills, and marketplace
  • Unit tests for all new script functions

Test plan

  • uv run pytest passes
  • Dry-run triage against live repos with open bot dependency PRs
  • Verify release-state lookups with natural-language milestone dates
  • Confirm mutation-gate integration shows correct operation table

I (@rm3l) have been using this skill successfully over the past few weeks in the Install repos. Example:

🤖 Generated with Claude Code

@rm3l rm3l changed the title feat: add rhdh-pr-triage skill for batch bot dependency PR triage feat: add skill for batch bot dependency PR triage across Install repos Sep 30, 2026
@rm3l rm3l changed the title feat: add skill for batch bot dependency PR triage across Install repos feat: add skill for batch bot dependency PR triage across repos (starting with Install repos) Oct 1, 2026
@rm3l
rm3l force-pushed the feat/rhdh-pr-triage branch 3 times, most recently from c6c3a3b to f5480af Compare October 7, 2026 07:27
@rm3l
rm3l force-pushed the feat/rhdh-pr-triage branch from 294a0a6 to b94cb2c Compare October 15, 2026 07:32
rm3l and others added 12 commits October 22, 2026 10:01
Automates triaging open Renovate and Dependabot dependency PRs across
rhdh-operator, rhdh-chart, rhdh-local, and rhdh-must-gather. Classifies
each PR by branch type, release state, CI status, dependency type, and
Go versioning policy, then produces a decision table and executes
approved operations through mutation-gate. Supports dry-run mode.

Assisted-by: Claude <noreply@anthropic.com>
The milestone date extractor only matched ISO dates (2026-09-14) but
some RHDHPLAN issues use plain-text dates like "September 14". Add a
fallback parser for month-name formats so release schedule lookups
return actual dates instead of TBD.

Assisted-by: Claude
Add a reviewer-friendly report table (Repo, PR, Title, Branch, Decision,
Reason) to both dry-run and normal mode output so the reviewer can scan
all decisions at a glance.

Assisted-by: Claude
…s for GA

Security-only patch releases may not appear on the fixed-issues page.
Check the fixed-security-issues page as well — a match on either
confirms the z-stream is published.

Assisted-by: Claude
rhdh-local uses dev as its development branch because main is kept
stable per a PM requirement. Map dev → main in branch classification
so these PRs follow standard main-branch triage rules instead of
being flagged for human review.

Assisted-by: Claude
Replace the two-table output (8-column plan table + 6-column triage report)
with a single concise 6-column triage report table. Titles are truncated to
the dependency name and reasons kept under ~30 characters for scannability.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add references/repos.md listing the four install repositories the triage
skill covers. Add a merge strategy section to the policy requiring squash
merges for all PR merges.

Assisted-by: Claude
The shared ADF milestones module renamed parse_natural_date to
_parse_natural_date; update the test to match.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ps for human review

Instead of auto-closing Go directive or toolchain bumps on release
branches when the PR carries a [security] label, flag them for human
review — the security fix may need a manual patch.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Only post a new flag comment when the PR has had new commits or review
activity since the last flag comment, avoiding spam on repeated triage
runs.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… lookups

Explicitly mandate invoking /rhdh-release-schedule instead of guessing
or relying on persisted memory, unless told otherwise.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI checks from the listing script are a point-in-time snapshot that can
go stale within minutes. Add a verification step (4b) to re-check via
`gh pr checks` before execution, and document the rule in the policy.

Assisted-by: Claude
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rm3l
rm3l force-pushed the feat/rhdh-pr-triage branch from 31a7d37 to 09f2a44 Compare October 22, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant