# AI 开发检查清单（AI Development Checklist）

> **模块**: 05_AI - AI 开发检查清单  
> **更新日期**: 2026-03-20  
> **用途**: AI 开发各阶段的强制检查项

---

## 📋 使用说明

AI 在开发过程中必须在以下阶段执行检查清单：

1. **开发前** - 任务领取和规划阶段
2. **开发中** - 编码实现阶段
3. **提交前** - 代码提交前验证
4. **交付后** - 任务完成确认

---

## 🔵 开发前检查清单（Pre-Development Checklist）

### 1. 任务理解

- [ ] **已阅读任务文档**
  - 任务 ID 和描述
  - 验收标准
  - 依赖关系

- [ ] **已理解业务逻辑**
  - 业务闭环流程
  - 状态机流转
  - 权限要求

- [ ] **已确认技术方案**
  - 技术栈选择
  - 架构设计
  - 接口定义

### 2. 文档查阅

- [ ] **已查阅相关文档**
  - [ ] `.trae/rules/project-specific-rules.md` - 硬性约束
  - [ ] `docs/05_AI/02_Rules.md` - AI 开发规则
  - [ ] `docs/05_AI/04_Quick_Reference_Card.md` - 快速参考
  - [ ] `docs/01_Architecture/13_TypeScript_Standards.md` - TypeScript 规范
  - [ ] `docs/01_Architecture/15_Schema_Driven_Development.md` - Schema 驱动

- [ ] **已理解领域模型**
  - 实体关系
  - 数据模型
  - 业务规则

### 3. 任务领取

- [ ] **已检查任务状态**
  - 任务状态为 `pending`
  - 无其他 Agent 占用

- [ ] **已声明占用**
  - 在 Task_Overview.md 声明占用
  - 声明涉及文件
  - 声明预计完成时间

- [ ] **已领取完整任务包**
  - 领取同一闭环的完整任务链
  - 最小粒度不少于 2 个相关任务

---

## 🟢 开发中检查清单（During Development Checklist）

### 1. TypeScript 类型安全

- [ ] **类型定义**
  - [ ] 所有函数已声明返回类型
  - [ ] 所有变量已声明类型
  - [ ] 所有参数已声明类型
  - [ ] 禁止使用 `any` 类型

- [ ] **Schema 驱动**
  - [ ] 类型从 Schema（zod）推导
  - [ ] 所有外部数据经过 Schema 验证
  - [ ] 类型守卫已实现

- [ ] **类型导入**
  - [ ] 所有类型从 `/types` 目录导入
  - [ ] 禁止各模块重复定义类型

### 2. 逻辑集中化

- [ ] **Service 层**
  - [ ] 所有业务逻辑在 Service 层
  - [ ] 状态流转在 Service 层
  - [ ] 多模块协同在 Service 层

- [ ] **Controller 层**
  - [ ] 只负责请求/响应
  - [ ] 只负责权限校验
  - [ ] 无业务逻辑

- [ ] **Repository 层**
  - [ ] 只负责数据库 CRUD
  - [ ] 无业务逻辑

### 3. 数据安全

- [ ] **数据库**
  - [ ] 表名以 `cf_` 开头
  - [ ] 金额字段使用 `decimal(10,2)`
  - [ ] 复杂查询通过 `EXPLAIN` 校验

- [ ] **五元组**
  - [ ] tenantId 已填写
  - [ ] shopId 已填写
  - [ ] taskId 已填写
  - [ ] traceId 已填写
  - [ ] businessType 已填写

### 4. 业务规则

- [ ] **状态机**
  - [ ] 状态流转遵循 STATE_MACHINE
  - [ ] 非法状态流转已拦截

- [ ] **权限校验**
  - [ ] 使用 `authorize()` 中间件
  - [ ] 数据隔离已实现

- [ ] **利润红线**
  - [ ] B2B 利润率 ≥ 15%
  - [ ] B2C 利润率 ≥ 20%

### 5. 代码质量

- [ ] **命名规范**
  - [ ] 服务类使用 `Service` 后缀
  - [ ] 控制器类使用 `Controller` 后缀
  - [ ] 仓库类使用 `Repository` 后缀

- [ ] **注释规范**
  - [ ] 每个服务类包含完整 JSDoc
  - [ ] 每个方法包含参数和返回值说明
  - [ ] 关键业务逻辑已添加注释
  - [ ] 任务 ID 已标注

- [ ] **文件规模**
  - [ ] 单文件 ≤ 1500 行
  - [ ] 单函数 ≤ 120 行
  - [ ] UI 组件 ≤ 300 行

---

## 🟡 提交前检查清单（Pre-Commit Checklist）

### 1. 编译检查

- [ ] **TypeScript 编译**
  ```bash
  npm run typecheck
  ```
  - [ ] 无类型错误
  - [ ] 无编译警告

- [ ] **ESLint 检查**
  ```bash
  npm run lint
  ```
  - [ ] 无 ESLint 错误
  - [ ] 已修复可自动修复的问题

### 2. 测试检查

- [ ] **单元测试**
  ```bash
  npm run test
  ```
  - [ ] 所有测试通过
  - [ ] 测试覆盖率达标

- [ ] **集成测试**
  - [ ] 核心流程测试通过
  - [ ] 异常流程测试通过

### 3. 代码审查

- [ ] **自我审查**
  - [ ] 业务逻辑正确性
  - [ ] 状态机遵循情况
  - [ ] 权限校验完整性
  - [ ] 错误处理完整性
  - [ ] 性能优化
  - [ ] 安全漏洞

- [ ] **类型安全审查**
  - [ ] 无 `any` 类型
  - [ ] 所有函数有返回类型
  - [ ] 所有 API 有类型定义
  - [ ] 类型从 Schema 推导

### 4. 文档同步

- [ ] **文档更新**
  - [ ] API 文档已更新
  - [ ] 数据库文档已更新
  - [ ] 任务状态已更新

---

## 🟠 交付后检查清单（Post-Delivery Checklist）

### 1. 任务完成确认

- [ ] **功能验证**
  - [ ] 功能测试通过
  - [ ] 符合验收标准
  - [ ] 无回归问题

- [ ] **文档同步**
  - [ ] 任务状态更新为 `completed`
  - [ ] 相关文档已更新
  - [ ] 注释和 JSDoc 完整

### 2. 资源释放

- [ ] **占用释放**
  - [ ] Task_Overview.md 占用声明已清除
  - [ ] 文件占用已释放

- [ ] **知识沉淀**
  - [ ] 遇到的问题已记录
  - [ ] 解决方案已文档化

### 3. 质量确认

- [ ] **代码质量**
  - [ ] `GetDiagnostics` 无错误
  - [ ] 代码审查通过
  - [ ] 测试覆盖率达标

- [ ] **部署标准**
  - [ ] 数据库表已初始化
  - [ ] 核心逻辑已闭环
  - [ ] 最小冒烟测试已补充

---

## 🔴 禁止行为清单（Forbidden Actions）

### TypeScript 相关

- ❌ 使用 `any` 类型
- ❌ 函数不声明返回类型
- ❌ API 调用不定义类型
- ❌ 手动定义类型（不从 Schema 推导）
- ❌ 各模块重复定义类型

### 架构相关

- ❌ Controller 中写业务逻辑
- ❌ 前端直接写业务规则
- ❌ 直接操作数据库（不通过 Repository）
- ❌ 跨 Domain 直接操作数据库模型
- ❌ 跳过权限校验

### 数据相关

- ❌ 表名不以 `cf_` 开头
- ❌ 金额字段使用 float/double
- ❌ 代码中执行 `DROP/TRUNCATE`
- ❌ 五元组未填写

### 业务相关

- ❌ Agent 直接修改核心业务数据
- ❌ B2B 利润率 < 15% 报价
- ❌ B2C 利润率 < 20% 无预警
- ❌ 非法状态流转

### 协作相关

- ❌ 单独领取任务包内的部分任务
- ❌ 不声明占用直接开始开发
- ❌ 跨模块同时占用多个任务包
- ❌ 占用超过 24 小时未释放

---

## 🟣 快速检查命令

```bash
# TypeScript 类型检查
npm run typecheck

# ESLint 检查
npm run lint

# ESLint 自动修复
npm run lint:fix

# 单元测试
npm run test

# 测试覆盖率
npm run test:coverage

# 完整验证
npm run validate

# 构建
npm run build
```

---

## 📊 检查清单执行记录

AI 在每个阶段完成后，应记录检查清单执行情况：

```markdown
## 检查清单执行记录

**任务 ID**: BE-U001
**Agent**: AI-Backend-1
**开始时间**: 2026-03-20 10:00

### 开发前检查
- [x] 已阅读任务文档
- [x] 已理解业务逻辑
- [x] 已声明占用
- 执行时间: 2026-03-20 10:05

### 开发中检查
- [x] TypeScript 类型安全
- [x] 逻辑集中化
- [x] 数据安全
- [x] 业务规则
- [x] 代码质量
- 执行时间: 2026-03-20 12:00

### 提交前检查
- [x] TypeScript 编译
- [x] ESLint 检查
- [x] 单元测试
- [x] 代码审查
- 执行时间: 2026-03-20 13:00

### 交付后检查
- [x] 功能验证
- [x] 文档同步
- [x] 资源释放
- 执行时间: 2026-03-20 14:00

**完成时间**: 2026-03-20 14:00
**状态**: ✅ 完成
```

---

*本检查清单为强制执行项，AI 必须在每个阶段完成所有检查。*
