RHDH Plugin Bug Fix 的目标是完整负责从缺陷报告到已验证修复的全过程。其核心原则是:先复现再诊断,先诊断再编辑,先验证再报告;用于复现的测试属于诊断证据,不会随修复一起交付。
用途
该技能用于在 rhdh-plugins 或 community-plugins 仓库中复现、诊断并修复 Backstage 插件的缺陷。它从 workflows/fix-bug.md 开始,按顺序解析问题引用、对报告进行智能体就绪度分诊、发现工作区、选择 full-e2e 或 no-e2e 分支、复现、修复、验证并清理。
主要能力
- 按结果路由:复现、诊断和修复插件缺陷时加载 workflows/fix-bug.md;将报告解析到插件工作区时使用 references/workspace-map.md;编写临时 Playwright 复现时使用 references/e2e-patterns.md;捕获并转换修复前后证据时使用 references/video-recording.md。
- 边界协作:/rhdh-forge 负责读取 GitHub,通过名称调用并传入原始 issue 或 pull request 引用,消费其返回的结构化问题上下文(key、summary、URL、repository、number、state、labels、description 以及候选工作区及解析策略),并在工作前对照检出确认该工作区;策略报告未解析时询问用户。不在此处解析 URL 或运行 gh issue view。
- /rhdh-jira-api 负责读取 Jira key 并返回相同的问题详情。
- /grilling 是设计门禁,当多个根因仍可能成立,或不同修复方案带来不同兼容性成本时使用;若未安装,应说明并指出 /setup-rhdh-skills install 作为下一步,然后暂停该分支。
- /rhdh-test-placement 建议永久回归测试应放置的位置;此处编写的复现测试是一次性的,在交接变更前删除。
- /rhdh-plugin-authoring 负责功能工作和公共 API 设计。
- /rhdh-pr-create 负责暂存、changesets、提交、推送、拉取请求、录制上传和问题更新。 调用命名技能并在对话中描述交接,绝不打开其他技能的文件。
使用方式与不变量
- 在编辑产品代码前必须复现失败;修复后无法重建“修复前”录制。
- 临时文件 _repro-<issue>.test.ts 是证据而非交付物,交接变更前必须删除该确切文件。
- 发现工作区真实的 Playwright 配置、辅助工具和邻近测试;references/workspace-map.md 只定位可能的工作区,不描述当前测试基础设施。
- 关闭 Playwright 上下文以使每个视频最终化,并保留修复前后录制直到发布流程消费它们。
- 在实现前用观察到的证据陈述根因,然后按照仓库约定做最小修复。
- 如果测试仍然失败,返回诊断;绝不削弱断言使其通过。
- 向 issue 添加标签或分诊评论属于外部写入,需调用命名技能 mutation-gate 并遵循它;操作目标是确切的仓库和 issue 编号。修复缺陷的请求不批准任何 issue 写入。
- 不在此处暂存、提交、推送或打开拉取请求。
完成标准
报告已解决的问题和工作区、复现过程及其证明内容、根因及其证据、已更改但未暂存的文件、修复前后录制路径、验证命令及其结果、审查者应运行的测试计划,以及下一步应调用的发布相关命名技能。
适用场景与限制
适用于 rhdh-plugins 或 community-plugins 仓库中 Backstage 插件的缺陷修复流程。限制包括:不负责功能开发与公共 API 设计,不负责提交、推送和拉取请求,不负责永久回归测试的放置决策,不直接读取 GitHub 或 Jira,不解析 URL 或运行 gh issue view,不打开其他技能的文件,不执行外部写入除非通过 mutation-gate。