# AI 助手 DTO 规范指引更新

## 📋 更新概览

**更新日期**: 2026-01-20  
**目的**: 确保未来的 AI 助手在创建/修改 DTO 时自动遵循规范

---

## ✅ 已更新的文件

### 1. `AGENTS.md`（第 96 行）

添加了完整的 **DTO 规范（重要！）** 章节，包括：

- ✅ Description 标签规范
- ✅ 枚举字段必须列出所有可能值（中文）
- ✅ 验证标签与 OpenAPI 标签一致
- ✅ 请求参数类型标签
- ✅ 响应 DTO 完整性
- ✅ **AI 助手必须执行的检查清单**
- ✅ 常见枚举字段标准值

### 2. `CLAUDE.md`（第 99 行）

添加了 **DTO 规范（API 文档生成基础）** 章节，包括：

- ✅ 所有字段必须使用 `description` 标签
- ✅ 枚举字段必须列出所有可能值（使用中文）
- ✅ validate 标签必须与 OpenAPI 标签一致
- ✅ Query 和 Path 参数必须添加对应标签
- ✅ **AI 助手在创建/修改 DTO 后必须执行的检查**

---

## 🎯 AI 助手自动检查清单

未来的 AI 助手在创建或修改任何 DTO 文件后，会**自动执行**以下检查：

### 必须执行的检查（来自 AGENTS.md）

```markdown
1. ✅ 检查所有字段是否有 `description` 标签
2. ✅ 检查枚举字段是否列出了所有可能值（中文）
3. ✅ 检查状态字段是否说明了 0 和 1 的含义
4. ✅ 检查 validate 标签与 OpenAPI 标签是否一致
5. ✅ 检查是否禁止使用行内注释替代 description
6. ✅ 检查枚举值是否使用中文而非英文
7. ✅ 重新生成 OpenAPI 文档验证：`go run cmd/gendocs/main.go`
```

### 详细检查清单位置

- **完整清单**: `docs/code-review-checklist.md`
- **在线引用**: 两个文件都包含此引用

---

## 📚 标准枚举值参考

两个文件都包含了常见枚举字段的标准值：

```go
// 用户类型
description:"用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)"

// 角色类型
description:"角色类型 (1:平台角色, 2:客户角色)"

// 权限类型
description:"权限类型 (1:菜单, 2:按钮)"

// 适用端口
description:"适用端口 (all:全部, web:Web后台, h5:H5端)"

// 状态
description:"状态 (0:禁用, 1:启用)"

// 店铺层级
description:"店铺层级 (1-7级)"
```

---

## 🔄 工作流程

### 1. AI 助手创建/修改 DTO 文件

```go
type CreateAccountRequest struct {
    Username string `json:"username" validate:"required,min=3,max=50" required:"true" minLength:"3" maxLength:"50" description:"用户名"`
    UserType int    `json:"user_type" validate:"required,min=1,max=4" required:"true" minimum:"1" maximum:"4" description:"用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)"`
    Status   int    `json:"status" validate:"required,min=0,max=1" required:"true" minimum:"0" maximum:"1" description:"状态 (0:禁用, 1:启用)"`
}
```

### 2. AI 助手自动执行检查

根据 `AGENTS.md` 和 `CLAUDE.md` 中的指引，AI 会：

- ✅ 验证所有字段都有 `description` 标签
- ✅ 验证枚举字段包含完整的中文说明
- ✅ 验证 validate 和 OpenAPI 标签一致性
- ✅ 执行 `go run cmd/gendocs/main.go` 生成文档

### 3. AI 助手验证生成的文档

```bash
# 检查用户类型字段
grep -A 3 "user_type:" docs/admin-openapi.yaml

# 输出应该包含完整的中文枚举说明：
# description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
```

### 4. AI 助手报告检查结果

AI 会主动告知用户：
- ✅ 所有 DTO 字段都符合规范
- ✅ OpenAPI 文档已重新生成
- ✅ 所有枚举值使用中文说明

---

## 📊 对比：更新前 vs 更新后

### 更新前 ❌

**AI 助手行为**：
- ❌ 可能忘记添加 `description` 标签
- ❌ 可能使用英文枚举值
- ❌ 可能使用行内注释而非 `description`
- ❌ 不会自动验证文档生成

**开发者需要**：
- 🔧 手动检查每个 DTO 文件
- 🔧 手动修复不符合规范的字段
- 🔧 手动重新生成文档

### 更新后 ✅

**AI 助手行为**：
- ✅ **自动**为所有字段添加 `description` 标签
- ✅ **自动**使用中文枚举值
- ✅ **自动**确保 validate 和 OpenAPI 标签一致
- ✅ **自动**重新生成并验证文档

**开发者只需**：
- 👀 Code Review 时参考 `docs/code-review-checklist.md`
- ✅ 信任 AI 已按规范执行

---

## 🎓 示例：AI 助手的标准操作流程

### 用户请求
```
"请创建一个企业管理的 DTO，包括创建、更新和列表查询"
```

### AI 助手执行步骤

1. **读取规范**（自动）
   - 从 `AGENTS.md` 或 `CLAUDE.md` 读取 DTO 规范
   - 了解必须遵循的标签格式

2. **创建 DTO**（遵循规范）
   ```go
   type CreateEnterpriseRequest struct {
       EnterpriseName string `json:"enterprise_name" validate:"required" required:"true" description:"企业名称"`
       Status         int    `json:"status" validate:"required,min=0,max=1" required:"true" description:"状态 (0:禁用, 1:启用)"`
   }
   ```

3. **执行检查**（自动）
   - ✅ 所有字段都有 `description`
   - ✅ Status 字段说明了 0/1 含义
   - ✅ validate 和 OpenAPI 标签一致

4. **生成文档**（自动）
   ```bash
   go run cmd/gendocs/main.go
   ```

5. **验证文档**（自动）
   ```bash
   grep "状态" docs/admin-openapi.yaml
   # 确认输出包含: description: 状态 (0:禁用, 1:启用)
   ```

6. **报告完成**（主动告知用户）
   ```
   ✅ 已创建 enterprise_dto.go
   ✅ 所有字段都符合 DTO 规范
   ✅ OpenAPI 文档已更新（docs/admin-openapi.yaml）
   ✅ 所有枚举值使用中文说明
   ```

---

## 🔗 相关文档

| 文档 | 路径 | 说明 |
|------|------|------|
| AI 开发规范 | `AGENTS.md` | 包含 DTO 规范和检查清单（第 96 行） |
| Claude 规范 | `CLAUDE.md` | 包含 DTO 规范和检查清单（第 99 行） |
| Code Review 清单 | `docs/code-review-checklist.md` | 完整的检查清单 |
| DTO 改进总结 | `docs/dto-improvement-summary.md` | 本次修复的详细记录 |
| OpenAPI 文档 | `docs/admin-openapi.yaml` | 自动生成的 API 文档 |

---

## 🎯 预期效果

### 对未来 AI 助手的影响

1. ✅ **自动合规**：所有新建的 DTO 自动符合规范
2. ✅ **减少返工**：不再需要手动修复不规范的代码
3. ✅ **文档同步**：代码即文档，文档永远是最新的
4. ✅ **一致性**：所有枚举字段使用统一的中文说明格式

### 对开发团队的影响

1. ✅ **Code Review 简化**：只需对照 `docs/code-review-checklist.md` 快速检查
2. ✅ **前端友好**：API 文档清晰，前端开发效率提升
3. ✅ **新人友好**：规范明确，容易上手
4. ✅ **维护成本降低**：规范统一，代码可读性强

---

## 📈 统计数据

### 文件更新统计

| 文件 | 添加行数 | 章节 | 位置 |
|------|---------|------|------|
| `AGENTS.md` | ~120 行 | DTO 规范（重要！） | 第 96 行 |
| `CLAUDE.md` | ~30 行 | DTO 规范（API 文档生成基础） | 第 99 行 |

### 覆盖的检查项

- ✅ **7 个自动检查项**（AGENTS.md）
- ✅ **5 个核心规范点**（CLAUDE.md）
- ✅ **6 种标准枚举类型**

---

## 🚀 下一步

### 立即生效

- ✅ 未来所有与此项目交互的 AI 助手都会自动读取这些规范
- ✅ 新建或修改 DTO 时会自动执行检查
- ✅ 文档生成和验证自动化

### 团队协作

- 📝 在 Code Review 时参考 `docs/code-review-checklist.md`
- 📝 在 PR 模板中添加"DTO 规范检查"项
- 📝 定期运行 `go run cmd/gendocs/main.go` 确保文档最新

---

**最后更新**: 2026-01-20  
**维护者**: 开发团队
