What problem does it solve? Applying Domain-Driven Design in TypeScript is error-prone: teams build anemic models, oversized aggregates, and leaky layers. This Skill provides concrete patterns and decision frameworks for modeling complex business domains correctly. ## Core Features & Use Cases - Building Blocks: Guidance for value objects, branded types, entities, aggregates, specifications, and domain services with immutable, always-valid TypeScript patterns. - Strategic Design: Bounded context discovery, context mapping (ACL, shared kernel), and glossary-driven ubiquitous language enforcement. - Tactical Decisions: Error modeling with discriminated unions, domain events with the Decider pattern, repository placement, and TDD integration by domain concept. - Use Case: When implementing a pledge feature in a gifting app, use this Skill to model the Occasion aggregate, enforce budget invariants through the root, and return explicit PledgeDecision results instead of throwing exceptions. ## Quick Start Ask the AI to apply the domain-driven-design skill to model a new aggregate with its invariants and domain events in your TypeScript project.