ワンクリックで
bug
系统化地定位和修复 BUG,确保问题彻底解决且不引入新问题
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
系统化地定位和修复 BUG,确保问题彻底解决且不引入新问题
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
自动化浏览器交互,用于网页测试、表单填写、截图和数据提取。当用户需要浏览网站、与网页交互、填写表单、截取屏幕截图、测试 Web 应用程序或从网页提取信息时使用。
为后端代码(Express 路由、MongoDB 模型、Node 服务)生成测试时使用 - 分析文件类型,从 package.json 检测测试框架,生成包含设置/拆卸和边缘情况覆盖的全面测试
创建生产级 ChatKit 聊天机器人的指南,该机器人将 OpenAI Agents SDK 与 MCP 工具和自定义后端集成。在为任何应用程序构建具有专门功能、实时任务执行和用户隔离的 AI 驱动聊天机器人时使用。
当你发现当前可用的技能都不够合适(或用户明确要求你寻找技能)时使用。本技能会基于任务目标和约束,给出一份精简的候选技能清单,帮助你选出最适配当前任务的技能。
Translates English documents to Chinese with accurate semantics and grammar. Invoke when user asks to translate any English documentation or content to Chinese.
使用 OpenAI 和 Google API 进行 AI 图像生成。支持文生图、参考图片、宽高比和并行生成(推荐 4 个并发子代理)。当用户要求生成、创建或绘制图像时使用。
| name | BUG 定位与修复 |
| description | 系统化地定位和修复 BUG,确保问题彻底解决且不引入新问题 |
收集以下信息:
| BUG 类型 | 常见原因 | 定位方法 |
|---|---|---|
| NullPointerException | 未判空 | 查看堆栈,找到为 null 的对象 |
| IndexOutOfBoundsException | 未检查集合大小 | 检查索引计算和边界 |
| ConcurrentModificationException | 遍历时修改集合 | 检查循环中的修改操作 |
| ClassCastException | 类型不匹配 | 检查类型转换 |
| DuplicateKeyException | 唯一索引冲突 | 检查数据库约束 |
| DeadlockException | 死锁 | 分析锁顺序 |
5 Why 分析法:
问题:订单创建失败
Why 1: 为什么失败? → 库存扣减失败
Why 2: 为什么扣减失败? → 库存不足
Why 3: 为什么库存不足? → 库存数据不准确
Why 4: 为什么不准确? → 并发扣减时没有加锁
Why 5: 为什么没有加锁? → 设计时未考虑并发
根因:并发控制缺失
空指针修复
// 修复前
Order order = orderDao.selectById(orderId);
order.getStatus(); // NPE
// 修复后
Order order = orderDao.selectById(orderId);
if (order == null) {
log.warn("订单不存在, orderId={}", orderId);
throw new BusinessException("订单不存在");
}
集合操作修复
// 修复前
OrderItem firstItem = items.get(0); // 越界
// 修复后
if (CollectionUtils.isEmpty(items)) {
throw new BusinessException("订单明细不能为空");
}
OrderItem firstItem = items.get(0);
并发修改修复
// 修复前
for (OrderItem item : order.getItems()) {
if (item.getQuantity() == 0) {
order.getItems().remove(item); // 并发修改异常
}
}
// 修复后
Iterator<OrderItem> iterator = order.getItems().iterator();
while (iterator.hasNext()) {
if (iterator.next().getQuantity() == 0) {
iterator.remove();
}
}
数据库并发修复
// 修复前
orderDao.update(order); // 并发更新可能丢失
// 修复后(乐观锁)
int updated = orderDao.updateByVersion(order);
if (updated == 0) {
throw new ConcurrentModificationException("订单已被修改");
}
异常处理修复
// 修复前
try {
processOrder(order);
} catch (Exception e) {
// 吞掉异常
}
// 修复后
try {
processOrder(order);
} catch (BusinessException e) {
log.warn("业务异常, error={}", e.getMessage());
throw e;
} catch (Exception e) {
log.error("系统异常, orderId={}", order.getId(), e);
throw new SystemException("订单处理失败", e);
}
## BUG 修复报告
### 问题描述
- 现象:[错误表现]
- 复现:[触发步骤]
- 影响:[影响范围]
### 错误信息
[异常堆栈或日志]
### 问题定位
- BUG 类型:[类型]
- 位置:[文件:行号]
- 触发条件:[条件]
### 根因分析
- 直接原因:[代码层面]
- 根本原因:[设计层面]
### 修复方案
#### 修复前
[有问题的代码]
#### 修复后
[修复后的完整代码]
### 验证结果
- ✅ 原问题已解决
- ✅ 正常功能不受影响
- ✅ 已添加单元测试
### 预防措施
- [ ] 添加单元测试
- [ ] 完善日志
- [ ] 检查类似代码