mcpField
D
domain-modeling

domain-modeling

github.com/devcxl开发53394 次安装1 周前更新
代码仓库

关于 domain-modeling

domain-modeling 是用于软件设计过程的领域建模技能,帮助团队澄清术语、检验模型边界并记录确定的语言。它通过即时维护 GLOSSARY.md、谨慎记录 ADR,区别于只读取既有词汇表的做法。

主要功能

  1. 01质疑与精确定义领域术语
  2. 02用具体场景测试概念边界
  3. 03对照代码检查领域描述
  4. 04即时更新 GLOSSARY.md
  5. 05按条件记录难逆转决策

适用场景

  1. 01区分含义模糊或重叠的业务术语
  2. 02发现代码行为与领域描述冲突
  3. 03记录确定的术语及重要权衡

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/devcxl/mattpocock-skills-zh --skill domain-modeling

安装后在 Claude Code 中输入/domain-modeling确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

ADR-FORMAT.md
GLOSSARY-FORMAT.md
agents/
openai.yaml

详细介绍

来自项目 README

Domain Modeling(领域建模)

在设计过程中主动构建和完善项目的领域模型。这是一门主动的学科——质疑术语、创造边界场景、在术语和决策形成的瞬间将其记录在案。(仅仅阅读 GLOSSARY.md 来获取词汇不是此 skill 的用途——那是任何 skill 都能做的单行习惯。此 skill 用于你在修改模型,而非仅仅消费它。)

文件结构

大多数 repo 只有一个 context:

/
├── GLOSSARY.md
├── docs/
│   └── adr/
│       ├── 0001-event-sourced-orders.md
│       └── 0002-postgres-for-write-model.md
└── src/

如果根目录存在 GLOSSARY-MAP.md,则该 repo 有多个 context。该 map 指向每个 context 的位置:

/
├── GLOSSARY-MAP.md
├── docs/
│   └── adr/                          ← 系统级决策
├── src/
│   ├── ordering/
│   │   ├── GLOSSARY.md
│   │   └── docs/adr/                 ← context 特定决策
│   └── billing/
│       ├── GLOSSARY.md
│       └── docs/adr/

懒加载创建文件——仅当有内容需要写入时才创建。如果 GLOSSARY.md 不存在,在第一个术语确定时创建。如果 docs/adr/ 不存在,在第一个 ADR 需要时创建。

在会话期间

对照 glossary 提出质疑

当用户使用与 GLOSSARY.md 中已有语言冲突的术语时,立即指出。"你的 glossary 将 'cancellation' 定义为 X,但你似乎指的是 Y——到底是哪个?"

优化模糊语言

当用户使用模糊或过载的术语时,提出精确的标准术语。"你说 'account'——指的是 Customer 还是 User?它们是不同的东西。"

讨论具体场景

当领域关系被讨论时,用具体的场景进行压力测试。创造能够探测边界案例的场景,迫使用户精确描述概念之间的界限。

与代码交叉引用

当用户陈述某事物的工作方式时,检查代码是否一致。如果发现矛盾,指出:"你的代码取消了整个 Orders,但你刚才说部分取消是可能的——哪个是对的?"

内联更新 GLOSSARY.md

当术语确定时,立即更新 GLOSSARY.md。不要批量处理——在发生时即时捕获。使用 GLOSSARY-FORMAT.md 中的格式。

GLOSSARY.md 应完全不含实现细节。不要将 GLOSSARY.md 视为 spec、草稿本或实现决策的仓库。它是 glossary,仅此而已。

谨慎提供 ADR

仅当以下三个条件同时满足时才提供创建 ADR:

  1. 难以逆转——事后改变想法的成本很高
  2. 脱离上下文会令人困惑——未来的读者会想"他们为什么这样做?"
  3. 是真实权衡的结果——存在真正的替代方案,你因特定原因选择了其中一个

如果缺少任何一条,跳过 ADR。使用 ADR-FORMAT.md 中的格式。

评论

支持 Markdown