tapd-bug-analyzer
TAPD Bug Analyzer Skill
自动化分析和定位 TAPD Bug 单中的问题,支持多种分析策略。
Usage
/tapd-bug <bug_url> [--env <environment>] [--region <region>]
Parameters
bug_url: 必填,TAPD Bug 单链接(如:https://www.tapd.cn/xxxxx/bugtrace/bugs/view/xxxxxx)--env: 可选,环境名称:dev/test/prod(默认根据 URL 自动判断)--region: 可选,地域:shanghai/hangzhou(默认 shanghai)
Instructions
当用户调用此 skill 时,按以下步骤执行:
Step 1: 解析 TAPD Bug 链接
从 Bug 链接中提取 workspace_id 和 bug_id:
URL 格式: https://www.tapd.cn/{workspace_id}/bugtrace/bugs/view/{bug_id}
示例: https://www.tapd.cn/12345678/bugtrace/bugs/view/1012345678001234567
Step 2: 获取 Bug 详情
使用 TAPD MCP 工具获取 Bug 单详细信息:
调用 mcp__mcp-server-tapd__get_bug 工具:
- workspace_id: 从 URL 解析得到
- options: {"id": "<bug_id>", "fields": "id,title,description,status,severity,priority,reporter,current_owner,created,modified"}
Step 3: 分析 Bug 描述,选择分析策略
仔细阅读 Bug 描述(description 字段),按优先级选择分析策略:
策略 A: 包含 traceId
检测 Bug 描述中是否包含 traceId(通常是 16 位十六进制字符串):
- 正则匹配:
[a-f0-9]{16} - 常见格式:
traceId: xxx,trace_id=xxx,X-B3-TraceId: xxx
如果找到 traceId,直接调用 sls-trace-analyzer:
~/.claude/skills/sls-trace-analyzer/.venv/bin/python \
~/.claude/skills/sls-trace-analyzer/sls-query.py \
--trace-id "<traceId>" \
--region "<region>" \
--env "<env>"
说明: 脚本默认同时查询普通存储和长期存储两个 logstore,以获取完整日志。
策略 B: 包含请求 URL(带时间戳)
检测 Bug 描述中是否包含 API 请求 URL:
- URL 模式:
http(s)://xxx.abczs.cn/api/... - 时间戳参数: URL 末尾的 13 位数字(毫秒时间戳)
示例 URL:
http://32.ftest.abczs.cn/api/v2/patientorders/his/ffffffff0000000035246dd0adec0000/hospital?1768198926187
如果找到带时间戳的 URL,直接调用 sls-trace-analyzer(URL 模式):
~/.claude/skills/sls-trace-analyzer/.venv/bin/python \
~/.claude/skills/sls-trace-analyzer/sls-query.py \
--url "<完整URL含时间戳>"
sls-trace-analyzer 会自动:
- 解析 URL 中的域名、路径、时间戳
- 根据域名判断环境(dev/test/prod)和地域
- 查询网关日志获取 traceId
- 使用 traceId 查询完整调用链日志
- 输出日志分析结果
策略 C: 无 traceId 也无时间戳
基于 Bug 描述进行代码分析:
- 提取关键信息(错误消息、功能模块、操作步骤)
- 使用 codebase-retrieval 搜索相关代码
- 分析业务逻辑,推断问题原因
Step 4: 日志分析与问题定位
获取到 traceId 后,调用 sls-trace-analyzer 进行深度分析:
-
识别错误和异常
- 查找 ERROR、WARN 级别的日志
- 识别 Java 异常堆栈(Exception、Caused by)
- 提取错误消息和错误码
-
追踪请求链路
- 按时间排序日志条目
- 识别请求入口(Controller)和出口
- 标记 RPC/Feign 调用和响应
-
定位代码问题
- 从异常堆栈提取类名和行号
- 优先关注
cn.abcyun包下的代码 - 使用 codebase-retrieval 查找对应代码
Step 5: 输出分析报告
生成结构化的分析报告:
## TAPD Bug 分析报告
### Bug 基本信息
- **Bug ID**: xxx
- **标题**: xxx
- **状态**: xxx
- **严重程度**: xxx
- **报告人**: xxx
- **处理人**: xxx
### 分析策略
- 使用策略: A/B/C
- TraceId: xxx(如有)
- 请求时间: xxx(如有)
### 错误摘要
- **错误类型**: xxx
- **错误消息**: xxx
- **发生位置**: `文件路径:行号`
### 调用链路
1. [入口] POST /api/xxx
2. [Service] XxxService.method()
3. [RPC] 调用 xxx 服务
4. [Error] 发生异常
### 问题定位
- **根因分析**: xxx
- **相关代码**:
```java
// 问题代码片段
修复建议
- xxx
- xxx
## Examples
### 示例 1: Bug 描述中包含 traceId
```bash
/tapd-bug https://www.tapd.cn/12345678/bugtrace/bugs/view/1012345678001234567
Bug 描述内容:
用户反馈下单失败,错误信息:系统繁忙,请稍后重试
traceId: 8989a698c36e5189
执行流程:
- 解析 URL 获取 workspace_id=12345678, bug_id=1012345678001234567
- 调用 TAPD MCP 获取 Bug 详情
- 从描述中提取 traceId: 8989a698c36e5189
- 调用 sls-trace-analyzer 分析日志
- 输出分析报告
示例 2: Bug 描述中包含请求 URL
/tapd-bug https://www.tapd.cn/12345678/bugtrace/bugs/view/1012345678001234568 --env test
Bug 描述内容:
测试环境下单接口报错 500
请求地址:http://32.ftest.abczs.cn/api/v2/patientorders/his/ffffffff0000000035246dd0adec0000/hospital?1768198926187
执行流程:
- 解析 URL 获取 workspace_id 和 bug_id
- 调用 TAPD MCP 获取 Bug 详情
- 从描述中提取请求 URL(含时间戳)
- 调用 sls-trace-analyzer(URL 模式)进行日志分析
- 输出分析报告
示例 3: 纯文字描述的 Bug
/tapd-bug https://www.tapd.cn/12345678/bugtrace/bugs/view/1012345678001234569
Bug 描述内容:
患者在门诊缴费时,选择医保支付后点击确认,页面提示"医保结算失败",
但实际上 HIS 系统显示已经结算成功。
复现步骤:
1. 登录患者端 APP
2. 选择待缴费订单
3. 选择医保支付
4. 点击确认支付
预期结果:支付成功,跳转到支付成功页面
实际结果:提示"医保结算失败"
执行流程:
- 解析 URL 获取 workspace_id 和 bug_id
- 调用 TAPD MCP 获取 Bug 详情
- 未找到 traceId 或时间戳
- 分析描述提取关键词:门诊缴费、医保支付、医保结算
- 使用 codebase-retrieval 搜索相关代码
- 分析业务逻辑,推断可能原因
- 输出分析报告
示例 4: 实际案例 - 处方不展示规格
输入:
/tapd-bug https://www.tapd.cn/43780818/bugtrace/bugs/view/1143780818001109821
Bug 描述内容:
问题概述:处方不展示规格
门店id: ffffffff000000003526121e726a0004
收费单id:ffffffff000000003526dc97b673c003
补充说明:后台没返回药品档案的规格
执行流程:
- 解析 URL: workspace_id=43780818, bug_id=1143780818001109821
- 调用 TAPD MCP 获取 Bug 详情
- 分析描述:无 traceId,无时间戳 URL → 使用策略 C
- 提取关键词:处方、规格、药品档案
- 使用 codebase-retrieval 搜索相关代码
- 定位到 PrescriptionService.java:678-680
问题定位结果:
// PrescriptionService.java:678-680
if (goodsItem.getType() == 2) {
prescriptionFormItem.setSpecification(...);
}
根因分析: 西药处方的 specification 字段只在 type==2(材料)时设置,普通西药(type=1)未设置规格。
修复建议: 为所有类型药品设置规格,优先使用 GoodsItem.displaySpec 字段。
More from abcfed/claude-marketplace
tapd
TAPD 敏捷研发管理平台集成。使用脚本调用 TAPD API,实现需求、缺陷、任务、迭代、测试用例、Wiki 等实体管理。使用场景包括:(1) 查询/创建/更新需求、缺陷、任务、迭代 (2) 管理测试用例和 Wiki (3) 管理评论和工时 (4) 关联需求与缺陷 (5) 获取源码提交关键字
175codeup
阿里云云效 Codeup 代码仓库管理工具集。使用场景包括:(1) 代码仓库操作 - 分支管理、文件操作、代码对比、合并请求/MR管理 (2) 组织管理 - 部门管理、成员查询、角色管理 (3) 操作 codeup 仓库、分支、MR、合并请求 (4) 查询云效组织成员、部门列表
77modao-capture
墨刀原型稿抓取工具。自动从墨刀原型稿链接抓取所有页面、截图和批注,生成 Markdown 文档。使用场景包括:(1) 抓取原型稿页面 (2) 生成页面截图 (3) 提取批注内容 (4) 导出 Markdown 文档
67abc-apifox
ABC 医疗云 API 文档查询工具。读取和查询 ABC API 的 OpenAPI 规范文档(5000+ 接口),支持按模块、路径、方法搜索,自动解析 $ref 引用。采用按模块拆分的缓存结构,查询速度快。使用场景:(1) 查询 API 接口定义 (2) 搜索特定功能接口 (3) 查询 Schema 定义 (4) 查看接口统计信息
48jenkins-deploy
ABC Jenkins 项目发布技能。支持智能参数推断和交互式触发 Jenkins 构建,自动获取 Git 分支和标签信息。当用户请求"发布 Jenkins"、"触发构建"、"部署项目"、"Jenkins 发布"或类似操作时触发此技能。需要环境变量 JENKINS_USER 和 JENKINS_TOKEN。
31apifox
ABC 医疗云 API 文档查询工具。读取和查询 ABC API 的 OpenAPI 规范文档(4209 个接口),支持按模块、路径、方法搜索,自动解析 $ref 引用。使用场景:(1) 查询 API 接口定义 (2) 搜索特定功能接口 (3) 导出接口文档摘要 (4) 查看接口统计信息
28