proj-fix
Installation
SKILL.md
Bug修复
触发词
- "有个 Bug"
- "报错了"
- "功能不正常"
- "修复一下"
执行流程
Step 0: 校验任务文档 → Step 1: 问题收集 → Step 2: 问题定位 → Step 3: 修复方案 → Step 4: 代码修复 → Step 5: 验证
Step 0: 校验任务文档
- 确认全流程任务文档存在
- 若缺失,先创建任务文档骨架并补齐流程状态与上下文快照
Step 1: 问题收集
## Bug 信息
**问题描述:** {用户描述的问题}
**复现步骤:** {如何复现}
**期望行为:** {正确的行为}
**实际行为:** {当前错误的行为}
**错误信息:** {报错日志}
同步更新任务文档(不写细节):
- 上下文快照记录“Bug修复中”与一句话问题摘要
- 流程状态总览标记“业务开发”为进行中
Step 2: 问题定位
常见错误类型:
| 错误类型 | 可能原因 | 排查方向 |
|---|---|---|
| NullPointerException | 空指针 | 检查对象是否为 null |
| SQLException | 数据库错误 | 检查 SQL、字段、连接 |
| BusinessException | 业务校验失败 | 检查业务逻辑 |
| 参数校验失败 | 入参不合法 | 检查 DTO 校验注解 |
| 404 | 接口不存在 | 检查路径、Controller |
| 500 | 服务器内部错误 | 查看详细日志 |
Step 3: 修复方案
## 修复方案
**修复方式:** {如何修复}
**修改文件:** {需要修改的文件}
**注意事项:** {风险点}
Step 4: 代码修复
修复原则:
- 最小改动原则 - 只改必要的代码
- 不要顺手重构 - 专注于修复 Bug
- 保持代码风格一致
Step 5: 验证
## 验证清单
- [ ] 问题是否已修复
- [ ] 原有功能是否正常
- [ ] 是否引入新问题
同步更新任务文档:
- 产物清单记录测试/验证结果路径
- 更新下一步指令
常见修复示例
空指针异常
// 修复前
public UserResponse getDetail(Long id) {
User user = this.getById(id);
return convertToResponse(user); // user 可能为 null
}
// 修复后
public UserResponse getDetail(Long id) {
User user = this.getById(id);
if (user == null) {
throw new BusinessException(ErrorCode.DATA_NOT_EXIST);
}
return convertToResponse(user);
}
Git 提交规范
fix: {简要描述问题}
- 问题原因:{原因}
- 修复方式:{方式}
注意事项
- 先定位后修复 - 不要盲目改代码
- 最小改动 - 只改必要的部分
- 充分测试 - 修复后要验证
- 记录问题 - 重要 Bug 记录到文档
- 举一反三 - 检查是否有类似问题
- 任务文档同步 - 全程维护流程状态、产物清单、上下文快照、下一步指令
Related skills
More from zhangloveyan/backend-skill
proj-analyze-design
技术方案设计与确认(阶段二)。基于已确认的需求,设计数据库、接口、代码结构,生成技术方案文档。
10proj-review
代码审查检查清单和流程。用于代码提交前的自检、PR审查、代码质量检查。
9proj-gen
代码生成统一入口。生成 SQL、CRUD、API、枚举等代码。
8proj-gen-test
生成单元测试和集成测试代码。用于为Service层生成测试、为Controller层生成测试、提高测试覆盖率。
8proj-deploy
生成Docker Compose、Dockerfile、Nginx等部署配置。用于项目初始化部署配置、新增服务需要部署、查看部署配置模板。
8proj-common
查看公共类规范和使用方式。包括R响应类、ErrorCode错误码、异常处理、事务、缓存、并发控制、日志等。
8