SuperAPI AI 工具集

domain-modeling

编程与开发

查看项目

更新于 10-23 16:18

技能介绍

用途

Domain Modeling 是一个在项目设计过程中主动构建和打磨领域模型的技能。它强调主动的领域建模纪律:质疑术语、发明边缘案例场景,并在术语和决策确定时立即写入词汇表和决策记录。仅仅阅读 GLOSSARY.md 获取词汇不属于此技能,那只是任何技能都能做到的一行习惯。此技能适用于正在改变模型而非仅仅消费模型的场景。

主要能力

  • 对照词汇表质疑:当用户使用的术语与 GLOSSARY.md 中现有语言冲突时,立即指出。例如:“你的词汇表将‘cancellation’定义为 X,但你似乎指的是 Y,到底是哪个?”
  • 锐化模糊语言:当用户使用模糊或过载的术语时,提出精确的规范术语。在可用 AskUserQuestion 时,将候选作为选项,推荐项在前,每个选项的描述说明选择它会让模型承诺什么;否则在聊天中以相同形式提问。
  • 讨论具体场景:当讨论领域关系时,用具体场景进行压力测试。发明探测边缘案例的场景,强制明确概念之间的边界。例如:“一个 Customer 有两个 Subscription,在周期中取消其中一个,已发出的 Invoice 会怎样?”
  • 与代码交叉引用:当用户陈述某事物如何工作时,检查代码是否一致。在 Laravel 代码库中,模型存在于比散文更多的地方,对照以下内容检查词汇表术语:Eloquent 模型和关系名称(app/Models、HasMany 方法名)、迁移中的表和列名、枚举案例(app/Enums)、策略名称和能力字符串、Filament 资源/页面标签和导航名称、路由名称、任务名称、事件名称。如果发现矛盾,提出来。
  • 内联更新 GLOSSARY.md:当术语确定时,立即更新 GLOSSARY.md。不要批量处理,随发生随捕获。如果会话可能并行运行,在写入前立即重新读取 GLOSSARY.md,只添加自己的条目,以免并发编辑被覆盖。GLOSSARY.md 必须完全不含实现细节。
  • 谨慎提供 ADR:仅当以下三点全部为真时才提供创建 ADR:难以逆转(以后改变主意的成本有意义)、无上下文时令人惊讶(未来读者会想知道“为什么他们这样做?”)、真实权衡的结果(存在真正的替代方案,你因特定原因选择了一个)。如果缺少任何一点,跳过 ADR。

使用方式

该技能与 grilling 会话(grill-with-docs 是配对两者的前门)、wayfinder grilling 工单和 to-spec 综合配合运行:在任何术语被决定的地方。它是支持性工作,不是流水线阶段:它从不打印流水线会话结束块,无论是嵌套还是直接运行,调用技能(或用户的下一步)负责路由。

文件结构

大多数仓库有单一上下文:

/
├── GLOSSARY.md
├── docs/
│   └── adr/
│       ├── 0001-single-db-multi-tenancy.md
│       └── 0002-money-as-integer-minor-units.md
└── app/

如果根目录存在 GLOSSARY-MAP.md,则仓库有多个上下文。映射指向每个上下文所在位置:在 Laravel 模块化单体中,即模块根:

/
├── GLOSSARY-MAP.md
├── docs/
│   └── adr/                              ← 系统级决策
└── app/Domain/                           ← 或 modules/、app-modules/,遵循仓库
    ├── Ordering/
    │   ├── GLOSSARY.md
    │   └── docs/adr/                     ← 上下文特定决策
    └── Billing/
        ├── GLOSSARY.md
        └── docs/adr/

惰性创建文件:仅在有内容可写时创建。没有 GLOSSARY.md?在第一个术语解决时创建一个。发现旧的 CONTEXT.md / CONTEXT-MAP.md?在首次写入前,用 git mv 将其重命名为 GLOSSARY.md / GLOSSARY-MAP.md 并修复映射的链接。没有 docs/adr/?在需要第一个 ADR 时创建。格式:references/glossary-format.md 和 references/adr-format.md。

会话期间

  • 对照词汇表质疑
  • 锐化模糊语言
  • 讨论具体场景
  • 与代码交叉引用
  • 内联更新 GLOSSARY.md
  • 谨慎提供 ADR

当术语根据代码当前命名解决时,重命名是真实的构建工作,在此记录决策,将重命名本身留给规范(或 tickets/ 工单,一旦存在),绝不要作为 wayfinder 决策映射工单,后者只保存已决定的事项,而非已构建的事项。绝不静默吸收。

适用场景

  • 正在设计或修改领域模型时
  • 术语被决定或需要澄清时
  • 与 grilling 会话、wayfinder grilling 工单、to-spec 综合配合时
  • 需要将领域术语与代码实现交叉验证时

限制

  • 仅阅读 GLOSSARY.md 获取词汇不属于此技能
  • 它是支持性工作,不是流水线阶段,不负责路由
  • GLOSSARY.md 必须完全不含实现细节
  • ADR 仅在满足三个条件时创建
  • 重命名本身留给规范或工单,不作为 wayfinder 决策映射工单
  • 关于收费、价格、平台、效果等具体信息暂未提供