domain-modeling

Model domain concepts as explicit types with bounded contexts and invariants.

25|3|Updated Jul 14, 2026
One-click install
npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill domain-modeling-nimadorostkar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/nimadorostkar/Claude-Skills-collection/tree/main/skills/development/domain-modeling
Command: npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill domain-modeling-nimadorostkar

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill resolves the disconnect between business terminology and technical implementation, preventing the complexity that arises when code structures do not accurately reflect domain concepts.

Core Features & Use Cases

  • Ubiquitous Language: Establishes a shared, enforced vocabulary between developers and domain experts.
  • Bounded Contexts: Identifies and maps clear boundaries where domain meanings change, preventing model collision.
  • Domain Types: Replaces primitive obsession with robust types that enforce business invariants at the type level.
  • Use Case: When a system uses a generic User class for billing, authentication, and profile management, this skill guides the refactoring into distinct, bounded models to reduce coupling and bugs.

Quick Start

Use the domain-modeling skill to analyze the current codebase and identify where business vocabulary mismatches exist.

Frequently Asked Questions about domain-modeling

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

FAQPage Schema
How do I fix vocabulary mismatches between business terminology and code logic?

Resolve vocabulary mismatches by establishing a ubiquitous language that aligns code structures with domain concepts, ensuring developers and domain experts share and enforce a strict, unified vocabulary.

When do I need to identify bounded contexts in a complex system architecture?

Identify bounded contexts when domain meanings change across different subsystems, preventing model collision and reducing coupling by mapping clear boundaries where specific business rules apply.

How do I refactor a generic class causing bugs in complex system architecture?

Refactor a generic class by splitting it into distinct, bounded domain models that enforce strict business invariants and replace primitive obsession with robust value objects.

What is the best way to enforce domain invariants when designing new subsystems?

Enforce domain invariants by modeling domain concepts as explicit types, replacing generic primitives with robust value objects that validate business rules directly at the type level.

Does domain modeling work for refactoring legacy modules with strict business rules?

Domain modeling works for refactoring legacy modules by analyzing existing code to identify ubiquitous language gaps and restructuring it into explicit types that strictly enforce business invariants.

Why does model collision happen when a system uses generic classes for multiple purposes?

Model collision happens because a generic class spans multiple bounded contexts with conflicting business rules, causing vocabulary mismatches and coupling that require splitting into distinct domain models.