mirror of
https://github.com/jnMetaCode/superpowers-zh.git
synced 2026-09-02 22:54:06 +08:00
对齐上游 14 个 refactor commit 中尚未同步的 11 个(另 3 个已随 A/B 块完成)。 audit 上游结构漂移告警由此清零:150 pass / 0 warn / 0 fail。 ## 盘点先行:不是所有改动都是风格性的 C 块开工前做了逐 commit 盘点,判定标准定为「删掉的文字里有没有别处没写的 规则」。结论纠正了我之前的假设 —— 其中 3 项是实质改动,不是纯瘦身: - cfb6281 新增了一张 rationalization 表(2 行全新规则),替换掉 「与工作流的集成」那份工作流清单 - 03147d2 给 executing-plans 加了「先确保隔离工作区」作为步骤 1 (SDD 那一半已随 A 块完成) - bc86802 把「常见错误」5 个小节 + 「红线」Never/Always 双清单压成 5 行表, 规则一条不少 —— 这也是此前唯一有客观漂移证据的 skill ## 逐项核实后才删 每处删除都先确认规则在别处仍在: - receiving-code-review「底线」:概述已有「核心原则:先验证再实施。先提问再假设」 - writing-skills「总结」:铁律节 + TDD 循环表已完整承载 - writing-plans「注意事项」:精确路径 / Run: / 预期输出 三条都内建在任务结构 模板里 —— 上游是把「告知」改成「示范」 - brainstorming「核心原则」6 条:5 条已在流程详述里逐条体现(每次一个问题、 优先选择题、2-3 种方案、增量验证、回头澄清),YAGNI 按上游移到「探索方案」 的使用现场 - systematic-debugging / dispatching-parallel-agents / verification-before-completion 删的是「实际效果」「核心优势」「为什么这很重要」这类社会证明与说服段, 核心原则行全部保留 - systematic-debugging 的「相关技能」块折入第四阶段「验证修复」 - executing-plans 删掉的质量宣称按上游改写为平铺的平台清单 ## 验证 结构 - 10 个 skill 的 H2 数与上游逐一对齐(8 个完全相同、2 个差 1) - executing-plans / using-git-worktrees / requesting-code-review 的 superpowers: 引用集与上游完全一致 行为 eval —— 两轮共 11 题全对 专门考被删段落里的规则是否仍生效: - 原生 worktree 工具 vs git worktree add(答出「第一大错误」与「幽灵状态」) - 跳过 check-ignore 的后果、目录名优先级顺序 - 基线测试失败能否继续、能否无证据宣称完成 - 审查建议技术上有疑问时该照做还是反驳 - 能否先打补丁再查根因 - 能否自己读 diff 代替派审查者(命中 cfb6281 新增的表行) - 方案里的「以后可能用得上」功能怎么处理(命中 YAGNI 的新落点) 回归:audit.sh 150 pass / 0 warn / 0 fail、verify-release.sh 82 pass / 0 fail 注:audit PASS 由 152 降至 150 —— 上游有意删除的两个「集成」节里各有 superpowers: 引用,Category 4b 因此少 2 项检查;引用集已核对与上游一致。
6.1 KiB
6.1 KiB
name, description, version, license, metadata
| name | description | version | license | metadata | |||||
|---|---|---|---|---|---|---|---|---|---|
| receiving-code-review | 收到代码审查反馈后、实施建议之前使用,尤其当反馈不明确或技术上有疑问时——需要技术严谨性和验证,而非敷衍附和或盲目执行 | 1.0.0 | MIT |
|
接收代码审查
概述
代码审查需要的是技术评估,不是情绪表演。
核心原则: 先验证再实施。先提问再假设。技术正确性优先于社交舒适度。
响应模式
收到代码审查反馈时:
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——修复它还是放弃 pre-13 支持?"
YAGNI(正面例子):
审查者:"实现完善的指标追踪,包括数据库、日期过滤、CSV 导出"
✅ "在代码库中 grep 了一下——没有任何地方调用这个接口。删掉它(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 评论。