arch-ddd

Organize software domains into bounded contexts and aggregates using DDD patterns.

1|Updated Dec 22, 2025
One-click install
npx skills add https://github.com/CybLow/pypaginate --skill arch-ddd-cyblow
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: arch-ddd
Source: https://github.com/CybLow/pypaginate/tree/main/.opencode/skills/arch-ddd
Command: npx skills add https://github.com/CybLow/pypaginate --skill arch-ddd-cyblow

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

DDD provides a disciplined approach to modeling complex domains by aligning software structure with business concepts, reducing ambiguity and cognitive load.

Core Features & Use Cases

  • Strategic patterns: bounded contexts, context mapping, and anti-corruption layers.
  • Tactical patterns: entities, value objects, aggregates, domain events, and domain services.
  • Context mapping guidance for coordinating multi-team architectures and evolving domains.

Quick Start

Deploy a small domain model and begin separating it into bounded contexts and aggregates to see DDD in action.

Frequently Asked Questions about arch-ddd

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

FAQPage Schema
What is domain-driven design and how does it reduce architectural complexity?

Domain-driven design (DDD) organizes software domains by aligning structure with business concepts. It reduces architectural complexity by enforcing clear boundaries through strategic patterns like bounded contexts and tactical patterns like aggregates and domain events.

How do I separate a domain model into bounded contexts and aggregates?

Separate a domain model by deploying a small prototype and dividing it into bounded contexts and aggregates. Apply DDD tactical patterns like entities, value objects, and domain events to enforce clear boundaries and reduce architectural complexity.

When do I need context mapping for multi-team architectures?

Context mapping is needed when multiple teams work on interdependent bounded contexts. DDD provides context mapping guidance to coordinate multi-team architectures, establish anti-corruption layers, and evolve complex enterprise domains while maintaining clear boundaries.

What is the difference between entities, value objects, and domain services in DDD?

Entities possess unique identity, value objects are defined by attributes, and domain services handle stateless operations. These DDD tactical patterns organize domain logic within aggregates and bounded contexts to reduce architectural complexity in enterprise systems.

Is domain-driven design suitable for complex enterprise systems with multiple bounded contexts?

DDD is specifically designed for complex enterprise systems with multiple bounded contexts. It enforces clear boundaries and provides strategic and tactical patterns to manage architectural complexity, making it ideal for multi-team domain modeling.

When should I not use domain events and aggregates for domain modeling?

Avoid DDD aggregates and domain events when modeling simple domains lacking complex business rules. DDD targets complex enterprise systems with multiple bounded contexts; applying it to small domains introduces unnecessary architectural overhead and cognitive load.