8.9 KiB
8.9 KiB
name, description
| name | description |
|---|---|
| sn-domainmap | 从业务文档(手册/流程/PRD/数据字典)提取结构化领域知识图谱(实体、流程、规则、术语表,D4 含页面流程、配置影响、运行态采集与 CodeMap 深度交叉引用)。当用户要求"分析业务文档"、"提取业务流程"、"创建 domainmap/业务知识图谱"或输入 /sn-domainmap、/domainmap 时使用。 |
Domain Map 业务领域知识图谱生成 (sn-domainmap)
功能概述
从业务文档中提取结构化的领域知识:
基础能力(D1–D3,executor 已实现):
- 业务实体:核心业务对象及其状态机定义
- 业务流程:工作流、阶段、角色、Mermaid 图
- 业务规则:校验规则、计算规则、流转规则
- 术语表:业务专有名词定义和口径
- 交叉引用:与 CodeMap 的基础关联(实体→代码、流程→API、术语→符号)
可选扩展(D4,见下文):
- 页面流程:页面→API→方法→表的完整链路
- 配置影响:配置项对功能的影响映射
- 运行态事实:系统截图、菜单树、表单字段
- CodeMap 深度引用:与 formulas、decisions、errors、thresholds 关联
核心理念
CodeMap 回答 "系统能做什么"(Capability)
DomainMap 回答 "系统应该怎么做"(Intent & Contract)
两者结合形成完整的语义网络
分析等级
D1–D3(executor 覆盖)
| 等级 | 名称 | 内容 | 适用场景 |
|---|---|---|---|
| D1 | 快速扫描 | 实体 + 术语,不提取流程/规则 | 快速了解业务概念 |
| D2 | 标准分析 | 实体 + 流程 + 规则 + 术语 | 日常参考(默认) |
| D3 | 完整生成 | D2 全量 + CodeMap 基础交叉引用 | 完整文档 |
D4 可选扩展
executor 的执行流程覆盖 D1–D3。以下内容为按需扩展,模板已备在 templates/(config_impact / runtime / screen_flow),schemas 中有对应校验定义,但 executor 未内置生成步骤——需要时由执行代理参照模板手动生成:
screen_flows/:页面→API→方法→表链路(模板screen_flow.template.yaml)config_impact/:配置项对功能的影响(模板config_impact.template.yaml)runtime/:运行态采集(模板runtime.template.yaml)。仅当 chrome-devtools MCP 可用时才采集;不可用时直接跳过,不阻塞 D1–D3 产出。- 深度交叉引用:
rule-to-code、screen-to-api、screen-to-formula、screen-to-decision、config-to-formula(依赖 CodeMap 的 formulas/decisions 等 L4 产物存在)
执行流程(Phase)
执行时先加载 executor.yaml 作为执行指引;templates/ 与 schemas/ 在各 Phase 的生成/校验步骤中按需查阅。
| Phase | 名称 | 说明 |
|---|---|---|
| -1 | 交互式初始化 | 询问分析等级(D1/D2/D3)、文档目录、输出目录、CodeMap 关联 |
| 0 | 文档扫描与分类 | 扫描文档目录,按类型分类(手册/流程/PRD/数据字典) |
| 1 | 业务实体提取 | 生成 entities/*.yaml + 索引 |
| 2 | 业务流程提取 | 生成 processes/*.yaml + 索引(D1 跳过) |
| 3 | 业务规则提取 | 生成 rules/**/*.yaml + 索引(D1 跳过) |
| 4 | 术语表构建 | 生成 glossary/terms/*.yaml + 索引 |
| 5 | CodeMap 交叉引用 | 生成 xrefs/ 3 个基础映射(提供 codemap 路径时) |
| 6 | 索引生成与完整性检查 | 生成 _index.yaml、state.yaml,对照 schemas 校验关键产物 |
输出目录结构
输出根目录统一为 domainmap/(即 {{output_dir}}/domainmap):
domainmap/
├── _index.yaml # 项目主索引
├── .domainmap/state.yaml # 分析状态(断点续跑)
│
├── entities/ # 业务实体
│ ├── _entities_index.yaml
│ └── {entity-name}.yaml
│
├── processes/ # 业务流程
│ ├── _processes_index.yaml
│ └── {process-name}.yaml
│
├── rules/ # 业务规则(rule_set 包装结构)
│ ├── _rules_index.yaml
│ ├── validation/
│ │ └── {rule-name}.yaml
│ ├── calculation/
│ │ └── {rule-name}.yaml
│ └── transition/
│ └── {rule-name}.yaml
│
├── glossary/ # 术语表
│ ├── _glossary_index.yaml
│ └── terms/
│ └── {domain}-terms.yaml
│
├── xrefs/ # 基础交叉引用(D3,提供 codemap 时)
│ ├── _xrefs_index.yaml
│ ├── entity-to-code.yaml # 实体→代码符号
│ ├── process-to-api.yaml # 流程→API
│ └── term-to-symbol.yaml # 术语→符号
│
├── screen_flows/ # 页面流程(可选扩展 D4)
│ └── {flow-name}.yaml
│
├── config_impact/ # 配置影响(可选扩展 D4)
│ ├── by_table/
│ └── by_function/
│
└── runtime/ # 运行态事实(可选扩展 D4,需 chrome-devtools MCP)
├── system_access.yaml
├── menu_tree.yaml
├── pages/
└── screenshots/
D4 深度交叉引用文件(rule-to-code.yaml、screen-to-api.yaml、screen-to-formula.yaml、screen-to-decision.yaml、config-to-formula.yaml)属于可选扩展,生成时放入 xrefs/ 并在 _xrefs_index.yaml 中登记。
完整性检查(Phase 6)
业务实体:entities/*.yaml 文件数 >= _entities_index.yaml 声明总数
业务流程:processes/*.yaml 文件数 >= _processes_index.yaml 声明总数
业务规则:rules/**/*.yaml 文件数 >= _rules_index.yaml 声明规则集总数
术语表:glossary/terms/*.yaml 条目数 >= _glossary_index.yaml 声明总数
Schema 校验:关键产物(索引、实体、流程、规则、术语、xref)对照 schemas/ 校验,
校验失败项列入完整性报告
上下文管理
分批执行(大型项目)
| 内容类型 | 批次大小 |
|---|---|
| 文档分析 | 5 个/批 |
| 实体生成 | 10 个/批 |
| 流程生成 | 5 个/批 |
| 规则提取 | 20 条/批 |
断点续跑
/sn-domainmap --resume
状态保存在 domainmap/.domainmap/state.yaml,支持中断后继续。
使用场景
- 用户说"分析业务文档"、"提取业务流程"
- 用户说"创建 domainmap"、"业务知识图谱"
- 用户想要理解业务规则和流程
- 用户想要将业务知识与代码关联
- 直接输入
/sn-domainmap或/domainmap
命令格式
/sn-domainmap [<docs_path>] [options]
选项:
--output, -o 输出目录(产物写入 {output}/domainmap/)
--link-codemap, -l 关联的 CodeMap 目录
--focus, -f 聚焦特定业务域
--level 分析等级 (D1/D2/D3)
--resume 从上次中断处继续
支持的文档类型
| 类型 | 格式 | 提取内容 |
|---|---|---|
| 使用手册 | .md, .docx | 功能入口、字段规则、操作流程 |
| 流程手册 | .md, .docx | 业务流程、角色职责、状态流转 |
| 需求文档 | .md, .docx | 功能定义、验收标准、业务规则 |
| 数据字典 | .xlsx | 字段口径、枚举定义、取值范围 |
与 CodeMap 的关系
基础交叉引用(D3,executor 已实现)
| 类型 | DomainMap | CodeMap | 说明 |
|---|---|---|---|
| entity-to-code | entities/*.yaml | dataobjects/{lang}/、symbols/{lang}/ | 业务实体→代码实体 |
| process-to-api | processes/*.yaml | api/{lang}/_api_catalog.yaml、callchains/{lang}/ | 业务流程→API/调用链 |
| term-to-symbol | glossary/terms/*.yaml | symbols/{lang}/ | 术语→枚举/常量 |
深度交叉引用(可选扩展 D4)
| 类型 | 说明 |
|---|---|
| rule-to-code | 业务规则→Service 方法 |
| screen-to-api | 页面→API |
| screen-to-formula | 页面→计算公式(需 CodeMap formulas/) |
| screen-to-decision | 页面→决策点(需 CodeMap decisions/) |
| config-to-formula | 配置→公式(需 CodeMap formulas/) |
推荐组合
CodeMap(代码知识图谱)+ DomainMap(业务知识图谱)
= 完整的业务-代码语义网络
版本历史
| 版本 | 更新内容 |
|---|---|
| v3.0 | 统一等级体系为 D1/D2/D3(消除 standard/brief/deep 双轨);D4 转为可选扩展并删除自相矛盾的强制框;修复 process-to-api 的 CodeMap 数据源断链(补加载 api/ 与 callchains/);统一输出路径为 domainmap/;补齐 rule 与索引模板;Phase 6 增加 schema 校验 |
| v2.1 | 曾声称新增 D4 等级,但 executor 未实现对应 Phase(已纠正) |
| v2.0 | 添加生成等级定义(D1/D2/D3) |
| v1.1 | 新增页面流程、配置影响、运行态采集 |
| v1.0 | 初始版本 |
当前版本:v3.0