domain-driven-design

Establishes ubiquitous language, aggregates, bounded contexts and domain events for modeling complex business domains.

Updated Mar 29, 2026
One-click install
npx skills add https://github.com/marquesfelip/agents-and-skills --skill domain-driven-design-marquesfelip
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/marquesfelip/agents-and-skills/tree/main/skills/domain-driven-design
Command: npx skills add https://github.com/marquesfelip/agents-and-skills --skill domain-driven-design-marquesfelip

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Domain-Driven Design helps teams model complex business domains, align software models with business concepts, and enforce clear boundaries through aggregates and bounded contexts.

Core Features & Use Cases

  • Establish a ubiquitous language and align terminology across domains and teams
  • Identify domain objects, aggregates, and bounded contexts to control invariants and transactional boundaries
  • Map context boundaries and design domain events to enable decoupled integrations

Quick Start

Describe your core domain and identify the primary aggregates to begin modeling.

Frequently Asked Questions about domain-driven-design

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

FAQPage Schema
How do I model aggregates and bounded contexts for a complex business domain?

To model aggregates and bounded contexts, define a ubiquitous language aligning terminology across teams, identify domain objects to control invariants, and map transactional boundaries to decouple integrations using domain events.

What is the best way to align software models with business concepts using Domain-Driven Design?

The best way to align software models with business concepts is establishing a ubiquitous language that enforces consistent terminology across domains and teams, ensuring the software directly reflects the core business logic.

How do I clarify context boundaries and design domain events for legacy systems?

Clarify context boundaries in legacy systems by mapping bounded contexts to control invariants and designing domain events to enable decoupled integrations between existing system modules.

When do I need Domain-Driven Design for cross-team bounded-context mappings?

You need Domain-Driven Design for cross-team bounded-context mappings when multiple teams require clear boundary definitions, ubiquitous language alignment, and decoupled domain event integrations across separate system areas.

How do I start applying DDD principles to a new software architecture project?

Start applying DDD principles by describing your core domain, identifying the primary aggregates, and establishing a ubiquitous language to guide the architectural modeling of bounded contexts and domain events.