domain-modelinglisted
Install: claude install-skill mickzijdel/dev-hooks
# Domain Modeling
Actively build and sharpen the project's domain model as you design. This is the *active* discipline — challenging terms, inventing edge-case scenarios, and writing the glossary down the moment a term crystallises. (Merely *reading* `CONTEXT.md` for vocabulary is not this skill — that's a one-line habit any skill can do. This skill is for when you're changing the model, not just consuming it.)
The payoff compounds: a shared language makes variables, functions, and files consistently named, the codebase easier to navigate, and every future session terser — one precise term where twenty vague words used to go.
## File structure
Most repos have a single context:
```
/
├── CONTEXT.md
├── docs/
│ └── decisions/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
└── src/
```
If a `CONTEXT-MAP.md` exists at the root, the repo has multiple contexts. The map points to where each one lives:
```
/
├── CONTEXT-MAP.md
├── docs/
│ └── decisions/ ← system-wide decisions
├── src/
│ ├── ordering/
│ │ ├── CONTEXT.md
│ │ └── docs/decisions/ ← context-specific decisions
│ └── billing/
│ ├── CONTEXT.md
│ └── docs/decisions/
```
Create files lazily — only when you have something to write. If no `CONTEXT.md` exists, create one when the first term is resolved.
## During the session
### Challenge against the glossary
When the user uses a term that conflicts with the existing langua