Imported from SmileSnow819/sakura-job-offer (
.agents/skills/code-review/SKILL.md). Install upstream withnpx skills add SmileSnow819/sakura-job-offer --skill code-review. Copyright stays with the author.
代码审查
这是一套审查方法,不是机械 checklist。优先发现会造成错误行为、安全问题、数据损坏、资源泄漏、产品范围漂移或缺少必要验证的问题;一个证据充分的阻塞问题胜过一长串风格意见。
建立事实
- 阅读仓库和目标目录的
AGENTS.md、PRODUCT.md、相关 Agent Notes、测试策略和架构说明。 - 确认审查范围:基线、HEAD、未提交改动、生成文件和可能被遗漏的配置或迁移。
- 阅读 diff 之外的调用方、接口定义、错误路径和测试。Diff 只说明改了什么,不说明系统为什么这样工作。
- 区分项目规则、已落地的设计决定和个人偏好。对 Agent Note 有异议是设计讨论,不是自动否决。
必须审查的表面
- 需求与产品边界:实现是否满足明确需求?是否擅自新增用户角色、公开行为、配置选项、兼容层或产品能力?
- 接口与所有权:追踪每个改变接口的两端。参数、返回值、错误、取消、资源、状态和 disposal 的拥有者是否清楚且一致?
- 生命周期与并发:异步初始化、回调、定时器、文件、网络、子进程、锁或后台任务需要检查发布前失败、等待中取消、重复完成、清理、重入和错误隔离。
- 强制路径:权限、校验、限额和拒绝逻辑是否落在实际执行操作之前?是否有直接调用者、备用入口或队列路径绕过了它?
- 状态与派生值:每份状态是借用还是拥有?缓存、UI、日志、重试和恢复是否都从正确的事实来源更新?是否保留了两份会漂移的同一事实?
- 边界条件:确认空值、最小值、精确上限、超限单项、多字节文本、重复请求、异常和取消后重试。限制必须覆盖最终输出或最终保留的数据,而非中间片段。
- 真实入口:测试是否经过产品真实的 loader、CLI、worker、HTTP handler、构建产物或配置入口?只直接调用内部函数的测试可能遗漏装配错误。
- 验证强度:测试应观察外部行为、持久化数据、事件、资源清理或用户输出;覆盖率、mock 调用次数和“没有抛错”本身不是充分证据。
- 用户、模型与文档:用户可见文案、API、配置、提示词、工具 schema、错误信息和 README 是否反映当前行为?稳定输出改动是否有合适的 snapshot 或端到端证据?
审查新增 prose
审查新增或修改的注释、JSDoc、Markdown、提示词、诊断和 UI 文案:
- 保留代码无法表达的行为、失败条件、时序、所有权和安全事实。
- 删除重复代码、测试步骤、PR 讨论和实现过程叙述。
- 确认文档中的命令、默认值和配置确实来自当前代码或已执行的验证。
- 双语文档依项目规则同步;不要因存在配对文件就假设翻译正确。
报告
每个问题写明:位置、缺陷、影响和可复核证据。将局部问题定位到最小代码范围;跨模块的架构、范围或验证问题放在总结中。区分阻塞问题和建议,不重复已经由自动检查可靠保证的事项。
若没有发现问题,说明审查范围、实际查看的关键路径,以及未能验证的部分;“未发现”不等于“已证明正确”。