rhdh-plugin-authoring
Writes Backstage plugin source for Red Hat Developer Hub in rhdh-plugins or community-plugins: scaffold a backend dynamic plugin with createBackendPlugin or…
Skill by redhat-developer
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/redhat-developer-rhdh-plugin-authoring
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, backend, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/rhdh-plugin-authoring
What's inside
- Skill name
rhdh-plugin-authoring- Description
- Writes Backstage plugin source for Red Hat Developer Hub in rhdh-plugins or community-plugins: scaffold a backend dynamic plugin with createBackendPlugin or createBackendModule from @backstage/backend-plugin-api, scaffold a frontend dynamic plugin, and implement features against Backstage UI (@backstage/ui), MUI, Scalprum bundles, fetchApi, i18n, and the Backstage test utilities. Use for "scaffold a backend dynamic plugin", "create a frontend dynamic plugin", "implement this plugin feature", entity cards, scaffolder actions, catalog processors, backend extension points, renderInTestApp and TestApiProvider tests, dev app setup, and the local build gates yarn tsc:full and yarn build:api-reports:only.
- License
- Apache-2.0
- Compatibility
- Node.js 22+, Yarn, and Python 3 for the bundled scaffold and context-detection scripts.
- Instructions
- 91 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (16)
- SKILL.md
- openai.yaml · agents/
- dynamic-plugins.yaml · examples/
- backend.md · references/
- backstage-skills.md · references/
- bui.md · references/
- dev-app.md · references/
- development-patterns.md · references/
- frontend-specs.md · references/
- frontend.md · references/
- nfs.md · references/
- plugin-types.md · references/
- rhdh.md · references/
- testing.md · references/
- detect-rhdh-context.py · scripts/
- scaffold.py · scripts/
SKILL.md (first lines)
# RHDH Plugin Authoring Own plugin source code: creating a new Backstage dynamic plugin for RHDH and implementing features inside an existing one. Backend and frontend are branches of the same job — the same conventions, the same build gates, the same repo — so choose the branch from the request rather than asking for a skill. ## Start here 1. Read the target repository's `AGENTS.md` or `CLAUDE.md` and any linked specification or issue. Repository rules beat anything written here. 2. Run `python scripts/detect-rhdh-context.py --path <plugin-or-workspace>` in an existing checkout. Record role, frontend system, plugin ID, dynamic status, MUI version, and package manager. 3. Establish the target RHDH and Backstage versions. Prefer an explicit user or repository value; otherwise invoke `/rhdh-context` for repository, tool, and version facts. If it is unavailable, ask the user instead of guessing. 4. Inspect branch and status before modifying files, and protect uncommitted work. For a new plugin or a change to a public API where materially different designs are valid and the request does not settle the choice, invoke `/grilling` as a design gate, use the constraints it produces, and show the design before implementing. If `/grilling` is not installed, say so, name `/setup-rhdh-skills install` as the human's next step, and pause that branch. ## Route by outcome | Outcome | Load and follow | |---|---| | Scaffold a backend dynamic plugin | `references/backend.md`; run `scripts/scaffold.py` | | Scaffold a frontend dynamic plugin | `references/frontend.md`; run `scripts/scaffold.py` | | Decide what kind of extension to build | `references/plugin-types.md` | | Implement or review plugin code | `references/development-patterns.md`, then only the relevant reference below | | Style with Backstage UI or MUI | `references/bui.md` | | Write NFS code in a new plugin | `references/nfs.md` | | Apply RHDH-specific patterns | `references/rhdh.md` | | Run or extend the plugin dev app | `references/dev-app.md` | | Write tests for plugin code | `references/testing.md` | | Write or read a frontend feature spec | `references/frontend-specs.md` | Infer the branch from the request. Ask only when the missing choice changes the implementation, such as backend versus frontend. ## Boundaries - This skill writes plugin source. It does not export artifacts, generate deployment configuration, or publish anything. - `/rhdh-plugin-export` owns exporting and packaging a plugin for RHDH. - `/rhdh-plugin-wiring` owns generating `dynamic-plugins.yaml` configuration and mount points for a finished frontend plugin. Reach for it by name rather than writing wiring configuration here. - `/rhdh-plugin-nfs-migration` owns converting an existing legacy frontend plugin to the New Frontend System. This skill writes NFS code in a plugin that is already on it. - `/rhdh-backstage-upgrade` owns moving `@backstage/*` dependency versions. - `/rhdh-test-placement` advises which repository and layer a permanent test belongs in, before you write it here. - `/rhdh-pr-create` owns changesets, staging, signed-off commits, and pull requests. Leave changed files unstaged and list them when you finish. Invoke a named skill and describe the handoff in the conversation. Never open another skill's files. ## Invariants - Backend code uses the new backend system only — `createBackendPlugin` or `createBackendModule` from `@backstage/backend-plugin-api`. Never the legacy backend system. - A default export from `src/index.ts` is required. Its absence is the most common cause of a dynamic plugin that will not load in RHDH. - The Scalprum name must match the key used in `dynamic-plugins.yaml` wiring. - Match the neighbouring implementation: check two or three sibling workspaces before inventing a configuration, fixture path, or utility pattern. - Build incrementally. Write one component or hook, type check, and verify a visual change in a running app before writing the next. - Mirror a current neighbouring test rather than recalling a Backstage test API from memory; that surface moves between releases. - Run the workspace build gates in order and stop at the first failure: `yarn prettier:fix`, `yarn tsc:full`, `yarn build:all`, `yarn test --watchAll=false`, `yarn build:api-reports:only`. - Do not stage, commit, push, or open a pull request here. ## Completion Report the branch taken, the files created or changed and left unstaged, the build gates run and their results, any public API surface added, the remaining risks, and the named skill to invoke next for wiring, export, testing, or publication.
From redhat-developer/rhdh-skills, Apache-2.0.
More from redhat-developer/rhdh-skills
- 0.641score
rhdh-plugin-bug-fix
redhat-developer
Reproduces, diagnoses, and fixes a defect in a Backstage plugin inside the rhdh-plugins or community-plugins repositories: resolve the report from a RHIDP…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-local
redhat-developer
Operates a local Red Hat Developer Hub environment with the rhdh-local-setup customization system: enable or disable dynamic plugins, apply configuration…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-pr-mr
redhat-developer
Pushes a topic branch and opens a GitHub pull request or GitLab CEE merge request for CI and agent automation, then links Jira via /rhdh-jira-link only when…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-overlay
redhat-developer
Manages the rhdh-plugin-export-overlays repository and Extensions Catalog: onboard plugins, update upstream versions, repair export or publish failures…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-backport
redhat-developer
Automate the RHDH plugin backport process from PR cherry-pick to changelog.
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-yarn-bump
redhat-developer
Bumps Yarn Berry across the RHDH repos — rhdh-plugins, rhdh midstream, rhdh-plugin-export-overlays, rhdh-cli, and GitLab CEE rhidp/rhdh and…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-jira-create
redhat-developer
Opens new work in RHDH Jira and decides what kind of work it is — Feature or Feature Request in RHDHPLAN, Epic, Story, Task, Spike or Vulnerability in RHIDP…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-jira-link
redhat-developer
Ties a GitHub pull request or GitLab merge request to an RHDH Jira issue in RHIDP, RHDHPLAN, RHDHBUGS, or RHDHSUPP: attach the Jira Web link titled `repo #N…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-konflux-tasks
redhat-developer
Bumps Konflux Tekton task bundle digests in `.tekton` and `.tekton-templates`, applies each task's MIGRATION.md, regenerates PipelineRuns, and checks pins…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-base-images
redhat-developer
Analyzes and updates the `FROM` base images, Node headers, Go toolchain, and `rpms.lock.yaml` files in rhdh, rhdh-operator, and rhdh-must-gather; pin…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-plugin-catalog-index-status-and-update-flow
redhat-developer
Reports Red Hat Developer Hub plugin catalog index status for a release branch or x.y.z and updates the downstream quay.io/rhdh/plugin-catalog-index after you…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-plugin-nfs-migration
redhat-developer
Converts a legacy Backstage frontend plugin used by Red Hat Developer Hub to the New Frontend System (NFS): replace createPlugin and createRoutableExtension…
SkillAFreshness: A★ 18Claude Code +9
Signals
- Stars
- 18
- Forks
- 40
- Open issues
- 1
- Last commit (this folder)
- Sep 23, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/redhat-developer/rhdh-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from redhat-developer
- 0.641score
rhdh-base-images
redhat-developer
Analyzes and updates the `FROM` base images, Node headers, Go toolchain, and `rpms.lock.yaml` files in rhdh, rhdh-operator, and rhdh-must-gather; pin…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-yarn-bump
redhat-developer
Bumps Yarn Berry across the RHDH repos — rhdh-plugins, rhdh midstream, rhdh-plugin-export-overlays, rhdh-cli, and GitLab CEE rhidp/rhdh and…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-pr-mr
redhat-developer
Pushes a topic branch and opens a GitHub pull request or GitLab CEE merge request for CI and agent automation, then links Jira via /rhdh-jira-link only when…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-konflux-tasks
redhat-developer
Bumps Konflux Tekton task bundle digests in `.tekton` and `.tekton-templates`, applies each task's MIGRATION.md, regenerates PipelineRuns, and checks pins…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-plugin-catalog-index-status-and-update-flow
redhat-developer
Reports Red Hat Developer Hub plugin catalog index status for a release branch or x.y.z and updates the downstream quay.io/rhdh/plugin-catalog-index after you…
SkillAFreshness: A★ 18Claude Code +9 - 0.641score
rhdh-jira-create
redhat-developer
Opens new work in RHDH Jira and decides what kind of work it is — Feature or Feature Request in RHDHPLAN, Epic, Story, Task, Spike or Vulnerability in RHIDP…
SkillAFreshness: A★ 18Claude Code +9
Cite this page
rhdh-plugin-authoring skill. Agent Mart. https://agentmart.dev/skills/redhat-developer-rhdh-plugin-authoring (last updated 2026-10-24)