← ClaudeAtlas

domain-driven-designlisted

Bounded contexts, aggregates as consistency boundaries, value objects as branded types, always-valid domain, ubiquitous language. No CQRS, event sourcing, or generic Repository<T>. Use on the domain.
voidcorp-core/void-harness · ★ 0 · Web & Frontend · score 76
Install: claude install-skill voidcorp-core/void-harness
# domain-driven-design — voidcorp craftsman edition The data model does not drive the design. The domain does. Inside a bounded context, every word has one meaning. Aggregates enforce invariants. Value objects model semantic primitives. The code uses the words the team uses. **Attribution**: see `.source` in this directory. Foundation: Evans 2003, Vernon 2013, Wlaschin "Domain Modeling Made Functional," Stemmler TS adaptation, Khorikov. --- ## Strategic DDD — the vocabulary | Term | Definition | |---|---| | **Bounded Context** | A boundary inside which a model is valid and a language is consistent. One context = one module/package. | | **Ubiquitous Language** | The shared vocabulary inside a context. Code uses the same words stakeholders use. Diverging is a bug. | | **Context Map** | The graph of bounded contexts and their relationships (partnership, conformist, anti-corruption layer, ...). Documented in `docs/CONTEXT-MAP.md` for non-trivial systems. | | **Aggregate** | A cluster of objects treated as a single unit for consistency. The aggregate enforces its own invariants. | | **Aggregate Root** | The single entity through which the aggregate is accessed. The only thing repositories return. | | **Entity** | An object identified by its identity (UserId), not its attributes. Two entities with the same fields but different IDs are distinct. | | **Value Object** | An object identified by its attributes. Two value objects with the same fields are equal. Immutable. | | **Doma