Code Reviewer 是一个代码审查技能,用来分析 pull request 和代码改动,评估质量、安全、可维护性与最佳实践。
【用途】 当用户请求代码审查、请求 PR 审查、提到审查改动,或说“review this”“check this code”时激活,对改动给出结构化的审查意见。
【审查流程】 分三个阶段。
阶段一:上下文收集。获取改动文件与提交记录(git diff main...HEAD --name-only、git log main...HEAD --oneline),获取差异(git diff main...HEAD),并理解项目上下文:阅读相关文档、查看同类文件中的既有模式、识别项目特有的约定。
阶段二:分析类别,共七类。
- 正确性:逻辑是否合理并符合需求、边界情况是否处理、错误处理是否恰当、是否存在明显 bug 或拼写错误。
- 安全:无硬编码密钥或凭据、输入校验与净化、防 SQL 注入、防 XSS(前端)、认证/授权检查、用户数据安全处理。
- 性能:无 N+1 查询、适当的缓存、高效算法、无不必要的计算、内存效率。
- 代码质量:遵循 DRY 与 KISS、抽象是否恰当、命名是否清晰、类型是否规范(如 TypeScript)、无注释掉的代码。
- 测试:测试是否覆盖新功能、是否覆盖边界情况、断言是否有意义、是否存在脆弱测试。
- 文档:复杂逻辑是否有说明、公共 API 是否有文档、函数是否有 JSDoc/TSDoc、README 是否需要更新。
- 可维护性:代码是否可读、风格是否一致、模块化设计、关注点分离。
【输出格式】 使用结构化格式反馈:标题为 Code Review;Summary 用 2-3 句话概述改动;Issues by Severity 按 Critical(合并前必须修复)、High(除非有充分理由,合并前应修复)、Medium(可考虑修复,可后续跟进)、Low(锦上添花)列出问题,每条带 file:line 引用;Positive Highlights 指出做得好的地方;Suggestions 为无需立即处理的可选改进;Approval Status 在 Approved、Approved with suggestions、Request changes 中选择。
【常见问题检查表】 安全类:硬编码密钥(如 const API_KEY = "sk-")建议改用环境变量;SQL 注入(字符串拼接用户输入)建议参数化查询;XSS(innerHTML = user_input)建议净化或使用 textContent;缺少鉴权检查(新端点无 @RequireAuth)建议添加认证中间件。 性能类:N+1 查询(循环内数据库调用)建议预加载或批量查询;不必要的重渲染(useEffect 依赖缺失)建议修正依赖数组;内存泄漏(事件监听未移除)建议在 useEffect 返回中清理;低效循环(嵌套循环 O(n²))建议改用哈希表或其他算法。 质量类:重复代码建议提取函数;魔法数字建议改用命名常量;过长函数(超过 50 行)建议拆分;复杂条件建议简化。 测试类:无测试的新功能建议添加单元测试;仅覆盖正常路径建议补充边界用例;依赖实现细节的脆弱测试建议测试行为而非实现;缺少断言建议补充断言。
【语言特定建议】 TypeScript:未类型化值用 unknown 而非 any;公共 API 优先 interface,联合类型用 type;使用 strict 模式;尽量避免 as 断言。 React:遵循 Hooks 规则;恰当使用 useCallback/useMemo(不要过早使用);优先函数组件;列表使用合适的 key;用 Context 避免 prop drilling。 Python:遵循 PEP 8;使用类型提示;使用 f-string;优先列表推导而非 map/filter;资源使用上下文管理器。 Go:显式处理错误;使用命名返回值提高清晰度;保持 goroutine 简单;用 channel 通信;避免包级状态。
【合并前确认】 需确认:所有 critical 问题已处理、测试本地通过、无合并冲突、提交信息清晰、文档已更新、破坏性变更已记录。
【脚本与参考】 可运行审查清单脚本:python3 scripts/review_checklist.py --base main --output review-checklist.md 参考文件包括 references/checklist.md(完整审查清单)、references/security.md(安全审查指南)、references/patterns.md(常见模式与反模式)。
【限制】 除上述说明外,该技能的具体平台、收费、价格、效果等信息暂未提供。