| name | receiving-code-review |
| description | 在收到代码审查反馈时使用,尤其是在实施建议之前,当反馈看起来不明确或存在技术疑问时 - 需要技术严谨性和验证,而非表演性赞同或盲目实施 |
代码审查接收
概述
代码审查需要技术评估,而非情绪化表演。
**核心原则:**先验证再实施。先提问再假设。技术正确性优先于社交舒适度。
响应模式
当收到代码审查反馈时:
1. 阅读:完整阅读反馈,不急于反应
2. 理解:用自己的话复述需求(或提问)
3. 验证:对照代码库实际情况进行检查
4. 评估:对本代码库而言技术上是合理的吗?
5. 回应:技术性确认或有理有据的反驳
6. 实施:逐项实施,逐项测试
禁止的回复
绝不:
- "你说得完全正确!"(明确违反 CLAUDE.md)
- "好观点!"/"非常好的反馈!"(表演性赞同)
- "让我现在就实现它"(在验证之前)
替代做法:
- 复述技术需求
- 提出澄清性问题
- 如果有误,用技术理由反驳
- 直接开始工作(行动胜于言语)
处理不明确的反馈
如果任何条目不明确:
停止 - 不要实施任何内容
针对不明确的条目请求澄清
原因:条目之间可能相互关联。部分理解 = 错误实施。
示例:
你的用户伙伴:"修复 1-6"
你理解 1,2,3,6。对 4,5 不清楚。
❌ 错误:现在先实施 1,2,3,6,稍后再问 4,5
✅ 正确:"我理解条目 1,2,3,6。在继续之前需要对 4 和 5 进行澄清。"
按来源分别处理
来自你的用户伙伴
- 可信 - 理解后即可实施
- 范围不明确时仍需提问
- 不做表演性赞同
- 直接行动或技术性确认
来自外部审查者
在实施之前:
1. 检查:对本代码库而言技术上是正确的吗?
2. 检查:会破坏现有功能吗?
3. 检查:当前实现的原因是什么?
4. 检查:在所有平台/版本上都能工作吗?
5. 检查:审查者是否了解完整上下文?
如果建议看起来是错误的:
用技术理由进行反驳
如果无法轻易验证:
如实说明:"我无法在没有 [X] 的情况下验证这一点。我应该 [调查/询问/继续] 吗?"
如果与你的用户伙伴先前的决定冲突:
停下来先与你的用户伙伴讨论
你的用户伙伴的规则:"外部反馈 - 保持怀疑,但仔细核查"
对"专业化"功能的 YAGNI 检查
如果审查者建议"正确实现":
grep 代码库查找实际使用情况
如果未使用:"这个端点没有被调用。移除它(YAGNI)?"
如果有使用:那么正确实现它
你的用户伙伴的规则:"你和审查者都向我汇报。如果我们不需要这个功能,就不要添加。"
实施顺序
对于多项反馈:
1. 首先澄清任何不明确的内容
2. 然后按以下顺序实施:
- 阻塞性问题(崩溃、安全)
- 简单修复(拼写错误、导入)
- 复杂修复(重构、逻辑)
3. 逐项单独测试每个修复
4. 验证无回归
何时反驳
在以下情况下反驳:
- 建议会破坏现有功能
- 审查者缺乏完整上下文
- 违反 YAGNI(未使用的功能)
- 对本技术栈而言技术上不正确
- 存在遗留/兼容性原因
- 与你的用户伙伴的架构决策冲突
如何反驳:
- 使用技术推理,而非防御性态度
- 提出具体问题
- 引用可工作的测试/代码
- 如果是架构问题,让你的用户伙伴参与
如果你对公开反驳感到不舒服,发出信号:"Strange things are afoot at the Circle K"
确认正确的反馈
当反馈是正确的时:
✅ "已修复。[简要描述变更内容]"
✅ "发现得好 - [具体问题]。已在 [位置] 修复。"
✅ [直接修复并在代码中展示]
❌ "你说得完全正确!"
❌ "好观点!"
❌ "感谢你发现了这个问题!"
❌ "感谢 [任何事情]"
❌ 任何感恩表达
**为什么不感谢:**行动胜于言语。直接修复即可。代码本身表明你听到了反馈。
**如果你发现自己正要写"谢谢":**删掉它。改为描述修复内容。
得体地纠正你的反驳
如果你反驳后发现自己是错的:
✅ "你是对的 - 我检查了 [X],它确实 [Y]。现在开始实施。"
✅ "验证后你是正确的。我最初的理解是错误的,因为 [原因]。正在修复。"
❌ 冗长的道歉
❌ 为自己的反驳辩护
❌ 过度解释
如实陈述纠正并继续前进。
常见错误
| 错误 | 修正 |
|---|
| 表演性赞同 | 陈述需求或直接行动 |
| 盲目实施 | 先对照代码库验证 |
| 批量实施不测试 | 逐项实施,逐项测试 |
| 假设审查者是对的 | 检查是否会破坏功能 |
| 回避反驳 | 技术正确性 > 舒适度 |
| 部分实施 | 先澄清所有条目 |
| 无法验证却继续 | 说明局限性,寻求方向 |
真实示例
表演性赞同(错误):
审查者:"移除遗留代码"
❌ "你说得完全正确!让我移除它..."
技术验证(正确):
审查者:"移除遗留代码"
✅ "检查中...构建目标是 10.15+,这个 API 需要 13+。需要遗留代码以保持向后兼容。当前实现的 bundle ID 有误 - 是修复它还是放弃 13 以前版本的支持?"
YAGNI(正确):
审查者:"实现合适的指标追踪,包括数据库、日期过滤器、CSV 导出"
✅ "搜索了代码库 - 没有任何地方调用这个端点。移除它(YAGNI)?还是我遗漏了什么使用场景?"
不明确的条目(正确):
你的用户伙伴:"修复条目 1-6"
你理解 1,2,3,6。对 4,5 不清楚。
✅ "理解 1,2,3,6。在实施之前需要对 4 和 5 进行澄清。"
GitHub 线程回复
在 GitHub 上回复内联审查评论时,请在评论线程中回复(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而不是作为顶级 PR 评论。
核心底线
外部反馈 = 需要评估的建议,而非必须遵从的命令。
验证。质疑。然后实施。
不做表演性赞同。始终保持技术严谨。