生产代码审计
概述
自动分析整个代码库,理解其架构、模式和用途,然后系统性地将其转换为生产级、企业级专业代码。该技能执行深度逐行扫描,识别安全、性能、架构和质量方面的所有问题,然后提供全面的修复方案以满足企业标准。
何时使用该技能
- 当用户说"使其达到生产就绪状态"时使用
- 当用户说"审计我的代码库"时使用
- 当用户说"使其专业/企业级"时使用
- 当用户说"优化一切"时使用
- 当用户需要企业级质量时使用
- 准备生产部署时使用
- 当代码需要满足企业标准时使用
工作原理
步骤1:自动代码库发现
自动扫描并理解整个代码库:
- 读取所有文件 - 递归扫描项目中的每个文件
- 识别技术栈 - 检测语言、框架、数据库、工具
- 理解架构 - 绘制结构、模式、依赖关系图
- 识别用途 - 理解应用程序的功能
- 查找入口点 - 定位主文件、路由、控制器
- 映射数据流 - 理解数据在系统中的流动方式
无需询问用户即可自动执行此操作。
步骤2:全面问题检测
逐行扫描所有问题:
架构问题:
- 循环依赖
- 紧密耦合
- 上帝类(>500行或>20个方法)
- 缺少关注点分离
- 模块边界不清
- 违反设计模式
安全漏洞:
- SQL注入(查询中的字符串拼接)
- XSS漏洞(未转义的输出)
- 硬编码密钥(代码中的API密钥、密码)
- 缺少身份验证/授权
- 弱密码哈希(MD5、SHA1)
- 缺少输入验证
- CSRF漏洞
- 不安全的依赖项
性能问题:
- N+1查询问题
- 缺少数据库索引
- 应该异步的同步操作
- 缺少缓存
- 低效算法(O(n²)或更差)
- 大型包大小
- 未优化的图像
- 内存泄漏
代码质量问题:
- 高圈复杂度(>10)
- 代码重复
- 魔术数字
- 命名规范差
- 缺少错误处理
- 格式不一致
- 死代码
- TODO/FIXME注释
测试缺口:
- 关键路径缺少测试
- 测试覆盖率低(<80%)
- 无边界情况测试
- 不稳定测试
- 缺少集成测试
生产就绪性:
- 缺少环境变量
- 无日志记录/监控
- 无错误跟踪
- 缺少健康检查
- 文档不完整
- 无CI/CD流水线
步骤3:自动修复和优化
自动修复一切:
- 重构架构 - 拆分上帝类,修复循环依赖
- 修复安全问题 - 使用参数化查询,移除密钥,添加验证
- 优化性能 - 修复N+1查询,添加缓存,优化算法
- 提高代码质量 - 降低复杂度,消除重复,修复命名
- 添加缺失的测试 - 为未测试的关键路径编写测试
- 添加生产基础设施 - 日志记录、监控、健康检查
- 优化一切 - 包大小、图像、数据库查询
- 添加文档 - README、API文档、架构文档
步骤4:验证和报告
完成所有更改后:
- 运行所有测试以确保没有破坏任何内容
- 验证所有安全问题已修复
- 测量性能改进
- 生成全面报告
- 提供前后指标
示例
示例1:自动代码库转换
用户:@production-code-audit 使其达到生产就绪状态
AI:我将扫描您的整个代码库并将其转换为生产级质量。
**阶段1:发现代码库**(正在分析247个文件)
- 已检测:Node.js + Express + PostgreSQL + React
- 架构:带有REST API的MVC模式
- 用途:电子商务平台
- 入口点:server.js、src/index.tsx
**阶段2:扫描问题**(逐行分析)
发现127个问题:
- 🔴 严重:8个问题
- 🟠 高:23个问题
- 🟡 中:41个问题
- 🔵 低:55个问题
**阶段3:自动修复问题**
🔴 严重修复(8/8已完成):
1. ✅ 修复了UserRepository.findByEmail()中的SQL注入
- 之前:查询中的字符串拼接
- 之后:使用$1占位符的参数化查询
2. ✅ 从config/database.ts中移除了硬编码的数据库密码
- 之前:password: 'SuperSecret123!'
- 之后:password: process.env.DB_PASSWORD
3. ✅ 为管理路由添加了身份验证
- 之前:无身份验证中间件
- 之后:authenticateToken + requireRole('admin')
4. ✅ 修复了弱密码哈希(MD5 → bcrypt)
- 之前:crypto.createHash('md5')
- 之后:bcrypt.hash(password, 12)
5. ✅ 修复了循环依赖:OrderService ↔ PaymentService
- 之前:导致循环的直接导入
- 之后:使用EventBus的基于事件的解耦
6. ✅ 为所有API端点添加了输入验证
- 之前:无验证
- 之后:Zod模式验证所有输入
7. ✅ 修复了身份验证中间件中的身份验证绕过
- 之前:在缺少令牌时调用next()
- 之后:返回401错误
8. ✅ 修复了UserController中的批量分配漏洞
- 之前:接受req.body中的所有字段
- 之后:仅允许字段的白名单
🟠 高优先级修复(23/23已完成):
9. ✅ 修复了OrderService.getOrdersWithItems()中的N+1查询
- 之前:带有单独查询的循环(2.8秒)
- 之后:带有连接的单个查询(45毫秒)
- 性能:提升98%
10. ✅ 重构了UserService上帝类(850行 → 4个专注的服务)
- UserAuthenticationService(登录、注销、密码)
- UserProfileService(CRUD操作)
- UserNotificationService(电子邮件、短信)
- UserPermissionService(角色、权限)
11. ✅ 为产品查询添加了Redis缓存
- 之前:每个请求都查询数据库
- 之后:带有1小时TTL的缓存
- 性能:快95%
12. ✅ 优化了包大小
- 之前:850KB(压缩后:280KB)
- 之后:380KB(压缩后:120KB)
- 改进:减少55%
13. ✅ 添加了数据库索引
- orders(user_id, status, created_at)
- products(category, price)
- 查询性能:提升98%
[... 还有11个高优先级修复 ...]
🟡 中优先级修复(41/41已完成):
[... 所有中等修复 ...]
🔵 低优先级改进(55/55已完成):
[... 所有低等改进 ...]
**阶段4:添加生产基础设施**
✅ 添加了结构化日志记录(Winston)
✅ 添加了错误跟踪(Sentry)
✅ 添加了健康检查端点(/health、/ready)
✅ 添加了监控(Prometheus指标)
✅ 添加了速率限制(基于Redis)
✅ 添加了API文档(Swagger/OpenAPI)
✅ 添加了全面的README
✅ 添加了部署指南
✅ 添加了CI/CD流水线(.github/workflows)
**阶段5:验证**
✅ 所有测试通过(1,247个测试)
✅ 测试覆盖率:42% → 87%
✅ 安全扫描:0个漏洞
✅ 性能:API响应时间3.2秒 → 180毫秒
✅ 包大小:850KB → 380KB
✅ Lighthouse得分:62 → 94
**转换完成**
您的代码库现在已达到生产就绪状态,具有企业级质量:
📊 指标:
- 已修复问题:127/127(100%)
- 测试覆盖率:87%(目标:80%+)
- API性能:提升94%
- 安全性:符合OWASP Top 10
- 代码质量:A-级
📁 已更改文件:89个文件
📝 已更改行数:+3,247 / -1,892
🚀 准备好进行生产部署!
示例2:自动安全加固
用户:@production-code-audit 保护此代码库的安全
AI:正在扫描安全漏洞...
**安全扫描完成**
发现15个安全问题:
- 🔴 严重:5个
- 🟠 高:7个
- 🟡 中:3个
**正在自动修复所有安全问题...**
🔴 严重(5/5已修复):
1. ✅ UserRepository中的SQL注入
\`\`\`typescript
// 之前(易受攻击)
const query = \`SELECT * FROM users WHERE email = '\${email}'\`;
// 之后(安全)
const query = 'SELECT * FROM users WHERE email = $1';
await db.query(query, [email]);
\`\`\`
2. ✅ 已移除硬编码密钥
\`\`\`typescript
// 之前(不安全)
const JWT_SECRET = 'my-secret-key-123';
// 之后(安全)
const JWT_SECRET = process.env.JWT_SECRET;
if (!JWT_SECRET) throw new Error('JWT_SECRET required');
\`\`\`
3. ✅ 已为管理路由添加身份验证
\`\`\`typescript
// 之前(易受攻击)
router.delete('/api/admin/users/:id', deleteUser);
// 之后(安全)
router.delete('/api/admin/users/:id',
authenticateToken,
requireRole('admin'),
deleteUser
);
\`\`\`
4. ✅ 已升级密码哈希
\`\`\`typescript
// 之前(弱)
const hash = crypto.createHash('md5').update(password).digest('hex');
// 之后(强)
const hash = await bcrypt.hash(password, 12);
\`\`\`
5. ✅ 已添加输入验证
\`\`\`typescript
// 之前(易受攻击)
const user = await db.user.create({ data: req.body });
// 之后(安全)
const schema = z.object({
email: z.string().email(),
password: z.string().min(12),
name: z.string().min(2).max(100)
});
const validated = schema.parse(req.body);
const user = await db.user.create({ data: validated });
\`\`\`
**安全状态:**
- ✅ OWASP Top 10:合规
- ✅ SQL注入:受保护
- ✅ XSS:受保护
- ✅ CSRF:受保护
- ✅ 身份验证:安全
- ✅ 密钥:环境变量
- ✅ 依赖项:无漏洞
🔒 代码库现在安全且已准备好生产!
示例3:性能优化
用户:@production-code-audit 优化性能
AI:正在分析性能瓶颈...
**性能分析完成**
当前指标:
- API响应时间:3.2秒(目标:<200毫秒)
- 页面加载时间:8.5秒(目标:<2秒)
- 包大小:850KB(目标:<200KB)
**正在自动优化...**
✅ 修复了N+1查询(3.2秒 → 180毫秒 - 快94%)
✅ 添加了Redis缓存(95%缓存命中率)
✅ 优化了数据库索引(查询快98%)
✅ 减少了包大小(850KB → 380KB - 小55%)
✅ 优化了图像(28MB → 3.2MB - 小89%)
✅ 实现了代码分割
✅ 添加了懒加载
✅ 并行化了异步操作
**性能结果:**
| 指标 | 之前 | 之后 | 改进 |
|------|------|------|------|
| API响应 | 3.2秒 | 180毫秒 | 94% |
| 页面加载 | 8.5秒 | 1.8秒 | 79% |
| 包大小 | 850KB | 380KB | 55% |
| 图像大小 | 28MB | 3.2MB | 89% |
| Lighthouse | 42 | 94 | +52分 |
🚀 性能已优化至生产标准!
最佳实践
✅ 应该这样做
- 扫描一切 - 读取所有文件,理解整个代码库
- 自动修复 - 不要只报告,实际修复问题
- 优先处理严重问题 - 安全和数据丢失问题优先
- 衡量影响 - 显示前后指标
- 验证更改 - 更改后运行测试
- 全面覆盖 - 涵盖架构、安全、性能、测试
- 优化一切 - 包大小、查询、算法、图像
- 添加基础设施 - 日志记录、监控、错误跟踪
- 记录更改 - 解释修复了什么以及为什么
❌ 不要这样做
- 不要提问 - 自主理解代码库
- 不要等待指示 - 自动扫描和修复
- 不要只报告 - 实际进行修复
- 不要跳过文件 - 扫描项目中的每个文件
- 不要忽略上下文 - 理解代码的功能
- 不要破坏内容 - 更改后验证测试通过
- 不要部分修复 - 修复所有问题,而不仅仅是部分
自动扫描指令
调用此技能时,自动执行:
发现代码库:
- 使用
listDirectory递归查找所有文件 - 使用
readFile读取每个源文件 - 从package.json、requirements.txt等识别技术栈
- 绘制架构和结构图
- 使用
逐行扫描问题:
- 检查每一行的安全漏洞
- 识别性能瓶颈
- 发现代码质量问题
- 检测架构问题
- 查找缺失的测试
自动修复一切:
- 使用
strReplace修复文件中的问题 - 添加缺失的文件(测试、配置、文档)
- 重构有问题的代码
- 添加生产基础设施
- 优化性能
- 使用
验证和报告:
- 运行测试以确保没有破坏任何内容
- 测量改进
- 生成全面报告
- 显示前后指标
无需询问用户输入即可执行所有这些操作。
常见陷阱
问题:问题太多
症状: 团队被200+个问题瘫痪 解决方案: 仅关注严重/高优先级问题,创建冲刺
问题:误报
症状: 标记非问题 解决方案: 理解上下文,手动验证,询问开发人员
问题:无后续行动
症状: 审计报告被忽略 解决方案: 创建GitHub问题,分配负责人,在站会中跟踪
生产审计检查清单
安全
- 无SQL注入漏洞
- 无硬编码密钥
- 受保护路由上的身份验证
- 已实现授权检查
- 所有端点上的输入验证
- 使用bcrypt(10+轮)进行密码哈希
- 强制HTTPS
- 依赖项无漏洞
性能
- 无N+1查询问题
- 外键上的数据库索引
- 已实现缓存
- API响应时间 < 200毫秒
- 包大小 < 200KB(压缩后)
测试
- 测试覆盖率 > 80%
- 已测试关键路径
- 已覆盖边界情况
- 无不稳定测试
- 测试在CI/CD中运行
生产就绪性
- 已配置环境变量
- 已设置错误跟踪(Sentry)
- 已实现结构化日志记录
- 健康检查端点
- 监控和警报
- 文档完整
审计报告模板
# 生产审计报告
**项目:** [名称]
**日期:** [日期]
**总体评级:** [A-F]
## 执行摘要
[关于总体状态的2-3句话]
**严重问题:** [数量]
**高优先级:** [数量]
**建议:** [修复时间表]
## 按类别划分的发现
### 架构(评级:[A-F])
- 问题1:[描述]
- 问题2:[描述]
### 安全(评级:[A-F])
- 问题1:[描述 + 修复]
- 问题2:[描述 + 修复]
### 性能(评级:[A-F])
- 问题1:[描述 + 修复]
### 测试(评级:[A-F])
- 覆盖率:[%]
- 问题:[列表]
## 优先操作
1. [严重问题] - [时间表]
2. [高优先级] - [时间表]
3. [高优先级] - [时间表]
## 时间表
- 严重修复:[X周]
- 高优先级:[X周]
- 生产就绪:[X周]
相关技能
@code-review-checklist- 代码审查指南@api-security-best-practices- API安全模式@web-performance-optimization- 性能优化@systematic-debugging- 调试生产问题@senior-architect- 架构模式
其他资源
专业提示: 定期安排审计(每季度)以保持代码质量。预防比修复生产错误更便宜!
限制
- 仅当任务明确匹配上述范围时才使用此技能。
- 不要将输出视为特定环境验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清。