domain-driven-design

Enforce DDD tactical patterns for aggregates, value objects, and domain boundaries.

176|13|Updated Mar 2, 2026
One-click install
npx skills add https://github.com/techygarg/lattice --skill domain-driven-design-techygarg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/techygarg/lattice/tree/main/plugins/lattice/skills/domain-driven-design
Command: npx skills add https://github.com/techygarg/lattice --skill domain-driven-design-techygarg

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Domain-Driven Design provides a pragmatic toolkit to model complex domains by explicitly defining aggregates, value objects, and domain boundaries, ensuring domain logic is expressive and cohesive.

Core Features & Use Cases

  • Aligns code with ubiquitous language by turning business concepts into rich domain objects (entities, value objects, domain services).
  • Defines clear aggregate boundaries, enforces invariants, and uses domain events for cross-boundary coordination.
  • Supports language adaptation and repository patterns via a config-driven approach and the provided defaults.

Quick Start

Apply DDD tactical patterns to a domain model by defining aggregates, value objects, domain events, and bounded contexts.

Frequently Asked Questions about domain-driven-design

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

FAQPage Schema
How do I enforce domain-driven design tactical patterns in my domain code?

Domain-driven design tactical patterns are enforced by defining aggregates, value objects, and domain boundaries to ensure domain logic is expressive and cohesive. The Skill configures resolution via .lattice/config.yaml and defaults in references/defaults.md.

What is the best way to model invariants within a single bounded context?

Modeling invariants within a single bounded context requires defining clear aggregate boundaries and ownership rules. This approach uses domain events for cross-boundary coordination across entities and domain services.

When do I need domain events for cross-boundary coordination in DDD?

Domain events for cross-boundary coordination are needed when aligning code with ubiquitous language and managing interactions between distinct aggregates. They ensure domain logic remains cohesive while enabling cross-entity communication.

Does this DDD Skill work with a config-driven approach for repository patterns?

Yes, this DDD Skill supports language adaptation and repository patterns via a config-driven approach. It uses .lattice/config.yaml and provided defaults to adapt tactical patterns and guidance for your domain model.

How do I align ubiquitous language with rich domain objects like entities and value objects?

Align ubiquitous language with rich domain objects by turning business concepts into entities, value objects, and domain services. This ensures the domain model explicitly defines aggregates and boundaries.

Can I apply DDD tactical patterns to an existing domain model with complex boundaries?

Yes, you can apply DDD tactical patterns to an existing domain model to enforce aggregates, value objects, and domain boundaries. This resolves complexity by explicitly defining invariants and ownership across domain services.