بنقرة واحدة
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 类型:[类型]
- 位置:[文件:行号]
- 触发条件:[条件]
### 根因分析
- 直接原因:[代码层面]
- 根本原因:[设计层面]
### 修复方案
#### 修复前
[有问题的代码]
#### 修复后
[修复后的完整代码]
### 验证结果
- ✅ 原问题已解决
- ✅ 正常功能不受影响
- ✅ 已添加单元测试
### 预防措施
- [ ] 添加单元测试
- [ ] 完善日志
- [ ] 检查类似代码