domain-modeling

Model complex business domains and define bounded contexts for scalable architectures.

7|Updated Mar 19, 2026
One-click install
npx skills add https://github.com/camilooscargbaptista/cto-toolkit --skill domain-modeling-camilooscargbaptista
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/camilooscargbaptista/cto-toolkit/tree/main/domain-modeling
Command: npx skills add https://github.com/camilooscargbaptista/cto-toolkit --skill domain-modeling-camilooscargbaptista

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Helps teams structure complex business logic by identifying bounded contexts, aggregates, value objects, and domain events so business rules are implemented where they belong and the anemic domain anti-pattern is avoided.

Core Features & Use Cases

  • Event Storming guidance to discover domain events, commands, and actors during collaborative workshops.
  • Bounded Context & Aggregate design recommendations to enforce transactional boundaries and ownership of data.
  • Value Object and Domain Event patterns with quality gates to reduce primitive obsession and ensure invariants.
  • Use Case: Decompose a monolith into services by mapping contexts, defining aggregate responsibilities, and specifying integration events.

Quick Start

Ask the assistant to run an event storming analysis for the payments domain and propose bounded contexts, aggregates, domain events, and value objects based on the provided business rules.

Frequently Asked Questions about domain-modeling

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

FAQPage Schema
What is event storming and how does it help with domain-driven design?

Event storming is a collaborative workshop process used to discover domain events, commands, and actors. It helps teams model complex business domains by mapping behaviors and producing artifacts that define bounded contexts and aggregate boundaries.

Can I use domain events and value objects to enforce invariants across cross-team discovery sessions?

Avoid the anemic domain model anti-pattern by implementing business rules within aggregates and using value object patterns. Applying quality gates ensures invariants are enforced and reduces primitive obsession by replacing basic types with rich domain concepts.

What's the best way to map aggregates and commands for a new module design?

Yes, you can use domain events and value objects during cross-team discovery sessions to enforce invariants. The process yields event storming artifacts and quality gates that ensure business rules are implemented where they belong across shared contexts.

When should I not use aggregate boundaries for service decomposition?

The best way to map aggregates and commands for new module design is running an event storming analysis on the target domain. This specifies aggregate responsibilities, defines transactional boundaries, and produces value object recommendations.

How do I define bounded contexts when decomposing a monolith into services?

You should reconsider using aggregate boundaries for service decomposition when business rules are simple or lack complex invariants. Forcing bounded contexts in these cases can introduce unnecessary integration events and overcomplicate cross-team coordination.