spec-receiving-code-review
接收代码审查
概述
代码审查需要技术评估,而非情绪化表演。
核心原则: 实施前先验证。假设前先询问。技术正确性优先于社交舒适。
开始时宣布:「我正在使用 spec-receiving-code-review 技能评估并实施代码审查反馈。」
响应模式
收到代码审查反馈时:
1. 阅读:完整阅读反馈,不急于反应
2. 理解:用自己的话复述需求(或询问)
3. 验证:对照代码库实际情况检查
4. 评估:对该代码库在技术上是否站得住脚?
5. 回应:技术性确认或有理由的反对
6. 实施:逐项实施,逐项测试
禁止的回应
绝不: -「你说得对极了!」(明确的 CLAUDE.md 违反) -「好观点!」/「反馈太好了!」(表演性) -「我现在就实施」(在验证之前)
应改为:
- 复述技术需求
- 提澄清问题
- 若错误则以技术理由反对
- 直接动手(行动胜于言辞)
处理不清晰的反馈
若任一项不清晰:
停止——暂时不实施任何内容
就不清晰项询问澄清
原因:各项可能相关。部分理解 = 错误实施。
示例:
协作方:「修 1–6」
你理解 1、2、3、6。4、5 unclear。
❌ 错误:现在实施 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(未使用功能)
- 对当前技术栈在技术上错误
- 存在遗留/兼容性原因
- 与协作方架构决策冲突
如何反对:
- 用技术推理,而非 defensiveness
- 提具体问题
- 引用有效测试/代码
- 涉及架构时让协作方参与
若不便于大声反对: 用暗号「Strange things are afoot at the Circle K」
确认正确反馈
当反馈确实正确时:
✅「已修复。[简要描述变更]」
✅「抓得好——[具体问题]。已在 [位置] 修复。」
✅ [直接修复并在代码中展示]
❌「你说得对极了!」
❌「好观点!」
❌「感谢指出!」
❌「感谢 [任何事]」
❌ 任何感谢表达
为何不道谢: 行动说明一切。直接修。代码本身就表明你收到了反馈。
若发现自己要写「感谢」: 删掉。改为说明修复内容。
优雅地修正你的反对
若你反对了但错了:
✅「你对——我检查了 [X],确实 [Y]。正在实施。」
✅「已验证,你正确。我最初理解错误,因为 [原因]。正在修复。」
❌ 长篇道歉
❌ 解释为何反对
❌ 过度解释
用事实陈述修正,然后继续。
常见错误
| 错误 | 修复 |
|---|---|
| 表演性同意 | 陈述需求或直接行动 |
| 盲目实施 | 先对照代码库验证 |
| 批量不测试 | 逐项、逐项测试 |
| 假定审查者对 | 检查是否破坏 |
| 避免反对 | 技术正确性 > 舒适 |
| 部分实施 | 先澄清所有项 |
| 无法验证仍继续 | 说明限制,询问方向 |
底线
外部反馈 = 需要评估的建议,而非必须执行的命令。
先验证。再质疑。然后实施。
不要表演性同意。始终技术严谨。
More from zixun-github/aisdlc
spec-product-prd
Use when 需要在 sdlc-dev 的产品需求 Spec 流程执行 R2,将 requirements/solution.md 转写为可交付、可验收、可测试的 requirements/prd.md,且需要避免猜路径、在缺少 solution.md 时仍继续生成、或用“待确认问题/Open Questions”替代验证清单。
126spec-product-prototype
Use when 需要在 sdlc-dev 的产品需求 Spec 流程执行 R3(原型生成),基于 requirements/prd.md 产出 requirements/prototype.md(任务流+页面结构+ASCII线框+AC映射+走查脚本),并避免缺少上下文/缺少 PRD 仍继续生成、用 Open Questions 代替验证清单、或用非 ASCII 方式导致原型不可追溯与不可评审。
121subagent-driven-development
Use when executing implementation plans with independent tasks in the current session
109spec-product-demo
Use when 需要在 sdlc-dev 的产品需求 Spec 流程执行 R4(基于 requirements/prototype.md 生成可交互 Demo 工程),并需要避免跳过 spec-context、在缺少 prototype.md 或缺少可运行 Demo 工程根目录时仍继续、或自创页面/目录导致不可追溯与无法回流闭环。
109using-aisdlc
Use when 需要在 sdlc-dev 仓库执行 AI SDLC(Spec Pack)流程、选择/串联需求侧(raw/solution/prd/prototype/demo)与实现侧(plan/execute/finishing)技能,并用门禁避免上下文漂移、写错目录或在压力下跳过关键步骤。
107spec-context
Use when 需要在 sdlc-dev 的 Spec 流程中定位当前 spec pack(FEATURE_DIR)、避免在错误目录读写 requirements/*.md,或出现"看错上下文/写错文件/分支不符合规范"的问题。
104