---
name: model-design-generator
description: 根据数据需求技术规范文档生成模型设计技术规范文档
---
# 模型设计技能 (Model Design Skill)
## 技能描述
本技能根据**数据需求技术规范文档**,自动生成对应的**模型设计技术规范文档**,包含 SQL 编排步骤、目标表属性信息、目标表字段信息等完整设计内容。
**使用说明**:
- 技能加载后**自动**从 `./ai_text/` 目录选取最新的需求文档并开始处理
- 不要询问用户是否使用默认路径,直接自动处理
- 如用户主动传入文件路径或目录路径,则使用用户指定的路径
## 输入输出
### 输入
- **输入类型**:MD 文件路径(可选)
- **输入来源**:
- 默认:自动从当前目录下的 `ai_text` 文件夹选取最新的 `REQ-DATA-*.md` 文件
- 用户传入文件路径:使用指定文件
- 用户传入目录路径:从指定目录选取最新的 `REQ-DATA-*.md` 文件
- **输入示例**:
- 不传参数:自动使用 `./ai_text/REQ-DATA-*.md` 中最新的文件
- 文件路径:`202604/skills_design/v2/data/REQ-DATA-20260409142709-001.md`
- 目录路径:`202604/skills_design/v2/data/` → 自动选取最新的 `REQ-DATA-*.md` 文件
- **重要**:不要询问用户选择输入方式,直接按上述规则自动处理
### 输出
- **输出类型**:Markdown + JSON 格式文本(模型设计技术规范文档)
- **输出目录**:
- 如果用户指定了输出目录:使用用户指定的目录
- 如果用户未指定输出目录:默认为当前工作目录下的 `ai_text` 文件夹
- **输出内容**:
1. 编排目标表生成流程(SQL 编排步骤)- Markdown 表格
2. 目标表属性信息 - JSON 格式
3. 目标表字段信息 - JSON 格式
---
## 可配置参数
以下参数按**输出模板的表结构**组织,方便后续统一修改:
---
### 表 1:编排目标表生成流程 - 字段规则与配置
输出模板字段:`步骤序号 | sql 编排内容解释 | 输入源表 | 加工字段口径 | 输出表名 | 输出表字段`
| 输出字段 | 填写规则 | 默认值/配置项 | 说明 |
|----------|----------|---------------|------|
| 步骤序号 | 按 `step01`, `step02`, `step03`... 顺序编号,步骤数根据加工复杂度决定 | 无,按步骤生成 | 标识处理步骤顺序 |
| sql 编排内容解释 | 根据加工逻辑自然语言描述 | 无,AI 生成 | 描述该步骤的加工目的和操作 |
| 输入源表 | 从需求文档"所用数据源及字段"表提取 | 无,从输入提取 | 该步骤依赖的源表列表 |
| 加工字段口径 | 从需求文档"输出表字段 - 字段加工逻辑"提取并整理 | 无,从输入提取 | 字段的加工规则说明 |
| 输出表名 | 临时表:`${db_tmp_env}.${temp_table.prefix}${temp_table.suffix}`
目标表:`${db_eda_env}.${target_table.prefix}_xxx` | `db_tmp_env`(**保留占位符**)
`db_eda_env`(**保留占位符**)
`temp_table.prefix=tmp_prj004_ads_rpt`(**展开为实际值**)
`temp_table.suffix=_01,_02...`(**展开为实际值**)
`target_table.prefix=prj004_ads_rpt`(**展开为实际值**) | 最后一步输出目标表,中间步骤输出临时表;**输出时内部变量需展开,外部变量保留** |
| 输出表字段 | 从需求文档"输出表字段"提取,逗号分隔 | 无,从输入提取 | 该步骤产出的字段列表 |
---
### 表 2:目标表属性信息 - 字段规则与配置
输出模板字段:`数据目录 | 数据源 | 表编码 | 描述 | 数据源类型 | 表名称 | 数据归口条线 | 是否已上传至集团 | 是否可共享 | 技术人员 | 技术人员电话 | 维护人员 | 维护人员电话 | 管理人员 | 管理人员电话 | 增量/全量 | 是否有敏感信息`
| 输出字段 | 填写规则 | 说明 |
|----------|----------|------|
| 数据目录 | 从需求文档"输出表名 - 数据目录"提取 | 表的业务分类归属 |
| 数据源 | 从需求文档"所用数据源及字段"涉及的源表归纳 | 描述数据来源,如"投诉工单、组织机构" |
| 表编码 | 从需求文档"输出表名 - 表英文名称"提取 | 输出表的英文表名 |
| 描述 | 从需求文档"输出表名 - 表描述"提取 | 表的业务含义描述 |
| 数据源类型 | 固定值:`paimon` | 统一使用 paimon |
| 表名称 | 从需求文档"输出表名 - 表中文名称"提取 | 输出表的中文表名 |
| 数据归口条线 | 从需求文档"需求提出方"提取(如"市场部"→"市场部") | 业务归属部门 |
| 是否已上传至集团 | 固定值:`否` | - |
| 是否可共享 | 固定值:`是` | - |
| 技术人员 | 固定值:`张三` | - |
| 技术人员电话 | 固定值:`13800138000` | - |
| 维护人员 | 固定值:`李四` | - |
| 维护人员电话 | 固定值:`13900139000` | - |
| 管理人员 | 固定值:`王五` | - |
| 管理人员电话 | 固定值:`13700137000` | - |
| 增量/全量 | 根据运行频次自动映射:日/周/月 → `增量`,其他 → `全量` | - |
| 是否有敏感信息 | 固定值:`否` | - |
---
### 表 3:目标表字段信息 - 字段规则与配置
输出模板字段:`字段编码 | 字段名称 | 字段类型 | 字段分类 | 排序 | 是否自增 | 是否需脱敏 | 描述`
#### 3.1 各输出字段规则总览
| 输出字段 | 填写规则 | 说明 |
|----------|----------|------|
| 字段编码 | 从需求文档"输出表字段 - 输出字段英文名"提取 | 字段英文名,snake_case 格式 |
| 字段名称 | 从需求文档"输出表字段 - 输出字段中文名"提取 | 字段中文名 |
| 字段类型 | 按"3.2 字段类型映射"转换 | 需求类型→数据库类型 |
| 字段分类 | 按"3.3 字段分类规则"自动识别 | 维度/标识/指标/分区 |
| 排序 | 从 1 开始自增 | 连续递增,无跳号 |
| 是否自增 | 固定值:`否` | - |
| 是否需脱敏 | 固定值:`否` | - |
| 描述 | 从需求文档"字段业务含义"+"加工逻辑"整理 | 字段含义 + 加工规则说明 |
#### 3.2 字段类型映射
| 需求文档类型 | 目标数据库类型 | 说明 |
|--------------|----------------|------|
| string | `STRING` | 字符串类型 |
| bigint | `BIGINT` | 大整数 |
| int | `INT` | 整数 |
| timestamp | `TIMESTAMP` | 时间戳 |
| date | `STRING` | 日期(格式 yyyy-MM-dd) |
| double/decimal | `DECIMAL(18,2)` | 小数 |
#### 3.3 字段分类规则
| 字段分类 | 识别特征(字段名/业务含义) | 示例 |
|----------|----------------------------|------|
| 标识字段 | 含 `id`、`code`、`nbr`、唯一标识类 | `idx_nbr`、`complaint_id`、`org_id` |
| 维度字段 | 名称类 (`name`)、类型类 (`type`)、描述类 | `dept_name`、`bureau_name`、`complaint_type` |
| 指标字段 | 数值类、统计类、含 `num`/`amt`/`value`/`cnt` | `complaint_accept_num`、`idx_value` |
| 分区字段 | 含 `day_id`、`stat_date`、`dt`、`date` | `day_id`、`stat_date` |
#### 3.4 预置字段(可选追加)
**说明**:默认不追加预置字段,目标表字段与需求文档"输出表字段"保持一致。如需追加运维或分区字段,可手动控制:
| 预置类型 | 默认行为 | 说明 |
|----------|----------|------|
| 运维字段 | 不追加 | 如需追加 `etl_time`、`etl_remark`,手动添加 |
| 分区字段 | 不追加 | 如需追加 `day_id`,手动添加 |
## 处理流程
### Step 1: 解析输入并提取信息
**1.1 输入文件处理**
- 默认:自动从当前目录下的 `ai_text` 文件夹选取最新的 `REQ-DATA-*.md` 文件
- 如果用户指定了文件路径:直接使用该文件
- 如果用户指定了目录路径:从指定目录选取最新的 `REQ-DATA-*.md` 文件
- **不要询问用户选择输入方式**,直接按上述规则自动处理
**1.2 读取并解析需求文档**
读取 MD 文件,从数据需求技术规范文档中提取以下信息:
1. **需求基础信息**:需求编号、需求描述、需求提出方等
2. **输出表信息**:表名(中/英文)、数据目录、表描述
3. **输出字段信息**:字段名、字段类型、加工逻辑、来源表
4. **数据源信息**:库名、表名、字段信息
**1.3 输入/输出目录处理**
- 输入目录:默认使用当前目录下的 `ai_text` 文件夹
- 输出目录:默认使用当前目录下的 `ai_text` 文件夹
- 输入/输出目录无需用户确认,按默认路径处理
**1.4 与用户确认关键信息(多轮对话)**
在生成模型设计文档前,**必须**与用户确认以下关键信息:
```
请确认以下关键信息是否正确:
【需求编号】
- 需求编号:<需求编号>
【输出表信息】
- 目标表名:<表英文名称>
- 表中文名称:<表中文名称>
- 数据目录:<数据目录>
【字段信息】
- 字段总数: 个
- 分区字段:
- 运行频次:<日/周/月等>
以上信息是否正确?如无误请回复"正确"或"继续",如有问题请指出需要修改的内容。
```
**等待用户确认后才能继续生成。**
**输出文件命名规则**:
- 直接从输入文件名转换,将前缀 `REQ` 替换为 `MDDS`(Model Design Document Specification)
- 输入文件名:`REQ-DATA-YYYYMMDDHHMMSS-XXX.md`
- 输出文件名:`MDDS-DATA-YYYYMMDDHHMMSS-XXX.md`
- 示例:
- 输入文件:`REQ-DATA-20260316142709-001.md`
- 输出文件:`MDDS-DATA-20260316142709-001.md`
### Step 2: 生成编排步骤(对应表 1)
**在用户确认关键信息后**,根据字段加工逻辑和数据依赖关系,生成 SQL 编排步骤:
```
编排规则:
1. 识别数据依赖链:来源表 → 中间处理 → 目标表
2. 按处理复杂度拆分步骤,每步一个明确目标:
- 简单场景(2 步):step01 清洗关联 → step02 补全写入
- 中等场景(3~4 步):增加中间聚合、多表关联等步骤
- 复杂场景(5~6 步):多层嵌套加工、多次关联转换等
3. 每步骤包含:编排内容解释、输入源表、加工字段口径、输出表名、输出表字段
4. 临时表命名:`${db_tmp_env}.${temp_table.prefix}${temp_table.suffix}`
- `${db_tmp_env}` 保留占位符格式,不展开
- `${temp_table.prefix}` 展开为实际值:`tmp_prj004_ads_rpt`
- `${temp_table.suffix}` 展开为实际值:`_01`, `_02`...
- 示例输出:`${db_tmp_env}.tmp_prj004_ads_rpt_01`
5. 目标表命名:`${db_eda_env}.${target_table.prefix}_xxx`
- `${db_eda_env}` 保留占位符格式,不展开
- `${target_table.prefix}` 展开为实际值:`prj004_ads_rpt`
- `_xxx` 从需求文档"输出表名 - 表英文名称"提取(去掉库名后的表名部分)
- 示例输出:`${db_eda_env}.prj004_ads_rpt_kfb_idx_rt`
```
**字段填写说明**:
- 步骤序号:按 `step01`, `step02`, `step03`... 顺序编号,步骤数根据加工复杂度决定
- sql 编排内容解释:AI 根据加工逻辑自然语言描述
- 输入源表:从需求文档"所用数据源及字段"表提取
- 加工字段口径:从需求文档"输出表字段 - 字段加工逻辑"提取并整理
- 输出表名:最后一步输出目标表,中间步骤输出临时表
- 临时表格式:`${db_tmp_env}.tmp_prj004_ads_rpt_01`(`${db_tmp_env}`保留,内部前缀和 suffix 展开)
- 目标表格式:`${db_eda_env}.prj004_ads_rpt_xxx`(`${db_eda_env}`保留,内部前缀和表名展开)
- 输出表字段:从需求文档"输出表字段"提取,逗号分隔
**编排流程校验(重要)**:
生成编排步骤后,**必须**分步进行校验,每步校验后都要等待用户确认:
**第一步:数据依赖链校验**
```
【数据依赖链校验】
请确认以下数据依赖关系是否正确:
| 步骤 | 输入源表 | 来源说明 |
|------|----------|----------|
| step01 | [源表名称] | 外部数据源 |
| step02 | ${db_tmp_env}.tmp_prj004_ads_rpt_01 | step01 输出 |
| ... | ... | ... |
| 最后一步 | ${db_eda_env}.prj004_ads_rpt_xxx | 目标表 |
数据依赖链是否正确?如无误请回复"正确"或"继续",如有问题请指出。
```
**等待用户确认数据依赖链后,再进行第二步校验。**
**第二步:字段流转校验**
```
【字段流转校验】
请确认以下字段流转是否正确:
目标表字段总数:N 个
| 字段编码 | 字段名称 | 来源追溯 |
|----------|----------|----------|
| stat_month | 统计月份 | 从 install_dt 提取(step01 输入源表) |
| customer_id | 客户 ID | own_cust_id(step01 输入源表) |
| ... | ... | ... |
字段流转是否正确?如无误请回复"正确"或"继续",如有问题请指出。
```
**两步校验都通过后,才能继续生成目标表属性。**
**用户确认环节**:
校验通过后,分步向用户展示校验内容:
**第一步:数据依赖链确认**
```
编排步骤已生成,共 N 步:
| 步骤序号 | sql 编排内容解释 | 输入源表 | 加工字段口径 | 输出表名 | 输出表字段 |
|----|----|----|----|----|----|
| step01 | ... | ... | ... | ... | ... |
| step02 | ... | ... | ... | ... | ... |
【数据依赖链校验】
| 步骤 | 输入源表 | 来源说明 |
|------|----------|----------|
| step01 | [源表名称] | 外部数据源 |
| step02 | ${db_tmp_env}.tmp_prj004_ads_rpt_01 | step01 输出 |
| 最后一步 | ${db_eda_env}.prj004_ads_rpt_xxx | 目标表 |
数据依赖链是否正确?如无误请回复"正确"或"继续",如有问题请指出。
```
**等待用户确认数据依赖链后,再进行第二步。**
**第二步:字段流转确认**
```
【字段流转校验】
目标表字段总数:N 个
| 字段编码 | 字段名称 | 来源追溯 |
|----------|----------|----------|
| stat_month | 统计月份 | 从 install_dt 提取(step01 输入源表) |
| customer_id | 客户 ID | own_cust_id(step01 输入源表) |
| ... | ... | ... |
字段流转是否正确?如无误请回复"正确"或"继续",如有问题请指出。
```
**等待用户确认字段流转后,才能继续生成。**
### Step 3: 生成目标表属性(对应表 2)
**在数据依赖链校验和字段流转校验都通过后**,根据需求文档的表信息生成:
```
映射规则:
- 数据目录 ← 需求文档"数据目录"字段
- 数据源 ← 需求文档涉及的源表业务主题(从输入提取)
- 表编码 ← 输出表英文名(从输入提取)
- 描述 ← 需求文档表描述(从输入提取)
- 数据源类型 ← 固定值 "paimon"
- 表名称 ← 输出表中文名称(从输入提取)
- 数据归口条线 ← 需求文档"需求提出方"(如"市场部"→"市场部")
- 是否已上传至集团 ← 固定值 "否"
- 是否可共享 ← 固定值 "是"
- 技术人员/电话 ← 固定值 "张三"/"13800138000"
- 维护人员/电话 ← 固定值 "李四"/"13900139000"
- 管理人员/电话 ← 固定值 "王五"/"13700137000"
- 增量/全量 ← 日/周/月 → "增量",其他 → "全量"
- 是否有敏感信息 ← 固定值 "否"
```
**用户确认环节**:
生成目标表属性后,请用户确认:
```
目标表属性信息已生成:
```json
{
"${target_table_name}": {
"data_catalog": "...",
"data_source": "...",
...
}
}
```
以上目标表属性信息是否正确?如无误请回复"正确"或"继续"。
```
**等待用户确认后才能继续生成。**
### Step 4: 生成目标表字段(对应表 3)
**在用户确认目标表属性后**,根据需求文档的字段信息进行转换:
```
映射规则:
1. 字段编码 ← 输出字段英文名(从输入提取)
2. 字段名称 ← 输出字段中文名(从输入提取)
3. 字段类型 ← 按"3.2 字段类型映射"转换
4. 字段分类 ← 按"3.3 字段分类规则"自动分类
5. 排序 ← 从 1 开始自增
6. 是否自增 ← 固定值 "否"
7. 是否需脱敏 ← 固定值 "否"
8. 描述 ← 字段业务含义 + 加工逻辑说明(AI 整理)
9. 预置字段(默认不追加):
- 运维字段:如需追加 etl_time、etl_remark,手动添加
- 分区字段:如需追加 day_id,手动添加
```
**最终确认环节**:
生成目标表字段后,请用户进行最终确认:
```
目标表字段信息已生成,共 N 个字段:
```json
{
"${target_table_name}": [
{
"field_code": "字段英文名",
"field_name": "字段中文名",
"field_type": "STRING",
"field_category": "维度",
...
}
]
}
```
以上目标表字段信息是否正确?如无误请回复"正确"或"继续"。
```
**等待用户最终确认后,生成并输出完整的模型设计文档。**
---
## 输出模板结构
生成的模型设计文档遵循以下结构:
```markdown
# 模型设计需求模板
## 1. 编排目标表生成流程
| 步骤序号 | sql 编排内容解释 | 输入源表 | 加工字段口径 | 输出表名 | 输出表字段 |
|----|----|----|----|----|----|
| step01 | ... | ... | ... | ... | ... |
## 2. 目标表属性信息
```json
{
"${target_table_name}": {
"data_catalog": "从需求文档提取",
"data_source": "从输入提取",
"table_code": "从输入提取",
"description": "从输入提取",
"data_source_type": "paimon",
"table_name": "从输入提取",
"business_line": "从需求提出方提取",
"is_uploaded": "否",
"is_shareable": "是",
"tech_name": "张三",
"tech_phone": "13800138000",
"maint_name": "李四",
"maint_phone": "13900139000",
"mgr_name": "王五",
"mgr_phone": "13700137000",
"load_type": "增量/全量(根据运行频次映射)",
"has_sensitive": "否"
}
}
```
## 3. 目标表字段信息
```json
{
"${target_table_name}": [
{
"field_code": "字段英文名",
"field_name": "字段中文名",
"field_type": "STRING",
"field_category": "维度",
"sort_order": 1,
"is_auto_increment": "否",
"mask_required": "否",
"description": "字段业务含义和加工规则说明"
}
]
}
```
---
## 版本信息
- **技能版本**:v2.4
- **创建日期**:2026-04-08
- **更新日期**:2026-04-17
- **适用场景**:电信数据仓库 ADS 层模型设计
- **输入模板版本**:数据需求技术规范文档 v5
- **输出模板版本**:模型设计技术规范文档 v1
- **新增功能**:
- 默认自动从 `./ai_text/` 目录选取最新需求文档
- 支持目录路径输入,自动选取最新日期的需求文档
- 多轮对话引导,分步确认关键信息
- 默认输出目录为 `./ai_text/`(用户未指定时)
- 编排流程校验分步执行(数据依赖链校验 → 字段流转校验)
---
## 使用示例
### 调用方式
**场景 1:默认调用(推荐)**
技能加载后自动从 `./ai_text/` 目录选取最新的需求文档,无需用户传入参数。
```
用户:加载模型设计技能
→ 技能自动从 ./ai_text/ 选取最新的 REQ-DATA-*.md 文件
```
**场景 2:用户传入具体文件路径**
```
用户:请根据 202604/skills_design/v2/data/REQ-DATA-20260409142709-001.md 生成模型设计文档
```
**场景 3:用户传入目录路径,自动选取最新文件**
```
用户:请根据 202604/skills_design/v2/data/ 目录下的需求文档生成模型设计
```
### 多轮对话流程示例
```
【Step 1】技能解析输入文件后,输出关键信息请用户确认:
---
请确认以下关键信息是否正确:
【需求编号】
- 需求编号:REQ-DATA-20260409142709-001
【输出表信息】
- 目标表名:prj004_ads_rpt_kfb_idx_rt
- 表中文名称:投诉处理地投诉受理量表
- 数据目录:上海电信/大数据中心 - 数据安全团队/大数据中心 - 数据安全团队应用层
【字段信息】
- 字段总数:34 个
- 分区字段:day_id
- 运行频次:日
以上信息是否正确?如无误请回复"正确"或"继续",如有问题请指出需要修改的内容。
---
【用户】正确
【Step 2a】技能生成编排步骤后,先进行数据依赖链校验:
---
编排步骤已生成,共 2 步:
| 步骤序号 | sql 编排内容解释 | 输入源表 | 加工字段口径 | 输出表名 | 输出表字段 |
|----|----|----|----|----|----|
| step01 | 关联投诉源表与组织架构维表,清洗无效数据 | 投诉源表、组织机构表 | 按部门、类型分组统计 | ${db_tmp_env}.tmp_prj004_ads_rpt_01 | dept_id, dept_name, complaint_type, ... |
| step02 | 补全指标表标准字段格式,写入目标表 | ${db_tmp_env}.tmp_prj004_ads_rpt_01 | 增加统计日期、指标名称等标准字段 | ${db_eda_env}.prj004_ads_rpt_kfb_idx_rt | day_id, stat_date, dept_id, ... |
【数据依赖链校验】
| 步骤 | 输入源表 | 来源说明 |
|------|----------|----------|
| step01 | 投诉源表、组织机构表 | 外部数据源 |
| step02 | ${db_tmp_env}.tmp_prj004_ads_rpt_01 | step01 输出 |
| 最后一步 | ${db_eda_env}.prj004_ads_rpt_kfb_idx_rt | 目标表 |
数据依赖链是否正确?如无误请回复"正确"或"继续",如有问题请指出。
---
【用户】正确
【Step 2b】数据依赖链确认后,再进行字段流转校验:
---
【字段流转校验】
目标表字段总数:34 个
| 字段编码 | 字段名称 | 来源追溯 |
|----------|----------|----------|
| day_id | 统计日期 ID | 从 step01 输入源表提取 |
| stat_date | 统计日期 | 从 step01 输入源表提取 |
| dept_id | 部门 ID | 从 step01 输入源表提取 |
| ... | ... | ... |
字段流转是否正确?如无误请回复"正确"或"继续",如有问题请指出。
---
【用户】正确
【Step 3】技能生成目标表属性后,请用户确认:
---
目标表属性信息已生成:
```json
{
"prj004_ads_rpt_kfb_idx_rt": {
"data_catalog": "上海电信/大数据中心 - 数据安全团队/大数据中心 - 数据安全团队应用层",
"data_source": "投诉工单、组织机构",
"table_code": "prj004_ads_rpt_kfb_idx_rt",
"description": "投诉处理地投诉受理量表",
"data_source_type": "paimon",
"table_name": "投诉处理地投诉受理量表",
"business_line": "市场部",
"load_type": "增量"
...
}
}
```
以上目标表属性信息是否正确?如无误请回复"正确"或"继续"。
---
【用户】正确
【Step 4】技能生成目标表字段后,请用户进行最终确认:
---
目标表字段信息已生成,共 34 个字段:
```json
{
"prj004_ads_rpt_kfb_idx_rt": [
{
"field_code": "day_id",
"field_name": "统计日期 ID",
"field_type": "STRING",
"field_category": "分区",
...
}
...
]
}
```
以上目标表字段信息是否正确?如无误请回复"正确"或"继续"。
---
【用户】正确
【最终输出】技能生成完整的模型设计技术规范文档,输出到 ./ai_text/MDDS-DATA-20260409142709-001.md
```
### 输出示例
技能将输出完整的模型设计技术规范文档,包含编排步骤、表属性、字段设计等。
---
## 注意事项
1. **多轮对话确认**:生成过程中必须分步与用户确认关键信息,用户确认后才能继续下一步
- Step 1 后:确认需求编号、输出表信息、字段信息
- Step 2a 后:确认数据依赖链校验
- Step 2b 后:确认字段流转校验
- Step 3 后:确认目标表属性信息
- Step 4 后:确认目标表字段信息
2. **默认输入目录**:默认使用当前目录下的 `ai_text` 文件夹,自动选取最新的 `REQ-DATA-*.md` 文件
- 输入路径示例:`./ai_text/REQ-DATA-20260409142709-001.md`
3. **默认输出目录**:默认使用当前目录下的 `ai_text` 文件夹
- 输出路径示例:`./ai_text/MDDS-DATA-20260409142709-001.md`
- 输入输出目录无需用户确认
4. **编排流程校验**:Step 2 生成编排步骤后,必须分两步执行校验
- Step 2a:数据依赖链校验(逐项展示步骤输入来源,用户确认)
- Step 2b:字段流转校验(逐项展示字段来源追溯,用户确认)
- 两步校验都通过后,才能继续生成目标表属性和字段信息
5. **自动选取最新文件**:按文件名中的 `YYYYMMDDHHMMSS` 部分排序,选取最新的 `REQ-DATA-*.md` 文件
6. **环境变量占位符**:输出表名中的 `${db_tmp_env}` 和 `${db_eda_env}` 需保留占位符格式,运行时由外部环境替换
7. **内部配置变量展开**:`${temp_table.prefix}`、`${temp_table.suffix}`、`${target_table.prefix}` 需展开为实际值输出
- `temp_table.prefix` → `tmp_prj004_ads_rpt`
- `temp_table.suffix` → `_01`, `_02`...(按步骤序号)
- `target_table.prefix` → `prj004_ads_rpt`
8. **输出表名示例**:
- 临时表正确输出:`${db_tmp_env}.tmp_prj004_ads_rpt_01` ❌ 错误:`${db_tmp_env}.${temp_table.prefix}${temp_table.suffix}`
- 目标表正确输出:`${db_eda_env}.prj004_ads_rpt_kfb_idx_rt` ❌ 错误:`${db_eda_env}.${target_table.prefix}_kfb_idx_rt`
9. **输出文件命名**:直接从输入文件名转换,将 `REQ` 前缀替换为 `MDDS`
- 输入文件:`REQ-DATA-20260316142709-001.md` → 输出文件:`MDDS-DATA-20260316142709-001.md`
10. **字段排序**:从 1 开始连续自增,确保无跳号
11. **命名规范**:所有表名、字段名使用 snake_case 格式
12. **字段一致性**:目标表字段默认与需求文档"输出表字段"保持一致,不追加额外字段
13. **预置字段**:如需追加运维字段 (etl_time、etl_remark) 或分区字段 (day_id),需将对应配置项设为 `true`
---