🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx skills add https://skills.sh/mattpocock/skills/ubiquitous-language

💡 提示:需要 Node.js 和 NPM

统一语言

从当前对话中提取并规范领域术语,形成一致的词汇表,并保存到本地文件中。

流程

  1. 扫描对话,识别与领域相关的名词、动词和概念
  2. 识别问题
    • 同一个词被用于不同的概念(歧义)
    • 不同的词被用于同一个概念(同义词)
    • 模糊或过载的术语
  3. 提出规范词汇表,对术语选择给出明确的意见
  4. 写入工作目录中的 UBIQUITOUS_LANGUAGE.md,使用下方格式
  5. 在对话中输出摘要

输出格式

编写一个结构如下的 UBIQUITOUS_LANGUAGE.md 文件:

# 统一语言

## 订单生命周期

| 术语 | 定义 | 应避免的同义词 |
|------|-----------|-----------------|
| **订单** | 客户购买一个或多个商品的请求 | 购买、交易 |
| **发票** | 发货后发送给客户的付款请求 | 账单、付款请求 |

## 人员

| 术语 | 定义 | 应避免的同义词 |
|------|-----------|-----------------|
| **客户** | 下订单的个人或组织 | 顾客、买家、账户 |
| **用户** | 系统中的认证身份 | 登录名、账户 |

## 关系

- 一张**发票** 属于且仅属于一个**客户**
- 一个**订单** 会产生一张或多张**发票**

## 示例对话

> **开发人员:** "当一个**客户** 下了一个**订单**,我们会立即创建**发票**吗?"
> **领域专家:** "不会 — 只有在**发货**被确认后才会生成**发票**。如果商品分多次**发货**,一个**订单**可以产生多张**发票**。"
> **开发人员:** "所以如果一次**发货**在发出前被取消了,就不会为其生成**发票**?"
> **领域专家:** "正是如此。**发票**的生命周期与**发货**相关,而非**订单**。"

## 标记的歧义

- "账户"一词被用来同时指代**客户****用户**——这是两个不同的概念:**客户**下订单,而**用户**是一个认证身份,可能代表也可能不代表一个**客户**

规则

  • 要有主见。 当同一个概念有多个词汇时,选择最好的一个,并将其他列作应避免的同义词。
  • 明确标记冲突。 如果对话中某个术语的使用存在歧义,在“标记的歧义”部分明确指出,并给出清晰的建议。
  • 保持定义精炼。 最多一句话。定义它是什么,而不是它做什么。
  • 展示关系。 使用粗体标记术语名称,并在合适处说明基数关系。
  • 只包含领域术语。 除非具有特定领域含义,否则跳过通用编程概念(数组、函数、端点)。
  • 当自然聚类出现时(例如按子领域、生命周期或参与者),将术语分组到多个表格中。每个组有自己的标题和表格。如果所有术语都属于一个单一的、有凝聚力的领域,一个表格就足够了——不要强行分组。
  • 编写一个示例对话。 一段简短的对话(3-5 次交流),发生在开发人员和领域专家之间,展示术语如何自然地互动。对话应阐明相关概念之间的界限,并展示术语的精确使用。

重新运行

在同一对话中再次调用此技能时:

  1. 读取现有的 UBIQUITOUS_LANGUAGE.md
  2. 合并后续讨论中出现的新术语
  3. 如果理解有所深化,更新相关定义
  4. 用“(已更新)”标记更改过的条目,用“(新增)”标记新条目
  5. 再次标记任何新的歧义
  6. 重写示例对话以融入新术语

输出后说明

写入文件后,声明:

我已编写/更新了 UBIQUITOUS_LANGUAGE.md。从现在起,我将一致地使用这些术语。如果我偏离了这些语言,或者您注意到有应添加的术语,请告诉我。

📄 原始文档

完整文档(英文):

https://skills.sh/mattpocock/skills/ubiquitous-language

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。