rhdh-plugin-nfs-migration
Converts a legacy Backstage frontend plugin used by Red Hat Developer Hub to the New Frontend System (NFS): replace createPlugin and createRoutableExtension…
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-nfs-migration
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: frontend, 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 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/rhdh-plugin-nfs-migration
What's inside
- Skill name
rhdh-plugin-nfs-migration- Description
- Converts a legacy Backstage frontend plugin used by Red Hat Developer Hub to the New Frontend System (NFS): replace createPlugin and createRoutableExtension with createFrontendPlugin, PageBlueprint, EntityContentBlueprint, AppDrawerContentBlueprint and createFrontendModule; map RHDH app-config.dynamic.yaml mount points onto extensions; add the ./alpha export to package.json without breaking legacy consumers; and verify the migrated dynamic plugin in a real RHDH instance. Use for "migrate my plugin to NFS", Blueprint migration, createFrontendPlugin, compatWrapper, alpha versus colocated exports, translations moved into a createFrontendModule with pluginId app, RHDH operator app.extensions and app.routes.bindings, and ENABLE_STANDARD_MODULE_FEDERATION testing.
- License
- Apache-2.0
- Compatibility
- Node.js 22+ and Yarn, with a checkout of the plugin's workspace; an RHDH instance (local or cluster) for the migration test route.
- Instructions
- 91 lines in SKILL.md · view on GitHub
Files (19)
- SKILL.md
- openai.yaml · agents/
- app-setup.md · references/
- gotchas.md · references/
- migrate-app-level.md · references/
- migrate-entity-content.md · references/
- migrate-page.md · references/
- migrate-rhdh-extensions.md · references/
- migrate-translations.md · references/
- mount-point-mapping.md · references/
- operator-config.md · references/
- overview.md · references/
- package-json.md · references/
- reference-prs.md · references/
- support.md · references/
- testing-rhdh.md · references/
- verification.md · references/
- migrate-nfs.md · workflows/
- test-nfs-plugin.md · workflows/
SKILL.md (first lines)
# RHDH Plugin NFS Migration Own the shape of a frontend plugin's extensions as it moves from the legacy frontend system to NFS. Discover what the plugin exports before changing anything, migrate one extension type at a time, and keep legacy consumers compiling until the user explicitly approves a breaking change. ## Start here 1. Read the plugin's `package.json`, `src/plugin.ts` or `src/plugin.tsx`, route refs, API factories, exported components, and `app-config.dynamic.yaml`. 2. Read the workspace's own `AGENTS.md` or `CLAUDE.md`; repository rules beat anything written here. 3. List every discovered extension to the user before editing. 4. Inspect branch and status before modifying files, and protect uncommitted work. ## Route by outcome | Outcome | Load and follow | |---|---| | Migrate a plugin to NFS | `workflows/migrate-nfs.md` | | Test a migrated plugin in RHDH | `workflows/test-nfs-plugin.md` | | Explain NFS before migrating | `references/overview.md` | | Migrate pages or API factories | `references/migrate-page.md` | | Migrate entity tabs or cards | `references/migrate-entity-content.md` | | Migrate translations | `references/migrate-translations.md` | | Migrate RHDH drawers, header items, homepage widgets | `references/migrate-rhdh-extensions.md` | | Migrate app-level wrappers or root elements | `references/migrate-app-level.md` | | Translate a legacy dynamic mount point into an extension | `references/mount-point-mapping.md` | | Update package exports | `references/package-json.md` | | Set up or update the NFS dev app | `references/app-setup.md` | | Verify the migration | `references/verification.md` | | Reach RHDH operator `app.extensions` or `app.routes.bindings` | `references/operator-config.md` | | Troubleshoot a failed migration | `references/gotchas.md`, then `references/support.md` | | Find a real migrated plugin to copy | `references/reference-prs.md` | ## Boundaries - This skill owns **extension shape**: which Blueprint replaces which legacy extension, where it attaches, and what the package exports. It does not choose `@backstage/*` version numbers. - `/rhdh-backstage-upgrade` owns **version numbers**: which Backstage release to move to and how to get the dependency set there. When the plugin's `@backstage/*` dependencies are too old for the Blueprints this migration needs, invoke it by name first, then return here. - `/backstage-api-changes` owns the NFS API deltas between the early alpha and the current GA surface — removed `NavItemBlueprint`, the `configSchema` replacement for `config.schema`, renamed blueprint params. Invoke it by name when migrating a plugin that was already migrated against an older NFS API, or when a Blueprint param produces a TypeScript error. - `/rhdh-plugin-export` owns exporting and packaging the migrated plugin. - `/rhdh-plugin-wiring` owns generating `dynamic-plugins.yaml` configuration. - `/rhdh-local` owns running a local RHDH instance and applying plugin configuration to it. - `/rhdh-pr-create` owns staging, 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 - NFS is not GA. Default to the alpha approach: NFS at `./alpha`, legacy untouched at the root export. Use the colocated approach only when the user wants both APIs from one import path. - Keep component-level imports (`useApi`, `useRouteRef`) on `@backstage/core-plugin-api` so the same components serve both export paths. Reach for `compatWrapper()` only when a component needs a legacy context provider that NFS does not supply. - Core blueprints come from `@backstage/frontend-plugin-api`. RHDH-only blueprints such as `AppDrawerContentBlueprint` and `GlobalHeaderMenuItemBlueprint` come from `@red-hat-developer-hub/*`. Do not mix the two namespaces. - Put entity content and cards directly in the plugin's `extensions` array. Use `createFrontendModule` only to target a different plugin — translations at `pluginId: 'app'`, homepage widgets at `pluginId: 'home'`. - Legacy exports stay available. A breaking change to a legacy consumer needs explicit user approval. - Run `yarn tsc` from the workspace root, not the plugin directory, so consumer import breakage surfaces. - Do not stage, commit, push, or open a pull request here. ## Completion Report the extensions discovered and their NFS equivalents, the export approach chosen, the files changed and left unstaged, the verification commands run and their results, any legacy consumer risk, and the named skill to invoke next for export, wiring, local 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-forge
redhat-developer
Reads GitHub and GitLab and constructs unexecuted forge payloads for the other RHDH skills: parse an issue, pull request, or merge request reference, fetch…
SkillAFreshness: A★ 18Claude Code +9
Signals
- Stars
- 18
- Forks
- 40
- Open issues
- 1
- Last commit (this folder)
- Sep 25, 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-nfs-migration skill. Agent Mart. https://agentmart.dev/skills/redhat-developer-rhdh-plugin-nfs-migration (last updated 2026-10-24)