SuperAPI AI 工具集

domain-glossary

写作与研究

查看项目

更新于 11-06 16:20

技能介绍

用途

domain-glossary 用于从当前对话中提取并形式化领域术语,形成一份一致的术语表,并保存到本地文件。它面向 DDD(领域驱动设计)中的“统一语言”实践,帮助团队在讨论中统一对领域概念的理解。

主要能力

  • 扫描对话中与领域相关的名词、动词和概念。
  • 识别术语问题:同一词语被用于不同概念(歧义)、不同词语被用于同一概念(同义词)、含义模糊或过载的术语。
  • 提出带有明确取舍的规范术语表,当同一概念存在多个词时,选定最佳词并将其余列为应避免的别名。
  • 将结果写入工作目录下的 UBIQUITOUS_LANGUAGE.md 文件,并在对话中输出摘要。
  • 在“Flagged ambiguities”部分明确标注对话中歧义使用的术语,并给出清晰建议。
  • 展示术语之间的关系,使用加粗术语名并在明显处表达基数。
  • 撰写一段开发者与领域专家之间的示例对话(3-5 轮),演示术语如何自然交互,澄清相关概念之间的边界。

输出格式

写入的 UBIQUITOUS_LANGUAGE.md 文件结构包括:

  • 标题 # Ubiquitous Language
  • 按自然聚类分组的表格,每组有独立标题和表格,表格列为:Term(术语)、Definition(定义)、Aliases to avoid(应避免的别名)。
  • Relationships(关系)部分,用加粗术语名表达关系与基数。
  • Example dialogue(示例对话)部分。
  • Flagged ambiguities(标记的歧义)部分。

示例结构:

# Ubiquitous Language

## Order lifecycle

| Term        | Definition                                              | Aliases to avoid      |
| ----------- | ------------------------------------------------------- | --------------------- |
| **Order**   | A customer's request to purchase one or more items      | Purchase, transaction |
| **Invoice** | A request for payment sent to a customer after delivery | Bill, payment request |

## People

| Term         | Definition                                  | Aliases to avoid       |
| ------------ | ------------------------------------------- | ---------------------- |
| **Customer** | A person or organization that places orders | Client, buyer, account |
| **User**     | An authentication identity in the system    | Login, account         |

## Relationships

- An **Invoice** belongs to exactly one **Customer**
- An **Order** produces one or more **Invoices**

## Example dialogue

> **Dev:** "When a **Customer** places an **Order**, do we create the **Invoice** immediately?"
> **Domain expert:** "No — an **Invoice** is only generated once a **Fulfillment** is confirmed. A single **Order** can produce multiple **Invoices** if items ship in separate **Shipments**."
> **Dev:** "So if a **Shipment** is cancelled before dispatch, no **Invoice** exists for it?"
> **Domain expert:** "Exactly. The **Invoice** lifecycle is tied to the **Fulfillment**, not the **Order**."

## Flagged ambiguities

- "account" was used to mean both **Customer** and **User** — these are distinct concepts: a **Customer** places orders, while a **User** is an authentication identity that may or may not represent a **Customer**.

使用方式

在对话中调用该技能,它会扫描当前对话内容并生成术语表文件。再次在同一对话中调用时,它会:

  1. 读取已有的 UBIQUITOUS_LANGUAGE.md;
  2. 纳入后续讨论中的新术语;
  3. 如果理解发生变化则更新定义;
  4. 重新标记任何新的歧义;
  5. 重写示例对话以纳入新术语。

规则

  • 要有主见:当同一概念存在多个词时,选定最佳词,其余列为应避免的别名。
  • 明确标记冲突:如果某术语在对话中被歧义使用,在“Flagged ambiguities”部分指出并给出明确建议。
  • 只包含对领域专家有意义的术语,跳过模块或类名,除非它们在领域语言中有意义。
  • 定义要精炼,最多一句话,定义它“是什么”,而不是“做什么”。
  • 展示关系:使用加粗术语名,并在明显处表达基数。
  • 只包含领域术语,跳过通用编程概念(如 array、function、endpoint),除非它们有领域特定含义。
  • 当自然聚类出现时(如按子域、生命周期或参与者),将术语分组到多个表格中,每组有独立标题和表格;如果所有术语属于单一内聚领域,一个表格即可,不要强行分组。
  • 撰写示例对话:一段开发者与领域专家之间的简短对话(3-5 轮),演示术语如何自然交互,澄清相关概念之间的边界,并展示术语被精确使用。

适用场景

  • 在领域建模讨论中统一术语。
  • 从对话记录中提取领域词汇表。
  • 识别并解决团队沟通中的术语歧义。
  • 为 DDD 项目建立统一语言文档。

限制

  • 该技能从当前对话中提取术语,不提供外部领域知识。
  • 输出为本地 Markdown 文件,具体保存路径为工作目录下的 UBIQUITOUS_LANGUAGE.md。
  • 关于收费、价格、平台支持等信息暂未提供。