domain-modeling

Organize business objects into Entity, Value Object, and Aggregate patterns.

1|1|Updated Mar 30, 2026
One-click install
npx skills add https://github.com/Entelligentsia/skillforge --skill domain-modeling-entelligentsia
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/Entelligentsia/skillforge/tree/main/design-patterns/skills/domain-modeling
Command: npx skills add https://github.com/Entelligentsia/skillforge --skill domain-modeling-entelligentsia

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Domain modeling patterns prevent anemic domain objects by clarifying ownership of business rules, grouping behavior where appropriate, and establishing clear boundaries for Entities, Values, and Aggregates.

Core Features & Use Cases

  • Entity: an object defined by identity and lifecycle, suitable for things that require tracking over time.
  • Value Object: immutable descriptor defined by its attributes, equality by value.
  • Aggregate: a cluster of domain objects with a single Aggregate Root that enforces invariants and ensures consistency within the boundary.

Quick Start

Identify a domain object that currently mixes identity and behavior, and refactor it into an Entity, a Value Object for attributes, and an Aggregate with a well-defined Root.

Frequently Asked Questions about domain-modeling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the difference between an entity and a value object in domain-driven design?

In domain-driven design, an entity is an object defined by identity and lifecycle for tracking over time, whereas a value object is an immutable descriptor defined by its attributes with equality by value.

How do I define aggregate boundaries to enforce invariants in software design?

To define aggregate boundaries in software design, group domain objects into a cluster with a single aggregate root that enforces invariants and ensures consistency within the boundary.

How do I fix anemic domain models when behavior is distributed across services or controllers?

Fix anemic domain models by organizing business objects into entity, value object, and aggregate patterns to clarify ownership and group behavior within clear domain boundaries.

When do I need an aggregate root in domain modeling?

You need an aggregate root in domain modeling when you must enforce invariants and ensure consistency across a cluster of related domain objects within a specific boundary.

Does domain modeling require stable IDs for all domain objects?

Domain modeling requires stable IDs specifically for entities to track their lifecycle over time, whereas value objects rely on attribute equality and do not require identity tracking.