# Skill: 文档漂移校验

在文档更新后验证文档与代码的一致性，确保文档更新没有遗漏或错误。

## 适用场景

- `/doc-module` 执行后（后置校验）
- 代码变更后更新文档时
- 需要验证文档准确性时

## 执行步骤

1. 读取刚更新的 `console/.claude/docs/{module}/module.md`
2. 从实际代码中重新抽取关键信息：
   - 后端 API 端点（从 Controller 注解中提取）
   - Entity 字段（从 Entity 类中提取）
   - 前端 service 函数（从 services/*.ts 中提取）
3. 对比文档与代码，标记不一致项：
   - 文档中记录的 API 是否与代码一致
   - 文档中记录的 Entity 字段是否完整
   - 文档中记录的 Service 函数是否准确
   - 是否有代码中存在但文档中遗漏的内容
4. 生成验证报告，确认文档质量

## 输出文件

`console/.claude/docs/{module}/drift-check-report.md`（临时文件，验证通过后可删除）

## 输出模板

```markdown
---
module: {模块名}
checked: {YYYY-MM-DD HH:mm:ss}
status: {pass/warning/fail}
---

# {模块名} 文档漂移校验报告

## 校验结果

**状态**: {pass/warning/fail}

- pass: 文档与代码完全一致，文档更新成功
- warning: 发现少量不一致，建议修复
- fail: 发现严重不一致，必须重新执行 `/doc-module`

## 后端 API 校验

### ✅ 文档中正确记录的 API

| 方法 | 路径 | Controller | 文档位置 |
|------|------|-----------|---------|
| POST | /xxx/create | XxxController | module.md:L42 |

### ❌ 文档中遗漏的 API

| 方法 | 路径 | Controller | 建议 |
|------|------|-----------|------|
| POST | /xxx/new-api | XxxController | 补充到文档 |

### ⚠️ 文档中记录错误的 API

| 文档中的路径 | 实际代码中的路径 | Controller | 建议 |
|------------|----------------|-----------|------|
| /tool/create | /tool/create-tool | ToolBoxController | 修正文档 |

## 数据模型校验

### ✅ 文档中正确记录的 Entity

| Entity | 表名 | 关键字段数量 | 文档位置 |
|--------|------|------------|---------|

### ❌ 文档中遗漏的 Entity

| Entity | 表名 | 建议 |
|--------|------|------|

### ⚠️ 文档中字段不完整的 Entity

| Entity | 文档中的字段数 | 实际代码中的字段数 | 遗漏的字段 | 建议 |
|--------|--------------|------------------|-----------|------|

## 前端 Service 校验

### ✅ 文档中正确记录的 Service 函数

| 函数名 | 文件 | 对应后端 API | 文档位置 |
|--------|------|-------------|---------|

### ❌ 文档中遗漏的 Service 函数

| 函数名 | 文件 | 对应后端 API | 建议 |
|--------|------|-------------|------|

### ⚠️ 文档中记录错误的 Service 函数

| 文档中的函数名 | 实际代码中的函数名 | 文件 | 建议 |
|--------------|------------------|------|------|

## 修复建议

### 高优先级（必须修复）

1. {具体修复建议}
2. {具体修复建议}

### 低优先级（建议修复）

1. {具体修复建议}
2. {具体修复建议}

## 下一步行动

- [ ] 如果状态为 fail，重新执行 `/doc-module` 修复文档
- [ ] 如果状态为 warning，手动修正文档中的错误
- [ ] 如果状态为 pass，文档更新完成，可以提交
```

## 约束

- 必须读取实际代码，不要猜测
- API 路径必须从 Controller 注解中提取（@RequestMapping, @PostMapping, @GetMapping 等）
- Entity 字段必须从 Entity 类中提取（@TableField, @TableId 等）
- 前端 service 函数必须从 services/*.ts 中提取（export function xxx）
- 对比时忽略大小写和下划线/驼峰差异
- 重点检查文档是否遗漏了代码中存在的内容
- 中文为主，代码路径和技术术语保留英文

## 与 `/context-check` 的区别

| 维度 | `/context-check` | `/drift-check` |
|------|-----------------|---------------|
| 执行时机 | 开发前（前置校验） | 文档更新后（后置校验） |
| 校验对象 | 旧文档 vs 代码 | 新文档 vs 代码 |
| 目的 | 检查旧文档是否可信 | 验证新文档是否准确 |
| 重点 | 发现文档漂移 | 发现文档遗漏或错误 |
| 后续动作 | 决定是否需要更新文档 | 决定是否需要重新生成文档 |
