Files
zhiyin/AGENTS.md
T

2.1 KiB
Raw Blame History

开发交付流程

每次实施/开发完功能后,必须按以下步骤执行:

Step 1: 代码评审

  • 检查变更是否符合现有代码模式(schema、service、controller、module 的结构一致性)
  • 检查是否有未使用的变量、import、参数
  • 检查命名规范是否与项目一致
  • 检查是否有重复代码或可复用逻辑

Step 2: 安全评审

  • 注入防护:检查所有外部输入(请求 body、query、params)是否有注入风险(HTML、Shell、NoSQL
  • 认证/授权:检查端点是否正确地加了 JWT guard 或 @Public();管理端接口是否有 AdminGuard
  • 并发安全:检查所有修改用户额度/积分的操作是否使用原子操作(findOneAndUpdate + $inc),而非 read-modify-write
  • 敏感信息:检查是否误将密钥、凭据、token 暴露到响应或日志中
  • XSS/CSRF:检查用户内容输出到 HTML/PDF 时是否做了转义

Step 3: 性能优化

  • 检查是否有 N+1 查询(循环内查数据库),应使用批量查询或聚合
  • 检查大表查询是否有索引覆盖
  • 检查是否有不必要的 .lean() 缺失(读操作用 exec() 但不需要 mongoose document 方法时应加 .lean()
  • 检查是否有内存泄漏风险(如 puppeteer browser 未在 finally 中 close
  • Throttler/限流是否合理

Step 4: 完整测试

# 构建检查
cd /root/opencode-workspace/zhiyin/backend && npx nest build 2>&1

# 单元测试
npm test -- --forceExit --detectOpenHandles 2>&1

# 如果有变更的模块,验证关键 endpoint curl 可访问

Step 5: 同步修复

  • 上述步骤发现的问题必须修复后再发布
  • 修复后重新执行 Step 4 验证构建通过

Step 6: 部署到生产

# 构建
cd /root/opencode-workspace/zhiyin/backend && npx nest build

# 同步到生产目录
cp -rf dist/* /www/wwwroot/server/yzr-yhl/backend/dist/

# 复制证书(postbuild 替代)
cp -r certs /www/wwwroot/server/yzr-yhl/backend/dist/src/certs

# 重启
pm2 restart yhl-backend

# 验证
sleep 3 && curl -s http://localhost:3002/api/share/visit/test?visitorId=v