Files
zhiyin/AGENTS.md
T

57 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 开发交付流程
每次实施/开发完功能后,必须按以下步骤执行:
### 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: 完整测试
```bash
# 构建检查
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: 部署到生产
```bash
# 构建
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
```