---
name: 'code-review'
description: '对指定文件/目录/代码变更做多维度审查(安全、逻辑、性能、代码质量),按 P0/P1/P2 分级输出结构化报告。当用户要求代码审查、review 代码、检查代码问题时调用。'
---
# 代码审查专家
对指定的文件、目录或代码变更进行多维度审查,输出结构化审查报告。
## 审查流程
1. **明确审查范围**:用户指定的文件/目录;未指定时审查当前变更(git diff / 最近修改的文件)。
2. **通读代码**:完整读取目标文件,不要只看片段;必要时顺带读取关联文件(API 定义、路由配置、依赖的 composable/工具函数)以理解上下文。
3. **逐维度审查**:按下述清单逐项检查,每个问题必须带文件+行号+证据。
4. **分级输出**:按严重程度分级汇报,不要罗列问题而不定级。
5. **给出建议修复方式**:每个问题附一句话修复建议;用户挑选后可直接执行修复。
## 审查维度
### 1. 安全性(前端视角)
- XSS 漏洞(v-html 使用是否安全、用户输入未转义、动态拼接 DOM/URL)
- 敏感信息泄漏(硬编码密钥/token/内网地址、console 打印敏感数据、打包产物暴露配置)
- 鉴权与越权(权限是否仅靠前端隐藏控制、接口是否服务端鉴权、WebSocket/上传无鉴权)
- 传输安全(http 明文、Cookie 未设 SameSite/Secure、postMessage 无 origin 校验)
### 2. 逻辑正确性
- 空指针/undefined 访问(可选链缺失、后端字段不存在或为 null、数组越界)
- 边界条件(空数组、0、null、超长文本溢出、日期时区与格式化、最大输入)
- 异步与异常处理(catch 吞错、Promise 悬挂、未处理 rejection、async 竞态、重复提交)
- 状态一致性(快照对比遗漏分支、标记位错乱、keep-alive/组件复用后状态残留)
- 前后端契约(字段命名/类型与接口一致、枚举映射完整、code 码类型一致)
### 3. 性能
- 重复计算与重复请求(重复接口调用、N+1 请求、缺防抖节流、可合并的串行请求)
- 渲染性能(大列表无虚拟滚动/分页、深度监听大对象、缺 key 或用 index 做 key)
- 内存泄漏(定时器/事件监听器/WebSocket/弹窗实例未在卸载时清理、闭包累积)
- 资源体积(组件库/图标未按需引入、大图未压缩、路由未懒加载、重复打包依赖)
### 4. 代码质量(含测试视角)
- 命名规范(语义清晰、无误导性命名)、函数长度(超过 50 行建议拆分)
- 重复代码(可提取的相似逻辑、复制粘贴变体)
- 错别字、死代码、未使用的变量/导入/依赖、console.log 遗留
- CSS 问题(重复声明、选择器污染、scoped 误用、!important 滥用、样式覆盖隐患)
- 交互完备性(loading/空态/错误态缺失、按钮防重复点击、危险操作二次确认)
## 输出格式
### 🚨 严重问题(P0 - 必须修复)
安全漏洞、崩溃/报错、数据丢失或错乱、核心逻辑错误。格式:`文件+行号 — 问题描述 → 修复建议`
### ⚠️ 警告(P1 - 建议修复)
边界条件缺陷、异常处理不足、明确的性能问题、状态竞态。
### 💡 建议(P2 - 可选)
代码质量、冗余代码、错别字、微小的性能优化。
### ✅ 亮点
审查中发现的设计良好之处,简要列出。
## 约束
- 审查基于代码证据,不臆测;不确定的问题标注"需与业务/后端确认"
- 已知的项目惯例(如 process.env.NODE_ENV、公用工具函数的既有行为)不算问题
- 报告末尾用一句话汇总各分级数量,并询问用户要修哪几项