SKILL.md
只读
名称
code-review-pro
描述
全面的代码审查,涵盖安全漏洞、性能瓶颈、最佳实践和重构机会。当用户请求代码审查、安全审计或性能分析时使用。
Code Review Pro
深度代码分析,涵盖安全性、性能、可维护性和最佳实践。
何时使用此技能
当用户出现以下情况时激活:
- 要求进行代码审查
- 想要安全漏洞扫描
- 需要性能分析
- 要求“审查此代码”或“审计此代码”
- 提到查找错误或改进
- 想要重构建议
- 请求最佳实践验证
说明
-
安全分析(关键优先级)
- SQL注入漏洞
- XSS(跨站脚本)风险
- 身份验证/授权问题
- 代码中的机密或凭据
- 不安全的反序列化
- 路径遍历漏洞
- CSRF防护
- 输入验证缺口
- 不安全的加密
- 依赖漏洞
-
性能分析
- N+1查询问题
- 低效算法(检查Big O复杂度)
- 内存泄漏
- 不必要的重新渲染(React/Vue)
- 缺少索引(数据库查询)
- 阻塞操作
- 资源清理(文件句柄、连接)
- 缓存机会
- 过多的网络调用
- 大型包体积
-
代码质量与可维护性
- 代码重复(DRY违规)
- 函数/方法长度(应小于50行)
- 圈复杂度
- 命名不清晰
- 缺少错误处理
- 风格不一致
- 缺少文档
- 硬编码值应改为常量
- 上帝类/函数
- 紧耦合
-
最佳实践
- 语言特定习惯用法
- 框架约定
- SOLID原则
- 设计模式的使用
- 测试方法
- 日志记录和监控
- 可访问性(针对UI代码)
- 类型安全
- 空值/未定义处理
-
错误和边界情况
- 逻辑错误
- 差一错误
- 竞态条件
- 空指针异常
- 未处理的边界情况
- 时区问题
- 编码问题
- 浮点精度
-
提供可操作的修复
- 显示具体的代码更改
- 解释为什么需要更改
- 包含前后示例
- 按严重性排序
输出格式
# 代码审查报告
## 关键问题(立即修复)
### 1. SQL注入漏洞(第X行)
**严重性**:关键
**问题**:用户输入直接拼接到SQL查询中
**影响**:数据库泄露、数据窃取
**当前代码:**
```javascript
const query = `SELECT * FROM users WHERE email = '${userEmail}'`;
修复代码:
const query = 'SELECT * FROM users WHERE email = ?';
db.query(query, [userEmail]);
解释:始终使用参数化查询以防止SQL注入。
高优先级问题
2. 性能:N+1查询问题(第Y行)
[详情...]
中优先级问题
3. 代码质量:函数过长(第Z行)
[详情...]
低优先级/锦上添花
4. 考虑使用const代替let
[详情...]
总结
- 总问题数:12
- 关键:2
- 高:4
- 中:4
- 低:2
快速胜利
高影响低努力的变化:
- [修复1]
- [修复2]
优点
- 在X处错误处理良好
- 命名约定清晰
- 模块结构良好
重构机会
- 提取方法:第X-Y行可以提取为
calculateDiscount() - 消除重复:[具体代码块]
资源
### 示例
**用户**:“审查此身份验证代码”
**响应**:分析认证逻辑 → 识别安全问题(弱密码哈希、无速率限制)→ 检查令牌处理 → 注意缺少CSRF防护 → 提供具体修复和代码示例 → 按严重性排序
**用户**:“你能在这个React组件中找到性能问题吗?”
**响应**:分析组件 → 识别不必要的重新渲染 → 发现缺少useMemo/useCallback → 注意大型状态对象 → 检查渲染中的昂贵操作 → 提供优化版本并解释
**用户**:“审查此API端点”
**响应**:检查输入验证 → 分析错误处理 → 测试SQL注入 → 审查身份验证 → 检查速率限制 → 检查响应结构 → 提出改进建议并附代码示例
### 最佳实践
- 始终优先处理安全问题
- 为问题提供具体的行号
- 包含前后代码示例
- 解释*为什么*某件事是问题
- 考虑语言/框架上下文
- 不要只批评——也要认可好的代码
- 对于大型重构建议渐进式改进
- 为建议链接到文档
- 考虑项目约束(遗留代码、截止日期)
- 在完美主义和务实之间取得平衡
- 专注于有影响力的更改
- 将类似问题分组
- 使建议可操作




