用途
ubiquitous-language 用于从当前对话中提取领域驱动设计(DDD)风格的通用语言词汇表。它把对话中出现的领域术语整理成一份一致的词汇表,并保存到本地文件,同时标记歧义并提出规范术语建议。
主要能力
- 扫描对话中与领域相关的名词、动词和概念。
- 识别以下问题:同一词用于不同概念(歧义)、不同词用于同一概念(同义词)、模糊或含义过多的术语。
- 提出一套有明确取舍的规范术语表。
- 将结果写入工作目录下的 UBIQUITOUS_LANGUAGE.md 文件。
- 在对话中输出内联摘要。
输出格式
写入的 UBIQUITOUS_LANGUAGE.md 文件结构包括:
- 表格,每行包含术语(加粗)、定义、应避免使用的别名。可按自然聚类分成多个表格,例如按子域、生命周期或参与者分组,每组有独立标题和表格;如果所有术语属于单一内聚领域,用一个表格即可。
- 关系:使用加粗术语名并在明显处表达基数关系。
- 示例对话:开发者与领域专家之间 3-5 个来回的简短对话,展示术语如何自然交互,澄清相关概念之间的边界。
- 被标记的歧义:明确列出对话中含义不清的术语并给出清晰建议。
使用方式
该技能在对话中被调用。它会扫描当前对话内容,识别并整理领域术语,然后写入 UBIQUITOUS_LANGUAGE.md 文件并输出摘要。
再次在同一对话中调用时,它会:
- 读取已有的 ./docs/UBIQUITOUS_LANGUAGE.md。
- 纳入后续讨论中的新术语。
- 如果理解发生变化,更新定义。
- 重新标记任何新的歧义。
- 重写示例对话以纳入新术语。
适用场景
适用于需要从对话中梳理和统一领域术语的场合,例如在开发讨论中建立通用语言词汇表,帮助开发者和领域专家对领域概念达成一致理解。
限制
- 只收录对领域专家有意义的术语,跳过模块名或类名,除非它们在领域语言中有意义。
- 跳过通用编程概念(如数组、函数、端点),除非它们有领域特定含义。
- 定义保持简洁,最多一句话,定义事物“是什么”而非“做什么”。
- 其他限制(如平台支持、收费方式等)暂未提供。