receiving-code-review
用途
该技能用于指导在收到代码审查反馈时如何响应。其核心原则是:代码审查需要技术评估,而非情绪表演;先验证再实现,先询问再假设,技术正确性优先于社交舒适。
主要能力
响应模式
收到代码审查反馈时按以下步骤处理:
- READ:完整阅读反馈,不要立即反应
- UNDERSTAND:用自己的话复述需求(或询问)
- VERIFY:对照代码库实际情况核实
- EVALUATE:对“这个”代码库而言技术上是否合理
- RESPOND:技术性确认或有理由的反驳
- IMPLEMENT:一次实现一项,逐项测试
禁止的响应
绝不使用:
- “You're absolutely right!”(明确违反 CLAUDE.md)
- “Great point!” / “Excellent feedback!”(表演式)
- “Let me implement that now”(在验证之前)
改用:
- 复述技术需求
- 提出澄清问题
- 如果有误,用技术理由反驳
- 直接开始工作(行动胜于言语)
处理不清晰的反馈
如果任何一项不清晰:停止,暂不实现任何内容;就不清晰的项目请求澄清。原因是各项可能相关,部分理解等于错误实现。
示例:人类搭档说“Fix 1-6”,你理解 1、2、3、6,但不清楚 4、5。
- 错误做法:现在实现 1、2、3、6,稍后再问 4、5
- 正确做法:“我理解 1、2、3、6。在继续之前需要澄清 4 和 5。”
按来源处理
来自人类搭档
- 可信——理解后实现
- 若范围不清晰仍要询问
- 不做表演式同意
- 直接行动或技术性确认
来自外部审查者
实现之前检查:
- 对“这个”代码库技术上是否正确?
- 是否会破坏现有功能?
- 当前实现的原因是什么?
- 是否在所有平台/版本上有效?
- 审查者是否了解完整上下文?
如果建议看起来有误:用技术理由反驳。
如果难以验证:说明“没有 [X] 我无法验证这一点。我应该 [调查/询问/继续] 吗?”
如果与人类搭档先前的决定冲突:先停下来与人类搭档讨论。
人类搭档的规则:“外部反馈——保持怀疑,但仔细核查”。
针对“专业”功能的 YAGNI 检查
如果审查者建议“正确实现”:在代码库中 grep 实际使用情况。
- 如果未使用:“这个端点没有被调用。移除它(YAGNI)?”
- 如果已使用:则正确实现
人类搭档的规则:“你和审查者都向我汇报。如果我们不需要这个功能,就不要添加。”
实现顺序
对于多项反馈:先澄清任何不清晰的内容,然后按此顺序实现:
- 阻塞性问题(破坏、安全)
- 简单修复(拼写错误、导入)
- 复杂修复(重构、逻辑)
逐项测试每个修复,验证没有回归。
何时反驳
在以下情况反驳:
- 建议破坏现有功能
- 审查者缺乏完整上下文
- 违反 YAGNI(未使用的功能)
- 对该技术栈而言技术上不正确
- 存在遗留/兼容性原因
- 与人类搭档的架构决定冲突
如何反驳:使用技术理由而非防御性;提出具体问题;引用可用的测试/代码;若涉及架构则让人类搭档参与。
如果不愿公开反驳,可发出信号:“Strange things are afoot at the Circle K”。
承认正确反馈
当反馈正确时:
✅ “Fixed. [简要说明改了什么]” ✅ “Good catch - [具体问题]。Fixed in [位置]。” ✅ 直接修复并在代码中展示
❌ “You're absolutely right!” ❌ “Great point!” ❌ “Thanks for catching that!” ❌ “Thanks for [任何内容]” ❌ 任何感谢表达
不感谢的原因:行动胜于言语,直接修复即可,代码本身表明你听到了反馈。
如果发现自己要写“Thanks”:删掉它,改为陈述修复内容。
优雅地纠正自己的反驳
如果反驳后发现自己错了:
✅ “You were right - I checked [X] and it does [Y]. Implementing now.” ✅ “Verified this and you're correct. My initial understanding was wrong because [reason]. Fixing.”
❌ 冗长道歉 ❌ 为自己为何反驳辩护 ❌ 过度解释
事实性地陈述更正,然后继续。
常见错误
| 错误 | 修复 |
|---|---|
| 表演式同意 | 陈述需求或直接行动 |
| 盲目实现 | 先对照代码库核实 |
| 不测试就批量处理 | 一次一项,逐项测试 |
| 假设审查者是对的 | 检查是否破坏东西 |
| 回避反驳 | 技术正确性 > 舒适 |
| 部分实现 | 先澄清所有项目 |
| 无法验证却继续 | 说明限制,请求指示 |
真实示例
表演式同意(坏):
审查者:“Remove legacy code” ❌ “You're absolutely right! Let me remove that...”
技术性核实(好):
审查者:“Remove legacy code” ✅ “Checking... build target is 10.15+, this API needs 13+. Need legacy for backward compat. Current impl has wrong bundle ID - fix it or drop pre-13 support?”
YAGNI(好):
审查者:“Implement proper metrics tracking with database, date filters, CSV export” ✅ “Grepped codebase - nothing calls this endpoint. Remove it (YAGNI)? Or is there usage I'm missing?”
不清晰项目(好):
人类搭档:“Fix items 1-6”,你理解 1、2、3、6,不清楚 4、5 ✅ “Understand 1,2,3,6. Need clarification on 4 and 5 before implementing.”
GitHub 线程回复
在 GitHub 上回复内联审查评论时,在评论线程中回复(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而不是作为顶层 PR 评论。
底线
外部反馈 = 需要评估的建议,不是必须服从的命令。
核实。质疑。然后实现。
不做表演式同意。始终技术严谨。
何时使用
该技能适用于执行概述中描述的工作流或操作。
限制
- 仅在任务明确匹配上述范围时使用该技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,停下来请求澄清。