用途
Domain Modeling 用于构建并持续打磨一个项目的领域词汇表,产物是项目根目录下的 GLOSSARY.md。它的目标是让每个领域概念只对应一个规范术语,并在术语一旦确定时立即写入词汇表,避免同一概念出现多个叫法或一个词被用于多个概念。
触发场景
- 某个术语与词汇表中的定义冲突,或两个词指向同一个概念。
- 一个词覆盖了两个概念,或某个概念还没有名称。
- 术语被重命名、合并或废弃。
- 代码或文档使用了词汇表未定义的名称。
- 用户要求编写或编辑词汇表。
工作流程
流程为:定位词汇表 → 阅读 → 处理术语 → 解决 → 即时写入。当术语仍未解决时,回到处理术语环节继续。
- 定位词汇表:在项目根目录查找 GLOSSARY.md。若不存在,则在第一个术语解决时依据 glossary.template.md 创建。
- 阅读:在回答任何关于词汇的问题之前,先阅读词汇表。
- 处理术语:
- 冲突:把词汇表中的定义与用户当前使用的含义并列指出,询问哪一个成立。
- 模糊或过载:提出一个规范术语以及它要替代的词。
- 边界情况:用一个具体场景测试概念之间的关系,以探查边界。
- 代码:当用户陈述某事物如何工作时,检查代码,把矛盾作为问题提出。
- 即时写入:每个术语解决时立即更新 GLOSSARY.md,不要等到最后批量写入。重命名要更新定义和 Avoid 行;合并只保留一个条目;废弃的术语要移除。
- 报告:在一次会话的词汇表工作结束后(而非每个术语之后)报告,用一到三句话说明路径、新增/修改/移除的术语,以及仍未解决的术语。不要粘贴词汇表内容。
条目规则
- 每个概念只选一个术语,把被拒绝的词列在 Avoid 下。
- 用一到两句话定义术语是什么,而不是它做什么。
- 只收录本项目领域特有的术语。通用编程概念(如 timeout、错误类型、工具模式)不收录。
- 不携带实现细节。词汇表不是规格说明、草稿本或决策记录。
- 每个条目以现在时陈述为长期定义。重命名或合并要把条目改写为新状态,而不是记录变更;对话中的内容不得进入条目,例如不写“如讨论所述”“用户确认”“我们同意”。
- 当条目形成聚类时,用子标题分组;否则保持平铺列表。
指导原则
- 在提出规范术语之前,先请用户用自己的话说明该术语的含义。
- 宁可让术语保持未解决,也不要猜测;未解决的术语不写入文件。
适用场景
适合需要统一领域语言、减少沟通歧义的软件项目,尤其是术语频繁变化、多人协作或代码与文档命名不一致的场景。
限制
该技能只维护词汇表,不替代规格说明或决策记录;不收录通用编程概念;不记录讨论过程;未解决的术语不写入文件。关于收费、价格、平台支持等信息,资料暂未提供。