实战:让 CC 修复后端接口 Bug

后端接口 Bug 不要直接改 Service。要先让 CC 复现现象、梳理调用链、区分参数、权限、数据、缓存和历史问题,再做最小修复。

后端接口 Bug 比前端文案风险更高,因为它可能影响数据、权限、调用方和线上兼容性。让 CC 修后端 Bug 时,要先定位,再最小修复。

先描述 Bug

不要只说“接口坏了”。至少给出:

如果信息不全,先把能确认的写出来,不要自己补猜测。可以用这个格式:

信息当前情况
接口路径、方法名或功能入口
请求参数、Body、Header、登录状态
响应状态码、错误码、错误信息、返回字段
环境本地、测试、预发、生产
范围所有人出现,还是某个账号、某类数据出现
最近变化最近改过接口、数据、权限、配置还是依赖

第 1 步:只读定位

/plan

请帮我排查一个后端接口 Bug,但先不要修改文件。

接口:
【接口路径或方法名】

当前现象:
【现在发生了什么】

期望结果:
【应该发生什么】

请只读分析:
1. 路由入口在哪里。
2. Controller / Handler 在哪里。
3. Service 或业务逻辑在哪里。
4. 数据访问层在哪里。
5. 是否涉及权限、缓存、队列或第三方服务。
6. 可能原因有哪些,哪些有文件依据。
7. 最小修复方案是什么。

如果 Bug 已经在线上出现,更要加限制:

这是线上相关问题,请更谨慎处理。

要求:
1. 不要连接生产数据库。
2. 不要要求我提供真实用户隐私数据。
3. 不要直接写修数据 SQL。
4. 先判断是否需要回滚、降级或临时止血。
5. 只给分析和最小修复建议,执行前必须确认。

第 2 步:让 CC 区分根因类型

请先判断这个 Bug 更像哪一类:
1. 参数校验问题。
2. 权限判断问题。
3. 数据查询问题。
4. 状态流转问题。
5. 缓存或异步任务问题。
6. 调用方传参问题。
7. 历史数据问题。

每一类都说明依据,不要猜。

根因分类可以这样看:

类型常见表现优先检查
参数校验缺字段、类型错、边界值失败DTO、schema、validator
权限判断某些用户失败,管理员正常auth、role、policy、中间件
数据查询返回空、数量不对、排序不对where 条件、join、分页、软删除
状态流转某个状态下不能操作状态机、枚举、业务分支
缓存异步刷新后才好、延迟生效cache key、队列、定时任务
调用方传参后端逻辑没变但前端传错请求封装、接口文档、字段名
历史数据新数据正常,旧数据异常旧记录字段、迁移、默认值

第 3 步:确认最小修复

请给出最小修复方案。

要求:
1. 只修改和这个 Bug 直接相关的代码。
2. 不改数据库结构。
3. 不重构整个 Service。
4. 不改变旧接口兼容性,除非我确认。
5. 说明是否需要补测试。
6. 说明如何验证正常流程和异常流程。

最小修复方案要能说清“只改哪里”和“为什么够用”。如果 CC 的方案太大,直接收窄:

这个方案范围太大,请缩小。

请重新给最小方案:
1. 只修触发这个 Bug 的必要分支。
2. 不改公共接口设计。
3. 不改数据库结构。
4. 不重构无关模块。
5. 说明为什么这个小改动能解决复现步骤里的问题。

第 4 步:执行修复

可以按最小方案修复。

限制:
1. 只改计划中确认的文件。
2. 不顺手优化其他接口。
3. 不改生产配置。
4. 不连接生产数据库。
5. 修改后解释 diff。

执行后让 CC 解释本次行为变化:

请解释这次后端 Bug 修复的行为变化。

请说明:
1. 修复前什么输入会失败。
2. 修复后同样输入会怎样。
3. 哪些旧行为保持不变。
4. 是否影响错误码、响应字段或权限判断。
5. 是否需要同步更新接口文档或前端调用。

第 5 步:验收接口

/verify

请验收这个接口 Bug 修复。

要求覆盖:
1. 正常请求。
2. 缺少参数。
3. 参数错误。
4. 权限不足。
5. 数据不存在。
6. 旧调用方兼容性。
7. 日志或错误信息是否合理。

如果没有自动测试,让 CC 给手动验证方案:

如果当前项目没有相关测试,请给出人工验证方案。

要求:
1. 请求路径。
2. 请求参数示例。
3. 预期响应。
4. 异常场景。
5. 不能在生产环境执行的步骤。

特别注意历史数据

后端 Bug 有时不是代码错,而是历史数据不符合现在的规则。遇到这类情况,不要直接让 CC 写更新语句:

请判断这个问题是否可能由历史数据导致。

要求:
1. 只分析代码和字段规则,不连接生产库。
2. 说明需要检查哪些字段。
3. 如果需要修数据,只给出方案和风险,不要直接执行。
4. 说明是否需要备份、回滚和人工审批。

看到这些要拦住

收尾结论

请给出后端 Bug 修复收尾结论。

请输出:
1. 根因是什么。
2. 修复了哪条路径。
3. 哪些正常和异常场景已经验收。
4. 是否影响数据库、权限、缓存或调用方。
5. 是否建议进入 /code-review。

验收结果