name: production-code-audit description: “自动深度扫描整个代码库,理解架构和模式,然后系统地将代码转换为生产级、企业级专业质量,并进行优化”
生产代码审计
概述
自动分析整个代码库以理解其架构、模式和目的,然后系统地将代码转换为生产级、企业级专业代码。这个技能执行深度行扫描,识别安全性、性能、架构和质量方面的所有问题,然后提供全面修复以满足企业标准。
何时使用此技能
- 当用户说“使其生产就绪”时使用
- 当用户说“审计我的代码库”时使用
- 当用户说“使其专业/企业级”时使用
- 当用户说“优化一切”时使用
- 当用户需要企业级质量时使用
- 当准备生产部署时使用
- 当代码需要满足公司标准时使用
工作原理
步骤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%改进
[... 更多高优先级修复 ...]
🟡 中优先级修复(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]);
- ✅ 移除硬编码密钥
// 之前(不安全)
const JWT_SECRET = 'my-secret-key-123';
// 之后(安全)
const JWT_SECRET = process.env.JWT_SECRET;
if (!JWT_SECRET) throw new Error('JWT_SECRET必需');
- ✅ 向管理路由添加认证
// 之前(易受攻击)
router.delete('/api/admin/users/:id', deleteUser);
// 之后(安全)
router.delete('/api/admin/users/:id',
authenticateToken,
requireRole('admin'),
deleteUser
);
- ✅ 升级密码哈希
// 之前(弱)
const hash = crypto.createHash('md5').update(password).digest('hex');
// 之后(强)
const hash = await bcrypt.hash(password, 12);
- ✅ 添加输入验证
// 之前(易受攻击)
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:性能优化
```markdown
用户: @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- 架构模式
额外资源
专业提示: 安排定期审计(季度)以保持代码质量。预防比修复生产bug更便宜!