RHDH Plugin Export
Own the step between working source and a deployable artifact. The plugin
builds, exports to dist-dynamic/, gets packaged in one of three formats, and
optionally lands in a registry with an integrity value the deployment can pin.
Scope against /rhdh-overlay
This skill exports a plugin you are developing, from its own workspace, on
your machine. /rhdh-overlay repairs the overlay repository's CI export —
source.json, plugins-list.yaml, and the export jobs that
rhdh-plugin-export-overlays runs for the Extensions Catalog. If the failing
export is a GitHub Actions run in that repository, it is not this skill.
Start here
- Confirm the plugin builds:
yarn build and yarn tsc from the plugin
directory.
- Read
package.json for the plugin role, name, and version, and check that a
backend plugin has a default export from src/index.ts.
- Decide the target format before running anything: OCI image, tgz archive, or
npm package.
Route by outcome
| Outcome |
Load and follow |
| Export and package in one pass |
references/export.md; run scripts/export-plugin.py |
| Choose shared, embedded, or bundled dependencies |
references/export-options.md |
| Compare or produce a specific artifact format |
references/packaging-formats.md |
| Produce or verify an integrity value |
references/integrity-hashes.md |
| See a complete deployment configuration |
examples/dynamic-plugins.yaml |
The bundled script covers the common path:
python scripts/export-plugin.py --plugin-dir plugins/my-plugin \
--tag quay.io/ns/my-plugin:v0.1.0 --push --clean
Run it with --help for the full option set. Follow references/export.md
step by step when the script's defaults do not fit.
Boundaries
- This skill produces artifacts. It does not write plugin source, generate
deployment configuration, or run RHDH.
/rhdh-plugin-authoring owns plugin source, including a missing default
export or a broken build that surfaces here.
/rhdh-plugin-wiring owns the dynamic-plugins.yaml configuration that
consumes the artifact this skill produces.
/rhdh-local owns installing the artifact into a running local RHDH.
/rhdh-overlay owns the overlay repository and the Extensions Catalog.
Invoke a named skill and describe the handoff in the conversation. Never open
another skill's files.
Invariants
- Never invent a registry reference. Derive the package name, tag, and digest
from the export output and the registry response.
- A push to a registry is an external write. Invoke the named skill
mutation-gate and follow it; the operation's target is the exact
registry, repository, and tag.
- Prefer a digest over a tag when a deployment needs a stable artifact.
- Report the produced paths and references verbatim; a deployment that pins a
guessed value fails at install time, far from here.
Completion
Report the export command run, the artifact format and its exact reference or
path, the shared and embedded dependency decisions, any integrity value
produced, whether a push happened and to where, and the named skill to invoke
next for wiring or local verification.
1---2name: rhdh-plugin-export3description: Turns a Backstage plugin you are developing into a deployable Red Hat Developer Hub dynamic plugin artifact: run @red-hat-developer-hub/cli plugin export to produce dist-dynamic and dist-scalprum, choose shared, embedded and bundled dependencies, package as an OCI image, tgz archive or npm package, push to quay.io or another registry, and generate the SHA-512 or sha256 digest integrity values a deployment needs. Use for "export my plugin", "package the plugin as OCI", "push the plugin to a registry", --shared-package, --embed-package, plugin-manifest.json, or integrity hashes. For a failing export in the rhdh-plugin-export-overlays repository, use /rhdh-overlay instead.4---56# RHDH Plugin Export78Own the step between working source and a deployable artifact. The plugin9builds, exports to `dist-dynamic/`, gets packaged in one of three formats, and10optionally lands in a registry with an integrity value the deployment can pin.1112## Scope against /rhdh-overlay1314This skill exports **a plugin you are developing**, from its own workspace, on15your machine. `/rhdh-overlay` repairs **the overlay repository's CI export** —16`source.json`, `plugins-list.yaml`, and the export jobs that17`rhdh-plugin-export-overlays` runs for the Extensions Catalog. If the failing18export is a GitHub Actions run in that repository, it is not this skill.1920## Start here21221. Confirm the plugin builds: `yarn build` and `yarn tsc` from the plugin23 directory.242. Read `package.json` for the plugin role, name, and version, and check that a25 backend plugin has a default export from `src/index.ts`.263. Decide the target format before running anything: OCI image, tgz archive, or27 npm package.2829## Route by outcome3031| Outcome | Load and follow |32|---|---|33| Export and package in one pass | `references/export.md`; run `scripts/export-plugin.py` |34| Choose shared, embedded, or bundled dependencies | `references/export-options.md` |35| Compare or produce a specific artifact format | `references/packaging-formats.md` |36| Produce or verify an integrity value | `references/integrity-hashes.md` |37| See a complete deployment configuration | `examples/dynamic-plugins.yaml` |3839The bundled script covers the common path:4041```bash42python scripts/export-plugin.py --plugin-dir plugins/my-plugin \43 --tag quay.io/ns/my-plugin:v0.1.0 --push --clean44```4546Run it with `--help` for the full option set. Follow `references/export.md`47step by step when the script's defaults do not fit.4849## Boundaries5051- This skill produces artifacts. It does not write plugin source, generate52 deployment configuration, or run RHDH.53- `/rhdh-plugin-authoring` owns plugin source, including a missing default54 export or a broken build that surfaces here.55- `/rhdh-plugin-wiring` owns the `dynamic-plugins.yaml` configuration that56 consumes the artifact this skill produces.57- `/rhdh-local` owns installing the artifact into a running local RHDH.58- `/rhdh-overlay` owns the overlay repository and the Extensions Catalog.5960Invoke a named skill and describe the handoff in the conversation. Never open61another skill's files.6263## Invariants6465- Never invent a registry reference. Derive the package name, tag, and digest66 from the export output and the registry response.67- A push to a registry is an external write. Invoke the named skill68 `mutation-gate` and follow it; the operation's target is the exact69 registry, repository, and tag.70- Prefer a digest over a tag when a deployment needs a stable artifact.71- Report the produced paths and references verbatim; a deployment that pins a72 guessed value fails at install time, far from here.7374## Completion7576Report the export command run, the artifact format and its exact reference or77path, the shared and embedded dependency decisions, any integrity value78produced, whether a push happened and to where, and the named skill to invoke79next for wiring or local verification.