domain-modeling

Guide Domain-Driven Design modeling with TypeScript implementation examples.

14|3|Updated Feb 22, 2026
One-click install
npx skills add https://github.com/rnavarych/alpha-engineer --skill domain-modeling-rnavarych
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/rnavarych/alpha-engineer/tree/main/plugins/billy-milligan/skills/product/domain-modeling
Command: npx skills add https://github.com/rnavarych/alpha-engineer --skill domain-modeling-rnavarych

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

This Skill helps you design and implement complex business logic using Domain-Driven Design (DDD) principles, ensuring your code accurately reflects business rules and is maintainable.

Core Features & Use Cases

  • DDD Principles: Understand and apply concepts like aggregates, bounded contexts, ubiquitous language, value objects, and domain events.
  • Design Guidance: Learn when to use DDD versus simpler patterns, how to define aggregate boundaries, and how to map context relationships.
  • Use Case: When building a new e-commerce platform, use this Skill to define clear boundaries between your Catalog, Orders, and Payments domains, ensuring consistent terminology and robust business rule enforcement.

Quick Start

Use the domain-modeling skill to understand how to distinguish between entities and value objects in TypeScript.

Frequently Asked Questions about domain-modeling

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

FAQPage Schema
How do I design bounded contexts for an e-commerce platform using domain-driven design?

Bounded contexts in domain-driven design separate complex business logic into distinct domains like Catalog, Orders, and Payments. This Skill helps map context relationships and enforces consistent ubiquitous language across your e-commerce platform.

What is the difference between entities and value objects in TypeScript?

Entities are defined by their identity, while value objects are defined by their attributes. This Skill provides TypeScript implementation examples to help you differentiate and design both within your domain models.

When should I use domain-driven design instead of simpler patterns?

Use domain-driven design when building complex business logic that requires strict rule enforcement and maintainability. This Skill helps you evaluate when DDD is necessary versus when simpler architectural patterns are more appropriate.

How do I define aggregate boundaries and use the repository pattern in DDD?

Aggregate boundaries group related domain objects to ensure consistency, while the repository pattern manages data access. This Skill guides you in defining aggregate boundaries and implementing the repository pattern with TypeScript examples.

Do I need an anti-corruption layer when mapping bounded contexts?

An anti-corruption layer protects your domain models from external context translations. This Skill covers anti-corruption layers alongside domain events and context mapping to maintain model integrity.