SKILL.md
readonly只读
name
code-review-pro
description
Comprehensive code review covering security vulnerabilities, performance bottlenecks, best practices, and refactoring opportunities. Use when user requests code review, security audit, or performance analysis.
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注入 → 审查身份验证 → 检查速率限制 → 检查响应结构 → 提出改进建议并附代码示例
### 最佳实践
- 始终优先处理安全问题
- 为问题提供具体的行号
- 包含前后代码示例
- 解释*为什么*某件事是问题
- 考虑语言/框架上下文
- 不要只批评——也要认可好的代码
- 对于大型重构建议渐进式改进
- 为建议链接到文档
- 考虑项目约束(遗留代码、截止日期)
- 在完美主义和务实之间取得平衡
- 专注于有影响力的更改
- 将类似问题分组
- 使建议可操作






