From mattpocock-skills
Builds and refines a project's domain model – clarifying terminology, recording architecture decisions, and maintaining a glossary (CONTEXT.md) and ADRs. Activated automatically when ambiguous language or undefined terms arise.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mattpocock-skills:domain-modelingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
在设计过程中主动构建并打磨项目的 domain model。这是 *active* discipline:挑战术语、发明 edge-case scenarios,并在概念成形的当下写入 glossary 和 decisions。(仅仅读取 `CONTEXT.md` 来获取词汇,不是这个 skill;那只是任何 skill 都能做的一行习惯。这个 skill 用于改变 model,而不是消费 model。)
在设计过程中主动构建并打磨项目的 domain model。这是 active discipline:挑战术语、发明 edge-case scenarios,并在概念成形的当下写入 glossary 和 decisions。(仅仅读取 CONTEXT.md 来获取词汇,不是这个 skill;那只是任何 skill 都能做的一行习惯。这个 skill 用于改变 model,而不是消费 model。)
多数 repos 只有一个 context:
/
|- CONTEXT.md
|- docs/
| `- adr/
| |- 0001-event-sourced-orders.md
| `- 0002-postgres-for-write-model.md
`- src/
如果 root 有 CONTEXT-MAP.md,说明 repo 有多个 contexts。map 指向每个 context 的位置:
/
|- CONTEXT-MAP.md
|- docs/
| `- adr/ -> system-wide decisions
`- src/
|- ordering/
| |- CONTEXT.md
| `- docs/adr/ -> context-specific decisions
`- billing/
|- CONTEXT.md
`- docs/adr/
按需懒创建文件:只有在有内容要写时才创建。如果没有 CONTEXT.md,当第一个 term 被解决时创建它。如果没有 docs/adr/,当第一个 ADR 需要出现时创建它。
当用户使用的术语与 CONTEXT.md 中既有语言冲突时,立即指出。"Your glossary defines 'cancellation' as X, but you seem to mean Y - which is it?"
当用户使用模糊或过载术语时,提出一个精确的 canonical term。"You're saying 'account' - do you mean the Customer or the User? Those are different things."
讨论 domain relationships 时,用具体场景做压力测试。发明能探测 edge cases 的场景,迫使用户精确定义概念之间的 boundaries。
当用户描述某事如何工作时,检查代码是否同意。如果发现矛盾,要指出:"Your code cancels entire Orders, but you just said partial cancellation is possible - which is right?"
当一个 term 被解决时,立刻更新 CONTEXT.md。不要批量攒到最后;随着概念出现就捕获。使用 CONTEXT-FORMAT.md 中的格式。
CONTEXT.md 必须完全不包含 implementation details。不要把 CONTEXT.md 当 spec、scratch pad 或 implementation decisions 的仓库。它只是一份 glossary。
只有以下三项都成立时,才提出创建 ADR:
缺少任一项就跳过 ADR。使用 ADR-FORMAT.md 中的格式。
npx claudepluginhub vinvcn/mattpocock-skills-zh-cnOversees domain language, records architecture decisions (ADRs), and maintains CONTEXT.md glossary. Used when defining terminology, clarifying overloaded terms, or capturing tradeoff-driven decisions.
Builds and sharpens a project's domain model by challenging terminology, recording architectural decisions, and writing a glossary. Use when defining domain language or making architectural decisions.
Builds and sharpens the project's domain model by maintaining a live glossary (CONTEXT.md) and recording architecture decisions (ADRs). Activates when fixing terminology, establishing ubiquitous language, or resolving ambiguous domain concepts.