自动修复 Jira Bug 的端到端流程。根据 Jira 链接获取 bug 详情与附件,分析是否属于本项目前端代码问题,修复代码并提交,合并到 pre 环境,最后更新 Jira 状态为已解决并打上 AI解决 标签。用户提供 Jira bug 链接时使用。
用户提供一个 Jira issue 链接(如 https://jira.meitu.com/browse/ROB-2681),要求自动修复该 bug、部署到 pre 环境并更新 Jira 状态。
git status 检查)merge-dev-to-pre-or-beta skill 可用按顺序执行以下 6 个步骤,每步完成后再进入下一步。
从用户提供的链接中提取 issue key(如 ROB-2681)。
jira_get_issue 获取 issue 详情(expand 设为 editmeta,transitions):CallMcpTool: server=user-Omnibus, toolName=jira_get_issue
arguments: { "issueKey": "<ISSUE_KEY>", "expand": "editmeta,transitions" }
jira_get_attachments 获取附件列表(截图、视频等):CallMcpTool: server=user-Omnibus, toolName=jira_get_attachments
arguments: { "issueKey": "<ISSUE_KEY>" }
根据步骤 1 获取的信息,结合项目代码进行分析:
| 判断结果 | 后续动作 |
|---|---|
| 是本项目前端代码 bug | 继续步骤 3 |
| 非本项目 bug(后端/其他项目/配置/环境问题) | 停止流程,通知用户原因,并建议转给对应负责方 |
| 信息不足无法判断 | 暂停流程,向用户说明需要补充的信息 |
根据 bug 描述中的关键词,快速定位到对应的代码区域:
| 关键词 | 代码位置 | 说明 |
|---|---|---|
| 工作流、流程、flow、SOP | packages/roboneo-sdk/src/pages/RoboneoFlow 及子组件 | 工作流相关页面与逻辑 |
| 画布、canvas、无限画布、拖拽 | packages/roboneo-sdk/src/pages/RoboneoCanvas 及子组件 | 画布相关页面与逻辑 |
| Agent、智能体、对话 | packages/roboneo-sdk/src/pages/RoboneoAgent 及子组件 | Agent 相关页面与逻辑 |
| Agent 分享封面、分享封面页、share cover | packages/roboneo-sdk/src/pages/RoboneoShareCover 及子组件 | Agent 分享封面页 |
| Agent 分享、分享页、share | packages/roboneo-sdk/src/pages/RoboneoShare 及子组件 | Agent 分享页 |
| 工作流分享、流程分享、flow share | packages/roboneo-sdk/src/pages/RoboneoFlowShare 及子组件 | 工作流分享页 |
| 关键词 | npm 包 | 说明 |
|---|---|---|
| 登录、注册、账号、鉴权、token | @meitu/account 相关包 | 账号 SDK |
| 订阅、会员、付费、套餐、权益 | @meitu/subscribe 相关包 | 订阅 SDK |
| 客服、反馈、工单、帮助 | @meitu/feedback 相关包 | 客服 SDK |
| JSBridge、端能力、Native、app 交互 | @meitu/hogger 相关包 | App 交互 SDK |
| 画布引擎、infinite-canvas、缩放、平移 | @meitu/whee-infinite-canvas 相关包 | 画布 SDK |
| 上传、文件上传、图片上传、upload | @meitu/upload 相关包 | 上传 SDK |
定位策略:
node_modules/<包名> 中查看接口定义,再在项目代码中搜索该包的调用处确认是本项目前端代码 bug 后,进行修复:
BUG_CAUSE:bug 产生原因(简明扼要)BUG_SOLUTION:bug 解决方案(简明扼要)BUG_IMPACT:bug 影响范围(如:影响哪些页面/功能/用户群)完成修复后,等待用户确认代码无误(用户 keep 所有改动)后再进入步骤 4。
用户确认全部代码改动后:
git status 和 git diff 查看变更fix(<模块>): <简短描述>
<ISSUE_KEY>: <bug 标题>
- 原因: <BUG_CAUSE>
- 方案: <BUG_SOLUTION>
git add <changed_files>
git commit -m "<commit_message>"
调用 merge-dev-to-pre-or-beta skill,目标分支为 pre。
执行该 skill 的完整流程:
合并成功后,更新 Jira issue:
先从步骤 1 获取的 transitions 中找到「已解决」/「Resolved」对应的 transitionId。
调用 jira_transition_issue:
CallMcpTool: server=user-Omnibus, toolName=jira_transition_issue
arguments: {
"issueKey": "<ISSUE_KEY>",
"transitionId": "<RESOLVED_TRANSITION_ID>",
"fields": { ... }, // 根据 editmeta 填写必填字段
"comment": "AI 自动修复并已部署到 pre 环境。\n原因: <BUG_CAUSE>\n方案: <BUG_SOLUTION>\n影响范围: <BUG_IMPACT>"
}
transition 时的 fields 需要根据步骤 1 获取的 editmeta 来构建,常见必填字段:
如果这些字段是 option 类型,从 allowedValues 中选择最匹配的值。
如果是 string 类型,直接填入文本。
调用 jira_update_issue 为 issue 添加标签 AI解决:
CallMcpTool: server=user-Omnibus, toolName=jira_update_issue
arguments: {
"issueKey": "<ISSUE_KEY>",
"fields": {
"labels": ["AI解决", ...原有labels]
}
}
注意:labels 是数组,需要保留原有标签并追加 AI解决,不要覆盖。
| 中断情况 | 处理方式 |
|---|---|
| bug 不属于本项目 | 停止流程,通知用户并说明原因 |
| 信息不足无法分析 | 暂停流程,向用户说明需要补充的信息 |
| 修复方案不确定 | 向用户说明多种方案,由用户选择后继续 |
| 用户未 keep 代码改动 | 等待用户确认后再提交 commit |
| 合并冲突 | 尝试解决冲突,如无法自动解决则通知用户手动处理 |
| Jira 状态流转失败 | 通知用户手动操作,提供需要填写的信息 |
jira_get_issue(expand=editmeta,transitions)获取元数据AI解决ZIP package — ready to use