Domain Modeling (Matt Pocock skill)
The skill that keeps the project glossary alive. During the session it interrupts you: when you use a term that conflicts with CONTEXT.md, when you say account while the code separates Customer and User, when what you claim does not match what the code does. Every settled term is written into CONTEXT.md right away, never batched at session end. It offers an ADR only when three conditions hold: hard to reverse, surprising without context, and the result of a real trade-off. CONTEXT.md stays a glossary, never a spec or a scratch pad.
Strengths
- Inline CONTEXT.md updates, no end-of-session batch, so the glossary never drifts
- Cross-checks what you say against what the code does, and surfaces the contradiction instead of silently picking
- Three strict conditions before offering an ADR: blocks the flood of decisions documented for nothing
- Supports multiple contexts via CONTEXT-MAP.md, with a CONTEXT.md and ADRs per context
Limitations
- Interrupts often: on a project whose vocabulary is not yet stable, the session turns into a negotiation over words
- With no existing CONTEXT.md, the first session mostly writes one rather than advancing your feature
- The payoff is invisible until someone rereads the glossary, so it is easy for a team to drop
Best for
- Projects where one word means three different things depending on who speaks
- Product and engineering teams who want a shared language written down rather than assumed
- Agent-first repos where answer quality depends directly on glossary precision