domain-design

Guides definition of domain models using bounded contexts, aggregates, invariants, and domain events for Rust, TypeScript, and API design patterns.

2|1|Updated Jun 30, 2019
One-click install
npx skills add https://github.com/tgautier/dotfiles --skill domain-design-tgautier
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-design
Source: https://github.com/tgautier/dotfiles/tree/main/claude/skills/domain-design
Command: npx skills add https://github.com/tgautier/dotfiles --skill domain-design-tgautier

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Domain Design delivers language-agnostic guidance for modeling business domains, ensuring that models reflect real-world intent rather than database schemas. It covers topics like bounded contexts, aggregates, entities, value objects, domain events, data modeling, schema evolution, and system decomposition, helping teams reason about architecture early in the design process.

Core Features & Use Cases

  • Domain-agnostic modeling guidance for aggregates, bounded contexts, and events
  • Clear rules for ubiquitous language, model ownership, and invariants
  • Real-world use: plan domain boundaries and evaluate design decisions during architecture reviews

Quick Start

Start by clarifying the business language, identifying core aggregates and bounded contexts, then map rules to domain events and invariants.

Frequently Asked Questions about domain-design

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

FAQPage Schema
How do I define bounded contexts and aggregates for domain modeling?

Start domain modeling by clarifying ubiquitous language, identifying core aggregates and bounded contexts, then map rules to domain events and explicit invariants to guide system decomposition.

What is ubiquitous language in domain modeling and when do I need it?

In domain modeling, ubiquitous language provides a shared vocabulary reflecting real-world intent, needed during design sessions to ensure models represent business rules rather than database schemas.

Can I apply domain-driven design patterns to Rust and TypeScript APIs?

Yes, this language-agnostic domain modeling guidance aligns with Rust, TypeScript, and API design patterns, enabling teams to evaluate design decisions and structure domain models across these stacks.

How do I decompose a monolithic system using domain events?

System decomposition using domain events involves mapping business rules to events within bounded contexts, creating well-defined boundaries and explicit invariants that guide how the domain evolves.

When should I use small aggregates versus larger domain models?

Choose small aggregates to maintain explicit invariants and well-defined boundaries, as this domain modeling guidance satisfies requirements for small aggregates to ensure models reflect real-world business intent.