--- name: sn-domainmap description: 从业务文档(手册/流程/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 条/批 | ### 断点续跑 ```bash /sn-domainmap --resume ``` 状态保存在 `domainmap/.domainmap/state.yaml`,支持中断后继续。 --- ## 使用场景 - 用户说"分析业务文档"、"提取业务流程" - 用户说"创建 domainmap"、"业务知识图谱" - 用户想要理解业务规则和流程 - 用户想要将业务知识与代码关联 - 直接输入 `/sn-domainmap` 或 `/domainmap` ## 命令格式 ``` /sn-domainmap [] [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