关于 rhdh-plugin-authoring
rhdh-plugin-authoring 是用于为 RHDH 创建 Backstage 动态插件及在现有插件中实现功能的技能。它按扩展类型和前后端目标引导工作,并提供结合仓库情况的开发参考与构建检查。
主要功能
- 01搭建前端和后端插件
- 02按扩展类型选择路径
- 03实现与测试指导
- 04RHDH 专属开发模式
- 05按顺序执行工作区构建检查
适用场景
- 01创建新的 RHDH 动态插件
- 02为现有插件添加功能
- 03审查插件代码并运行构建检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ redhat-developer/ rhdh-skills --skill rhdh-plugin-authoring安装后在 Claude Code 中输入/rhdh-plugin-authoring确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/dynamic-plugins.yamlreferences/backend.mdbackstage-skills.mdbui.mddev-app.mddevelopment-patterns.mdfrontend-specs.mdfrontend.mdnfs.mdplugin-types.mdrhdh.mdtesting.mdscripts/detect-rhdh-context.pyscaffold.py详细介绍
RHDH 插件开发
负责插件源代码:为 RHDH 创建新的 Backstage 动态插件,以及在现有插件中实现功能。后端和前端是同一项工作的不同分支——遵循相同的约定、相同的构建检查、使用相同的仓库,因此应根据请求选择分支,而不是询问用户。
从这里开始
- 阅读目标仓库的
AGENTS.md或CLAUDE.md,以及其中链接的任何规范或问题。仓库规则优先于本文中的任何内容。 - 在现有检出中运行
python scripts/detect-rhdh-context.py --path <plugin-or-workspace>。记录角色、前端系统、插件 ID、动态状态、MUI 版本和包管理器。 - 确定目标 RHDH 和 Backstage 版本。优先采用用户或仓库明确提供的值;否则调用
/rhdh-context获取仓库、工具和版本信息。如果该技能不可用,请询问用户,不要猜测。 - 修改文件前检查分支和状态,并保护未提交的工作。
对于新插件,或对公共 API 的更改,如果存在实质不同的有效设计方案,且请求未明确选择方案,则调用 /grilling 作为设计关卡,采用其产出的约束,并在实现前展示设计。如果未安装 /grilling,请说明这一点,指出 /setup-rhdh-skills install 是用户接下来需要执行的步骤,并暂停该分支。
按目标结果选择路径
| 目标结果 | 加载并遵循 |
|---|---|
| 搭建后端动态插件脚手架 | references/backend.md;运行 scripts/scaffold.py |
| 搭建前端动态插件脚手架 | references/frontend.md;运行 scripts/scaffold.py |
| 决定要构建哪种扩展 | references/plugin-types.md |
| 实现或审查插件代码 | references/development-patterns.md,然后仅加载下方相关参考文档 |
| 使用 Backstage UI 或 MUI 设置样式 | references/bui.md |
| 在新插件中编写 NFS 代码 | references/nfs.md |
| 应用 RHDH 专属模式 | references/rhdh.md |
| 运行或扩展插件开发应用 | references/dev-app.md |
| 为插件代码编写测试 | references/testing.md |
| 编写或阅读前端功能规范 | references/frontend-specs.md |
根据请求判断分支。只有在缺失的选择会改变实现时才询问,例如后端还是前端。
职责边界
- 此技能负责编写插件源代码。它不负责导出构件、生成部署配置或发布任何内容。
/rhdh-plugin-export负责为 RHDH 导出和打包插件。/rhdh-plugin-wiring负责为已完成的前端插件生成dynamic-plugins.yaml配置和挂载点。应按名称调用此技能,而不是在这里编写接线配置。/rhdh-plugin-nfs-migration负责将现有旧版前端插件转换为 New Frontend System。此技能负责在已使用该系统的插件中编写 NFS 代码。/rhdh-backstage-upgrade负责升级@backstage/*依赖版本。/rhdh-test-placement在你于此处编写永久测试之前,提供测试应放在哪个仓库和层级的建议。/rhdh-pr-create负责变更集、暂存、签署提交和拉取请求。完成时不要暂存已更改的文件,并列出这些文件。
调用指定的技能,并在对话中说明交接内容。绝不要打开其他技能的文件。
不变量
- 后端代码只能使用新版后端系统——来自
@backstage/backend-plugin-api的createBackendPlugin或createBackendModule。不得使用旧版后端系统。 src/index.ts必须有默认导出。缺少默认导出是动态插件无法在 RHDH 中加载的最常见原因。- Scalprum 名称必须与
dynamic-plugins.yamlwiring 中使用的键一致。 - 参照相邻的实现:在自行设计配置、fixture 路径或实用工具模式之前,先检查两三个同级工作区。
- 增量构建。每次编写一个组件或 hook,进行类型检查,并在运行中的应用中确认视觉变化,然后再编写下一个。
- 参考当前相邻的测试,不要凭记忆使用 Backstage 测试 API;该 API 会随版本迭代而变化。
- 按顺序运行工作区构建检查,并在首次失败时停止:
yarn prettier:fix、yarn tsc:full、yarn build:all、yarn test --watchAll=false、yarn build:api-reports:only。 - 不要在此处暂存、提交、推送或创建拉取请求。
完成
报告所走的分支、已创建或更改且仍未暂存的文件、运行过的构建检查及其结果、新增的公共 API 接口、剩余风险,以及下一步应调用的、用于 wiring、导出、测试或发布的 skill。
评论
支持 Markdown