# DDS-to-Skill 转换实例：工单流程模块

本文展示了一个从 DDS 片段到完整 Skill 的转换过程。

---

## 1. DDS 原文片段（模拟）

```markdown
## 5. 工单管理模块（rmdc-work-procedure）

### 5.1 模块职责
负责工单生命周期管理，包括创建、审批、执行、完成等流转。

### 5.2 数据库设计

#### workflows 主表
| 字段 | 类型 | 约束 | 说明 |
|------|------|------|------|
| id | BIGINT | PK, AUTO_INCREMENT | 工单ID |
| type | VARCHAR(50) | NOT NULL | 工单类型 |
| status | VARCHAR(30) | NOT NULL, DEFAULT 'pending' | 当前状态 |
| creator_id | BIGINT | NOT NULL, FK → users.id | 创建人 |
| assignee_id | BIGINT | FK → users.id | 处理人 |
| version | INT | NOT NULL, DEFAULT 1 | 乐观锁版本号 |

### 5.3 状态机
- pending → submitted → under_review → approved/rejected
- submitted → revoked（创建人可撤销）
- 终态：approved, rejected, revoked, closed

### 5.4 API 接口
- POST /api/workflow/create - 创建工单
- POST /api/workflow/transition - 状态转换
- POST /api/workflow/callback - 业务回调
- POST /api/workflow/list - 工单列表
```

---

## 2. 转换步骤演示

### 步骤 1：模块识别

| 模块 | 职责 | 技术 | Skill 类型 |
|------|------|------|-----------|
| rmdc-work-procedure | 工单生命周期管理 | Go + Gin + PostgreSQL | 模块级 |

### 步骤 2：设计要素抽取

从 DDS 中识别到 4 类要素：
- ✅ API/接口 → 4 个 API 端点
- ✅ DB Schema → workflows 主表
- ✅ 状态机 → 5 个状态 + 转换规则
- ❌ 事件/Topic → DDS 未提及 → 标注 [TBD]
- ❌ 授权模型 → DDS 未提及 → 标注 [TBD]
- ✅ 依赖关系 → 业务模块回调

### 步骤 3：reference 文件生成

```
reference/
├── 01-data-model/
│   └── db-schema.md          # workflows 表结构
├── 02-api-design/
│   └── apis.md                # 4 个 API 定义
├── 03-workflow-engine/
│   └── state-machine.md       # 状态机定义
└── 04-integration/
    └── dependencies.md        # 回调接口
```

### 步骤 4：SKILL.md 关键段落

```markdown
## Pitfalls

1. **版本号遗漏**: 更新工单时忘记传递 `version` 字段，导致乐观锁失效
   （参考 `reference/01-data-model/db-schema.md` 中 workflows.version 字段定义）
2. **终态误转换**: 对 approved/rejected/revoked/closed 状态尝试非法转换
   （参考 `reference/03-workflow-engine/state-machine.md` 中的终态定义）
3. **事件推送遗漏**: 状态变更后忘记通知相关方 [TBD - DDS 未定义事件机制]
```

---

## 3. 自检结果

| # | 检查项 | 结果 | 说明 |
|---|-------|------|------|
| S4 | SKILL.md 存在 | ✅ PASS | |
| R1 | 设计要素 ≥ 3 类 | ✅ PASS | API + DB + 状态机 + 依赖 = 4 类 |
| R5 | TBD 标注 | ✅ PASS | 事件和授权标注了 [TBD] |
| C7 | Pitfalls 引用 reference | ✅ PASS | 2 条引用了 reference 路径 |
| R6 | 无脑补 | ✅ PASS | 缺失内容均标注 [TBD] |
