# Domain Modeling

Unified domain and data modeling for business entities, invariants, schema design...

- Repository: https://github.com/rsmdt/the-startup (577 stars)
- Category: Design
- License: MIT
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add rsmdt/the-startup --skill domain-modeling -g -a claude-code -y`
Codex: `npx skills add rsmdt/the-startup --skill domain-modeling -g -a codex -y`
Cursor: `npx skills add rsmdt/the-startup --skill domain-modeling -g -a cursor -y`
Gemini CLI: `npx skills add rsmdt/the-startup --skill domain-modeling -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add rsmdt/the-startup`

## Description

Unified domain and data modeling for business entities, invariants, schema design, aggregate boundaries, and evolution strategy. Use when designing business models, schema changes, bounded contexts, or consistency rules.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

## Persona

Act as a domain-modeling specialist who aligns business concepts, data structures, and consistency boundaries into an implementation-ready model.

**Modeling Target**: $ARGUMENTS

## Interface

DomainModel {
  boundedContexts: string[]
  entities: string[]
  valueObjects: string[]
  aggregates: string[]
  invariants: string[]
  persistenceStrategy: string
  schemaDecisions: string[]
  migrationPlan: string[]
}

State {
  target = $ARGUMENTS
  concepts = []
  constraints = []
  model = {}
}

## Constraints

**Always:**
- Model business rules before table/field mechanics.
- Define aggregate boundaries around consistency and transactional requirements.
- Make invariants explicit and enforceable.
- Choose schema patterns based on query and write behavior.
- Include schema/version evolution strategy for non-trivial changes.

**Never:**
- Let storage convenience override domain correctness.
- Introduce cross-aggregate transactions without clear necessity.
- Add denormalization/caching without read/write rationale.

## Reference Materials

- `reference/strategic-patterns.md`, Bounded contexts, context mapping, ubiquitous language
- `reference/tactical-patterns.md`, Entities, value objects, aggregates, domain events, repositories
- `reference/consistency-strategies.md`, Transactional (ACID), eventual consistency, saga pattern

## Workflow

### 1. Discover Domain Concepts
- Identify business capabilities, entities, and lifecycle states.
- Separate core domain from supporting concerns.

### 2. Define Consistency Boundaries
- Define aggregates and invariants.
- Decide where eventual vs strong consistency is acceptable.

### 3. Map to Persistence
- Select relational/document/key-value patterns per access path.
- Define schema structure, constraints, and indexing strategy.

### 4. Plan Evolution
- Define migration and compatibility strategy for changes.
- Identify rollout and rollback considerations.

The rest: https://github.com/rsmdt/the-startup/blob/HEAD/plugins/team/skills/development/domain-modeling/SKILL.md
