# rhdh-plugin
> Manage RHDH plugins - onboard, update, maintain, and triage plugins in the Extensions Catalog. Supports both Plugin Owners and Core Team workflows.
- Author: Marcel Hild
- Repository: durandom/rhdh-plugin-skill
- Version: 20260129143954
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/durandom/rhdh-plugin-skill
- Web: https://mule.run/skillshub/@@durandom/rhdh-plugin-skill~rhdh-plugin:20260129143954
---
---
name: rhdh-plugin
description: Manage RHDH plugins - onboard, update, maintain, and triage plugins in the Extensions Catalog. Supports both Plugin Owners and Core Team workflows.
---
**Set the CLI variable for this session:**
```bash
RHDH_PLUGIN=scripts/rhdh-plugin
```
**Get oriented (run first):**
```bash
$RHDH_PLUGIN
```
This shows environment status, discovered repos, and available tools.
All plugin exports go through [rhdh-plugin-export-overlays](https://github.com/redhat-developer/rhdh-plugin-export-overlays).
Each plugin lives in a workspace folder with `source.json` + `plugins-list.yaml`.
CI handles the actual export - we define the configuration.
Two Backstage version fields serve different purposes:
- `source.json` → `repo-backstage-version` = upstream's **actual** version
- `backstage.json` → `version` = our **override** for RHDH compatibility
Never confuse these. CI validates the source.json value matches upstream.
Always test with PR artifacts before merge using rhdh-local.
OCI format: `oci:///:pr___!`
Success = plugin loads and attempts API calls (auth errors are expected without real credentials).
When stuck, find a similar workspace and copy its patterns.
AWS plugins → copy from `aws-ecs/` or `aws-codebuild/`
Community plugins → copy from `backstage/`
Check existing PRs for structure examples.
**Run on invocation to understand current state:**
```bash
$RHDH_PLUGIN
```
This checks:
- Overlay repo location and status
- rhdh-local availability
- gh CLI authentication
- Container runtime (podman/docker)
**If repos not found:** Run `$RHDH_PLUGIN config init` to auto-detect or configure paths.
## Step 1: Run CLI
```bash
$RHDH_PLUGIN
```
**If `needs_setup: true`:** Stop and follow the setup instructions in the output. Resume after setup completes.
---
## Step 2: Identify Role
What would you like to do?
### Plugin Owner Tasks
*For contributors managing their own plugin(s)*
1. **Onboard a new plugin** — Add upstream plugin to Extensions Catalog
2. **Update plugin version** — Bump to newer upstream commit/tag
3. **Check plugin status** — Verify health and compatibility
4. **Fix build failure** — Debug CI/publish issues
### Core Team Tasks
*For COPE/Plugins team managing the overlay repository*
5. **Triage overlay PRs** — Prioritize open PRs by criticality
6. **Analyze specific PR** — Check assignment, compatibility, merge readiness
7. **Trigger publish** — Add /publish comment to PR(s)
**Wait for response before proceeding.**
### Doctor Route (Priority)
| Condition | Workflow |
|-----------|----------|
| `needs_setup: true` in CLI output | `workflows/doctor.md` |
**Always check this first.** Do not proceed to task workflows if setup is needed.
### Plugin Owner Routes
| Response | Workflow |
|----------|----------|
| 1, "onboard", "add", "new plugin", "import" | `workflows/onboard-plugin.md` |
| 2, "update", "bump", "upgrade", "version" | `workflows/update-plugin.md` |
| 3, "status", "check", "health" | Run inline status checks |
| 4, "fix", "debug", "failure", "error" | `workflows/fix-build.md` |
### Core Team Routes
| Response | Workflow |
|----------|----------|
| 5, "triage", "prioritize", "backlog" | `workflows/triage-prs.md` |
| 6, "analyze", "check PR", "PR #" | `workflows/analyze-pr.md` |
| 7, "publish", "trigger" | Run inline publish trigger |
**After reading the workflow, follow it exactly.**
For status checks, use the CLI:
```bash
$RHDH_PLUGIN workspace list # List all workspaces
$RHDH_PLUGIN workspace status # Check specific workspace
```
Or run direct commands:
```bash
# Recent CI runs
gh run list --repo redhat-developer/rhdh-plugin-export-overlays --limit 5
# Open PRs for workspace
gh pr list --repo redhat-developer/rhdh-plugin-export-overlays --search ""
```
For triggering publish on one or more PRs:
```bash
REPO="redhat-developer/rhdh-plugin-export-overlays"
# Single PR
gh pr comment --repo $REPO --body "/publish"
# Check if publish already ran
gh pr view --repo $REPO --json statusCheckRollup \
--jq '.statusCheckRollup[] | select(.name | contains("publish"))'
```
**Guards before triggering:**
1. PR is open (not closed/merged)
2. No `do-not-merge` label
3. Publish check not already successful
See `references/github-queries.md` for full patterns.
**Invocation:** Set the variable for this session:
```bash
RHDH_PLUGIN="${CLAUDE_PLUGIN_ROOT}/scripts/rhdh-plugin"
```
**Environment status (no args):**
```bash
$RHDH_PLUGIN
```
Shows overlay repo, rhdh-local, tools status, and next steps.
**Full environment check:**
```bash
$RHDH_PLUGIN doctor
```
**Configuration:**
```bash
$RHDH_PLUGIN config init # Create config with auto-detection
$RHDH_PLUGIN config show # Show resolved paths
$RHDH_PLUGIN config set overlay /path # Set repo location
$RHDH_PLUGIN config set local /path # Set rhdh-local location
```
**Workspace operations:**
```bash
$RHDH_PLUGIN workspace list # List all plugin workspaces
$RHDH_PLUGIN workspace status # Show workspace details
```
**Overlay repo patterns:** references/overlay-repo.md
**CI feedback interpretation:** references/ci-feedback.md
**Metadata format:** references/metadata-format.md
**GitHub CLI queries:** references/github-queries.md
**GitHub tips & gotchas:** references/github-tips.md
**PR label priorities:** references/label-priority.md
**JIRA CLI for plugin tracking:** references/jira-reference.md
### Plugin Owner Workflows
| Workflow | Purpose |
|----------|---------|
| onboard-plugin.md | Full 6-phase process to add new plugin |
| update-plugin.md | Bump to newer upstream version |
| fix-build.md | Debug and resolve CI failures |
### Core Team Workflows
| Workflow | Purpose |
|----------|---------|
| triage-prs.md | Prioritize open PRs by criticality |
| analyze-pr.md | Deep-dive on single PR (assignment, compat, readiness) |
| Template | Purpose |
|----------|---------|
| workspace-files.md | source.json, plugins-list.yaml, backstage.json |
### Plugin Owner Success
- Plugin workspace created with correct structure
- CODEOWNERS entry added for the workspace
- CI passes (`/publish` succeeds)
- Plugin tested locally with rhdh-local
- PR merged to overlay repo
### Core Team Success
- PR backlog prioritized with actionable next steps
- Stale PRs identified with suggested owners
- Publish triggered on PRs needing it
- Compatibility issues flagged before merge