ddd-entity-specialist

Model domain entities, value objects, and repositories in mgamadeus/ddd.

3|Updated Feb 12, 2024
One-click install
npx skills add https://github.com/mgamadeus/ddd --skill ddd-entity-specialist
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ddd-entity-specialist
Source: https://github.com/mgamadeus/ddd/tree/main/.claude/skills/ddd-entity-specialist
Command: npx skills add https://github.com/mgamadeus/ddd --skill ddd-entity-specialist

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

In complex domain-driven architectures, teams struggle to consistently design entities, value objects, and persistence layers that align with business rules. The DDD Entity Specialist provides a structured blueprint for creating Entities, EntitySets, value objects, DB repositories, lazy loading, and relationships within the mgamadeus/ddd framework to improve consistency and maintainability.

Core Features & Use Cases

  • Structured templates for Entity, EntitySet, and DB repositories in the mgamadeus/ddd framework.
  • Guidance on configuring lazy loading, relationships, and domain lifecycle, including validation and change history.
  • Best practices for using framework attributes and repository patterns to implement clean, scalable Domain Models across modules.
  • Use Case: Designing a new domain module requires standardized patterns for entities, persistence, and lifecycles.

Quick Start

Define your Domain entity by following the DDD Entity Specialist templates in src/Domain and create corresponding EntitySet and DB repositories with proper LazyLoad bindings.

Frequently Asked Questions about ddd-entity-specialist

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

FAQPage Schema
How do I design domain entities and value objects in Symfony using Domain-Driven Design?

Designing domain entities in Symfony with DDD requires structured templates for entities, value objects, and repository patterns. This specialist provides blueprints for creating domain models, EntitySets, and DB repositories using framework attributes to ensure consistency and maintainability.

What is the best way to configure lazy loading and relationships for Doctrine repositories in a DDD architecture?

Configuring lazy loading and relationships for Doctrine repositories involves applying proper LazyLoad bindings within your DB repositories. The specialist guides setting up lazy-loaded relationships and domain lifecycles to maintain clean, scalable domain models across modules.

How do I implement the repository pattern in a Symfony and Doctrine project?

Implementing the repository pattern in Symfony requires creating corresponding EntitySet and DB repositories alongside your domain entities. The specialist offers structured templates and best practices to standardize persistence layers and align them with business rules.

Does this DDD entity specialist work with existing Symfony and Doctrine lifecycle mechanisms?

Yes, the DDD entity specialist works directly with existing Symfony and Doctrine lifecycle mechanisms. It ensures standard validation and change history tracking are consistently applied when designing or modifying domain models and entity sets.

When do I need an EntitySet and how do I structure it with my domain entities?

You need an EntitySet when designing a new domain module that requires standardized patterns for entities and persistence. You structure it by following specialist templates in your source directory and binding it to proper DB repositories with lazy loading.

Why does my domain model lack consistency across different Symfony modules?

Inconsistent domain models across Symfony modules often stem from lacking structured blueprints for entities and persistence layers. Applying standardized repository patterns, framework attributes, and consistent file layouts resolves these architectural inconsistencies.