rhdh-pr-review

star 12

Review pull requests: code-level analysis with inline comments, and live cluster testing for rhdh-operator PRs. Supports GitHub (GitLab planned). Use when asked to review a PR, review code, post review comments, test PR changes on a cluster, deploy PR images for testing, or do a full PR review. Also use when given a PR URL or number and asked for feedback, or when user mentions "review this PR", "PR review", "code review", or "test this PR on my cluster".

redhat-developer By redhat-developer schedule Updated 6/5/2026

name: rhdh-pr-review description: > Review pull requests: code-level analysis with inline comments, and live cluster testing for rhdh-operator PRs. Supports GitHub (GitLab planned). Use when asked to review a PR, review code, post review comments, test PR changes on a cluster, deploy PR images for testing, or do a full PR review. Also use when given a PR URL or number and asked for feedback, or when user mentions "review this PR", "PR review", "code review", or "test this PR on my cluster".

For cluster testing workflows, set up the orchestrator CLI:

RHDH=../rhdh/scripts/rhdh
Reviews follow a three-layer pipeline: **fetch** (forge-specific) → **analyze** (agnostic) → **post** (forge-specific). Each layer produces a structured artifact for the next. The analyze layer never calls forge-specific CLIs. Reviewers will produce false positives. Verify every finding against actual code at HEAD before including it. Drop findings that reference non-existent code, duplicate existing comments, misread the code, or conflict with codebase conventions. Present the full review draft — summary, inline comments with file:line, and event type — to the user before posting. Proceed only after confirmation. For cluster testing: deploy the full PR bundle/manifests, not just the operator binary image. PR changes to CRDs, RBAC, default config, or bundle metadata are baked into the OLM bundle or install.yaml — a binary-only image swap misses them.

What would you like to do?

Code Review

  1. Review PR code — Analyze a PR diff, generate findings, and post inline comments
  2. Review PR code (analysis only) — Analyze without posting (e.g., to review locally or post later)

Cluster Testing (rhdh-operator PRs)

  1. Test PR on cluster — Deploy PR operator bundle on a live RHDH cluster and verify changes

Combined

  1. Full review — Code review + post to GitHub + cluster testing

Wait for response before proceeding.

Response Workflow
1, "review", "review PR", "code review", a PR URL or number workflows/fetch-github.mdworkflows/review-code.mdworkflows/post-to-github.md
2, "analyze", "analysis only", "review locally" workflows/fetch-github.mdworkflows/review-code.md (stop after findings)
3, "test", "cluster", "deploy", "operator PR", "test on cluster" workflows/fetch-github.mdworkflows/review-operator-pr.md
4, "full", "full review", "both" workflows/fetch-github.mdworkflows/review-code.mdworkflows/post-to-github.mdworkflows/review-operator-pr.md

Routing rules

  1. PR URL or number with no other context: default to route 1 (code review + post).
  2. rhdh-operator PR detected (repo is redhat-developer/rhdh-operator): suggest route 4 (full review) but let the user choose.
  3. "review" without "post" or "cluster": route 1.
  4. All routes start with fetch. The fetch workflow produces a context artifact consumed by all downstream workflows.

Forge detection

Currently GitHub only. Detect from URL pattern or gh CLI availability.

When GitLab support is added: fetch-gitlab.md and post-to-gitlab.md will slot into the same pipeline. The analyze workflow (review-code.md) is forge-agnostic and needs no changes.

Context artifact (fetch → analyze / cluster test)

Produced by the fetch workflow, consumed by all downstream workflows:

context artifact
├── forge: "github"
├── repo: "owner/repo"
├── pr_number: 123
├── head_sha: "abc123..."
├── base_ref, head_ref, title, body, author, state, url
├── labels: [...]
├── files: [{path, additions, deletions}, ...]
├── total_additions, total_deletions
├── diff: "full unified diff"
├── linked_issues: [{number, title, body, labels, state}, ...]
├── jira_keys: ["RHIDP-1234", ...]
├── existing_comments: [{user, path, line, body, created_at}, ...]
├── existing_reviews: [{user, state, body}, ...]
└── ci_status: "pass" | "fail" | "pending" | "unknown"

Findings artifact (analyze → post)

Produced by the analysis workflow, consumed by the posting workflow:

findings artifact
├── pr: {repo, number, head_sha}
├── summary: "top-level review text"
├── event: "COMMENT" | "APPROVE" | "REQUEST_CHANGES"
└── findings[]
    ├── path, line, start_line
    ├── type: "suggestion" | "question" | "observation"
    └── body: "comment text"
Reference Purpose Load when... Path
review-perspectives Review perspective examples and signal hints Running review-code.md references/review-perspectives.md
operator-pr-images CI image extraction and validation Running review-operator-pr.md references/operator-pr-images.md
github-reference gh CLI patterns, PR queries Running any GitHub workflow ../rhdh/references/github-reference.md (if available)
rhdh-repos RHDH ecosystem repository map Cluster testing ../rhdh/references/rhdh-repos.md (if available)
Skill Purpose Path
rhdh Orchestrator, environment status, activity tracking ../rhdh/SKILL.md

Code review

  • PR context fetched (metadata, diff, linked issues, existing comments)
  • Review perspectives chosen based on PR content
  • Findings verified against actual code at HEAD
  • False positives dropped with reasoning shown
  • Review draft presented to user with event type choice
  • Review posted to forge (if posting route selected)

Cluster testing

See workflows/review-operator-pr.md <success_criteria> for the full checklist.

Full review

All code review criteria + all cluster testing criteria.

Install via CLI
npx skills add https://github.com/redhat-developer/rhdh-skill --skill rhdh-pr-review
Repository Details
star Stars 12
call_split Forks 20
navigation Branch main
article Path SKILL.md
More from Creator
redhat-developer
redhat-developer Explore all skills →