feat(skills): refresh marketplace release workflows
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# AI-Proj 代码评审检查清单
|
||||
|
||||
## 后端(Go + Gin + GORM)
|
||||
|
||||
### 分层架构
|
||||
- [ ] Handler 是否直接 import `database/` 包?— 禁止,必须通过 Service 层。教训:架构退化导致循环依赖
|
||||
- [ ] 新 Handler 是否在 routes/ 中注册?— 遗漏会导致 404
|
||||
- [ ] MCP 专用 endpoint 是否包含 `/mcp/` 前缀?— 教训:缺少前缀导致 MCP bridge 404
|
||||
|
||||
### 数据库
|
||||
- [ ] 新增 Migration 文件名是否符合 `YYYYMMDDHHMMSS_xxx.up.sql` 格式?
|
||||
- [ ] Migration 是否有对应的 `.down.sql`?
|
||||
- [ ] GORM 查询是否带 `tenant_id` 过滤?(多租户安全)
|
||||
- [ ] 软删除查询是否正确使用 `Unscoped()`?— 误用导致查不到已删除数据或查出已删除数据
|
||||
|
||||
### 认证与权限
|
||||
- [ ] 新 API 是否配置了 Auth 中间件?— 遗漏导致未授权访问
|
||||
- [ ] JWT token 类型是否区分 access/refresh?— 教训:token 混用导致安全漏洞
|
||||
- [ ] bcrypt cost 是否使用 12?— 教训:默认 cost 10 导致登录失败
|
||||
|
||||
### 租户隔离(多企业安全,源自 REQ-20260711-0004)
|
||||
- [ ] 隔离/权限类修复是否枚举了威胁模型的**所有读取面**?— list 枚举 + 单条直读 + 按 ID/pattern 查 + count + 关联子查询。教训:P1 只修 list 面漏了 find_task/get-by-id 直读面,直读即绕过枚举防护,audit 才逮到高危残留
|
||||
- [ ] 同一威胁在**镜像面**是否一并处理?— 一个对象类型(task)漏,同类(project/document/manual/history)大概率同漏
|
||||
- [ ] MCP 裸 SQL(不走仓储层)是否应用 `ResolveTenantScope` / scope 片段?— SSE 面 list_tasks/list_projects 曾裸 SQL 无企业过滤
|
||||
- [ ] context 注入的是**类型化 key**(`EnterpriseIDContextKey{}`)而非字符串 key?— 字符串 key 与 `ResolveTenantScope` 读的类型化 key 不通,静默失效
|
||||
- [ ] scope 解析不出 / 依赖为 nil 时是否 **fail-closed**(空哨兵拒绝)而非跳过(退化全量)?
|
||||
- [ ] MCP endpoint 参数是否 snake_case + camelCase 双绑?— CLI 发 snake、bridge 发 camel,gin 静默忽略不匹配参数(REQ-20260711-0003)
|
||||
|
||||
### Redis
|
||||
- [ ] Redis key 是否有 TTL?— 缺少 TTL 导致内存泄露
|
||||
- [ ] Redis 不可用时是否降级到数据库?
|
||||
|
||||
## 前端(React 18 + Ant Design)
|
||||
|
||||
### Modal 安全
|
||||
- [ ] `Modal.success/info/warning/error` 之后是否有立即执行的 UI 操作?— 必须放在 `onOk` 回调中。教训:两个 Modal 同时弹出互相遮挡
|
||||
|
||||
### 状态管理
|
||||
- [ ] React Query 的 queryKey 是否正确包含所有依赖参数?— 缺少导致缓存错误
|
||||
- [ ] 列表页分页是否正确重置 page?— 教训:筛选条件变更后 page 未重置导致空页
|
||||
|
||||
### 类型安全
|
||||
- [ ] 是否有 `any` 类型?— 应使用具体类型
|
||||
- [ ] API 响应是否有 TypeScript 接口定义?
|
||||
|
||||
## 通用
|
||||
|
||||
- [ ] `.env` 等凭据文件是否被意外加入 git?
|
||||
- [ ] 是否有硬编码的 URL/IP/端口?— 应使用配置
|
||||
- [ ] 错误日志是否包含足够的上下文信息?(user_id, tenant_id, request_id)
|
||||
Reference in New Issue
Block a user