Code Review Skill
全栈审查:按 Diff 语言分别应用 Java / Vue 规范,输出分级、可操作的审查报告。
何时加载参考文档
先读本文件完成流程与报告;按 Diff 命中情况再读参考(勿一次全读):
| Diff 含有 | 读取 |
|---|---|
*.java、pom.xml、application*.yml |
references/java-spring.md |
*.vue、*.ts、*.tsx、前端 package.json |
references/vue-typescript.md |
| 需要 before/after 示例 | references/report-examples.md |
仓库约定优先:AGENTS.md、.cursor/rules/(backend-java、frontend-vue、project-conventions)。
审查流程
Step 1:变更上下文
从 PR/MR 描述或提交信息确认(缺失则标注 [NEED-CONTEXT]):
| 项目 | 说明 |
|---|---|
| 变更目的 | 解决什么问题 / 实现什么功能 |
| 影响范围 | 模块、是否 DB / API / 前后端契约变更 |
| 关联 Issue | 如有则记录 |
Step 2:取 Diff 并路由
git status、git diff HEAD、git diff --cached(PowerShell 用;不用&&)- 按文件扩展名加载对应 reference
- 前后端同时改动时,检查 API 契约是否一致(字段名、状态码、错误体)
Step 3:逐文件审查
对每个变更文件标注精确行号,按 reference 中的维度检查。公共维度:
- Bug / NPE·undefined / 逻辑错误 → Must Fix
- 安全(注入、XSS、密钥泄露、未校验入参)→ Must Fix
- 可维护性、分层违规、缺少测试 → Should Fix
- 命名、注释、小风格 → Nitpick
- 格式化工具能自动修的(如
springformat:apply、eslint --fix)→ 只提示运行命令,不逐条列出
Step 4:汇总报告
按下方模板输出。至少写 1 条亮点。
报告模板
## Code Review Report
### 基本信息
| 字段 | 内容 |
|------|------|
| PR/MR | #<number> 或「工作区 Diff」 |
| 作者 | @<author> |
| 审查人 | AI Reviewer |
| 日期 | YYYY-MM-DD |
| 变更目的 | ... |
| 影响范围 | 后端 / 前端 / 双端;DB/API:有/无 |
| 关联 Issue | ... 或 [NEED-CONTEXT] |
### Must Fix(必须修改后才能合入)
> Bug、安全隐患、数据丢失、严重分层/契约违规
| # | 文件 | 行号 | 问题描述 | 建议 |
|---|------|------|----------|------|
| 1 | `path` | Lxx | ... | ... |
### Should Fix(强烈建议修改)
> 质量与可维护性
| # | 文件 | 行号 | 问题描述 | 建议 |
|---|------|------|----------|------|
### Nitpick(可选优化)
> 风格、命名、注释
| # | 文件 | 行号 | 问题描述 | 建议 |
|---|------|------|----------|------|
### 亮点
- ...
### 需作者确认
- [ ] ...
### 统计
| 指标 | 数值 |
|------|------|
| 审查文件数 | X |
| Must Fix | X |
| Should Fix | X |
| Nitpick | X |
风格/逻辑类问题须附:
❌ 当前写法
...
✅ 建议写法
...
输出约束
- 每条意见带路径 + 行号
- 语气专业中立,只陈述事实与依据
- 严格区分 Must / Should / Nitpick,勿全部标为阻塞
- 无 Java 或无 Vue 变更时,对应维度标「不适用」,勿空转检查项
- 合入建议一句话收尾
快捷指令
| 指令 | 行为 |
|---|---|
/review 或 /code-review |
完整审查(按 Diff 加载 Java/Vue 参考) |
/review --quick |
仅 Must Fix(Bug + 安全 + 空指针/undefined) |
/review --style |
仅风格与格式(java → springformat;vue/ts → ESLint/Prettier 约定) |
/review --security |
仅安全相关 |
/format-check |
提示:后端 mvn springformat:apply;前端对应 lint/format |