Skip to content

SOP:审查发布

代码变更完成后,通过 AI 辅助审查 + 人工关键审查 + 安全扫描,确保安全发布。

适用场景

  • PR 审查(自己的或他人的代码变更)
  • 发布前检查
  • 安全审查

前置条件

  • 代码变更已完成并提交
  • 有测试通过
  • 有变更摘要(或让 AI 生成)

流程步骤

步骤 1:AI 辅助审查

让 Claude 做第一轮审查——它能快速扫描大量变更,找出你可能遗漏的问题:

审查当前分支相对于 main 的所有变更。按以下维度分析:

1. **逻辑正确性**:是否有逻辑错误、边界遗漏、类型不匹配?
2. **安全隐患**:是否有注入、泄露、未授权访问、不安全的加密?
3. **性能风险**:是否有 N+1 查询、内存泄漏、不必要的同步操作?
4. **架构一致性**:是否符合项目的架构约定?是否引入了不必要的复杂度?
5. **测试覆盖**:关键逻辑是否有对应测试?

按严重程度分类:🔴 严重 / 🟡 中等 / 🟢 低风险
输出格式:Markdown 表格

审查维度速查表:

维度检查什么严重程度定义
逻辑条件判断、边界值、null 处理、类型安全🔴 会导致运行时错误
安全输入验证、SQL 注入、XSS、CSRF、认证逻辑🔴 所有安全问题都是严重
性能数据库查询效率、缓存使用、异步操作🟡 可能导致性能退化
架构模块边界、接口设计、抽象层级🟡 影响可维护性
测试覆盖率、边界测试、回归测试🟡 影响可靠性

步骤 2:人工关键审查

AI 审查后,你做第二轮审查——聚焦 AI 不擅长判断的维度:

AI 不擅长判断、你必须自己审查的:

维度为什么 AI 不擅长你需要审查什么
业务逻辑AI 不知道业务规则变更是否满足业务需求
用户体验AI 不了解 UX 设计意图变更是否影响用户体验
团队决策AI 不了解团队偏好变更是否与团队约定一致
兼容性AI 不了解所有下游依赖变更是否破坏现有客户端
运维影响AI 不了解部署环境变更是否影响运维(如新增配置项)

人工审查 checklist:

markdown
## PR 审查 Checklist

### 必须通过
- [ ] 变更与 PR 描述一致
- [ ] 测试全部通过
- [ ] 无安全漏洞(AI 审查 + 人工确认)
- [ ] 无 breaking changes(或已标记)
- [ ] 无性能退化风险

### 建议检查
- [ ] 代码风格与项目约定一致
- [ ] 无不必要的复杂度增加
- [ ] 错误处理完整
- [ ] 日志级别和格式与现有一致
- [ ] 配置变更已更新文档

步骤 3:安全扫描

对安全相关变更做额外审查:

对以下文件做安全专项审查:
[列出涉及认证、加密、权限、数据处理的文件]

检查:
1. 输入是否经过验证?
2. 是否有硬编码的密钥或 token?
3. SQL 是否使用参数化查询?
4. 文件操作是否有路径遍历风险?
5. 是否有不安全的序列化/反序列化?

安全审查维度表:

OWASP 类别在 Vibe Coding 中的风险检查方式
注入AI 可能生成拼接 SQL/命令的代码检查所有数据库/命令执行
XSSAI 可能未对用户输入做 HTML 转义检查所有输出到 HTML 的变量
敏感数据泄露AI 可能把密钥写入代码/配置文件检查所有常量和配置
访问控制AI 可能遗漏权限检查检查所有端点是否验证权限
安全配置AI 可能使用不安全的默认配置检查 CORS、TLS、cookie 设置

步骤 4:发布确认

所有审查通过后:

确认以下发布前检查:
1. 运行完整测试套件 + lint → 无错误
2. 搜索残留的 console.log / debug 代码 → 无残留
3. 检查 .env 和配置 → 无敏感值硬编码
4. 确认 CHANGELOG 已更新
5. 确认版本号已更新(如需要)

发布前检查清单:

markdown
## 发布前检查清单

- [ ] 全量测试通过
- [ ] lint 无错误
- [ ] 无 console.log / debug 代码残留
- [ ] 无硬编码密钥/token
- [ ] CHANGELOG 已更新
- [ ] 版本号已更新
- [ ] 文档已更新(如有 API 变更)
- [ ] 迁移脚本已准备(如有数据库变更)

常见问题

Q:AI 审查和人工审查的边界怎么划分? A:AI 扫量大(快速检查所有文件的安全、逻辑、性能),人审关键(业务逻辑、用户体验、兼容性)。AI 做广度,人做深度。

Q:AI 审查发现了大量问题怎么办? A:先按严重程度排序。🔴 严重问题必须全部修复。🟡 中等问题看是否影响发布。🟢 低风险可以后续迭代修复。不要试图在发布前修复所有小问题——那会延迟发布并增加引入新问题的风险。

Q:审查中发现了架构问题怎么办? A:架构问题通常不适合在当前 PR 中修复——记录到 decision-log,后续迭代处理。当前 PR 只解决当前问题。

与其他 SOP 的关系

基于 MIT 协议发布