with one click
code-review
审查代码(自己的或别人的),需有重点、分层次地看时。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
审查代码(自己的或别人的),需有重点、分层次地看时。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | code-review |
| description | 审查代码(自己的或别人的),需有重点、分层次地看时。 |
对代码做有重点、分层次的审查——先抓正确性和安全问题,再管可读性,风格交给工具。核心:好的 review 让作者知道"哪里有真问题、该先改什么";坏的 review 是一堆 nit 淹没重点,或一句"看起来不错"放过错误。
不该用:纯风格/格式问题(交给 linter/formatter 自动化,不该占用人 review);想确认"功能对不对"——那是 verify-and-fix(实际跑)的事,review 是静态审查、替代不了运行验证。
与相邻 skill 的边界:code-review 是审查视角(找问题、分严重度、给建议),verify-and-fix 是修复视角(改对、验证)。code-review 发现的问题,需要修的进入 verify-and-fix 流程;review 中发现的"行为不对/报错"可能要先用 debugging 定位根因。三者接力:review 找问题 → debugging 定位 → verify-and-fix 修+验证。
review 最常见的错是逐行挑风格(命名、缩进、注释多少)而放过正确性(逻辑对不对、边界处理了吗、有没有竞态)。正确性问题会让程序出错,风格问题只是不好看——前者 critical,后者 nit,优先级天差地别。
按重要性排序,review 该查的维度:
前 4 类是"会让程序出错或出事"的,必须查;第 5 类是"让人难受"的,次要;风格细节(缩进/格式)不该人查,交给工具。
按改动性质调整重点:上面是通用清单,但不同代码该重点查的不同——别对所有代码平均用力。涉及钱/库存/计数的,重点查原子性和一致性(中途失败会不会凭空产生/消失);涉及外部输入的(用户输入、API、文件),重点查安全(注入、越权);涉及共享状态/异步的,重点查竞态和资源泄漏;涉及配置/迁移的,重点查回滚和兼容。先识别"这段代码的风险面在哪",把 review 力量集中投到那里。
review 反馈必须分严重度,让作者知道先改什么:
不分层的 review 有两种失败:把 nit 当 critical(作者被一堆小事压垮,反而漏改真问题)、把 critical 当 nit(真问题被淹没在风格意见里)。nit 要克制——堆 15 条 nit 是在浪费作者时间,把同类 nit 归并成一条"风格建议",或直接交给 linter。
每条 review 意见应该让作者能理解问题 + 知道怎么改:
user.name 在 user 为 null 时会抛 TypeError——db.find 找不到时返回 null"。带依据的反馈让作者能判断对错、学到东西;空泛的"不好"让作者只能盲从或抵触。
review 容易陷入"逐行看 diff",但很多问题在整体层面才看得出来:
diff 告诉你"改了什么",但要结合"整体该怎么"才能看出"改对了吗、改全了吗"。
大改动(几百行、多文件)的 review 容易陷入"看不完、看到后面忘前面"。策略:
提交前自查自己的代码,有两个反直觉但有效的技巧:
自我 review 的产出标准同对外 review:说出查了什么维度、发现什么,而不是"我看过了没问题"。
| 问题 | 修法 |
|---|---|
| 表面附和"看起来不错" | 列出实际查了哪些维度、发现什么,空 review 等于没 review |
| 逐行挑 nit 淹没正确性 | 正确性/安全/边界优先,nit 克制并归并 |
| 不分严重度,nit 和 critical 混着 | 分阻塞/重要/建议三层,让作者知道先改什么 |
| 只说"不好"不说怎么改 | 每条带"为什么是问题 + 改的方向/示例" |
| 只看 diff 逐行 | 结合整体:一致性、契约破坏、缺了什么 |
| 风格问题占用人 review | 交给 linter/formatter,人查判断性问题 |
| 只看功能不看测试 | 查测试是否存在、测的是行为还是实现、覆盖关键路径 |
| 大 PR 一口气读,读到后面忘前面 | 先读描述抓主线,按逻辑分块审,太大就要求拆 PR |
| 自我 review 刚写完就看 | 放一会儿/换视角,先用工具跑再人眼看,对照 commit message 查混入的无关改动 |
需求模糊、含隐藏假设或 X-Y problem,需先澄清再动手时。
Git 改动需编写规范提交信息时。
遇到 bug、报错、崩溃或行为异常,需定位根因时。
设计或改进错误处理与日志时。
在 Lion-Skills 仓库创建或修改 skill 时。
为代码标识符(变量/函数/类/文件/API/数据库字段)决定名字时。