ddd-domain-modeling

Create TypeScript domain models with entities, value objects, repositories, and domain services.

Updated Feb 8, 2026
One-click install
npx skills add https://github.com/eykd/vance-ts --skill ddd-domain-modeling
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ddd-domain-modeling
Source: https://github.com/eykd/vance-ts/tree/main/.claude/skills/ddd-domain-modeling
Command: npx skills add https://github.com/eykd/vance-ts --skill ddd-domain-modeling

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve?

This Skill helps you create robust and scalable domain models using TypeScript and domain-driven design principles. It simplifies the process of defining entities, value objects, repositories, and domain services, making it easier to implement clean, maintainable business logic.

Core Features & Use Cases

  • Entities: Define entities with validation and lifecycle methods.
  • Value Objects: Create immutable value types with validation.
  • Repositories: Implement repository interfaces for data access.
  • Domain Services: Develop stateless domain logic for complex operations.
  • Use Case: Imagine you're building a e-commerce platform. Use this Skill to define your domain entities like Product, Order, and Customer, ensuring consistent business rules and data integrity.

Quick Start

Use the ddd-domain-modeling skill to create a new domain entity for a product with properties such as name, price, and description.

Frequently Asked Questions about ddd-domain-modeling

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

FAQPage Schema
How do I structure domain entities and value objects in TypeScript?

You define TypeScript domain entities and value objects by applying validation rules, immutability, and lifecycle methods to ensure consistent business logic and data integrity across complex architectures.

What's the best way to implement domain-driven design repositories in TypeScript?

The best way to implement domain-driven design repositories in TypeScript is to define repository interfaces for data access, separating persistence concerns from core domain logic and entities.

How do domain services differ from entities in domain-driven design?

Domain services differ from entities by encapsulating stateless domain logic for complex operations that do not naturally belong to a single entity or value object in the domain model.

When do I need domain-driven design for TypeScript business logic?

You need domain-driven design for TypeScript business logic when building complex systems requiring scalable architecture, strict data integrity, and clear separation between domain rules and data persistence.

Do I need prior domain-driven design knowledge to model business logic in TypeScript?

Yes, modeling business logic in TypeScript with this approach requires an existing understanding of domain-driven design patterns and TypeScript to effectively structure entities, repositories, and domain services.

Why use value objects instead of primitives for TypeScript domain models?

You use value objects instead of primitives in TypeScript domain models to enforce immutability and encapsulate validation, preventing invalid states and maintaining strict data integrity for complex business rules.