nw-ddd-tactical

Identify bounded-context boundaries and design aggregates with transactional consistency.

Updated Apr 15, 2026
One-click install
npx skills add https://github.com/StudentCristian/nWave-github --skill nw-ddd-tactical
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nw-ddd-tactical
Source: https://github.com/StudentCristian/nWave-github/tree/main/.github/skills/nw-ddd-tactical
Command: npx skills add https://github.com/StudentCristian/nWave-github --skill nw-ddd-tactical

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Tactical DDD provides a structured approach to organizing domain-centric code by defining aggregates, entities, value objects, domain events, repositories, and services while detecting anti-patterns.

Core Features & Use Cases

  • Aggregates: design boundaries and invariants inside a bounded context.
  • Entities & Value Objects: model identity and attributes with proper lifecycle.
  • Domain Events: event-based communication across aggregates.
  • Repositories & Domain Services: persistence mapping and cross-aggregate logic.
  • Anti-Pattern Detection: identify common domain model pitfalls and remedies.

Quick Start

Map your bounded context to identify the aggregate root, its invariants, the related entities and value objects, and the domain events and repository interfaces.

Frequently Asked Questions about nw-ddd-tactical

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

FAQPage Schema
What is tactical domain-driven design and how does it organize domain logic?

Tactical domain-driven design is a structured approach to organizing domain-centric code by defining aggregates, entities, value objects, domain events, and repositories to enforce transactional consistency within bounded contexts.

How do I design aggregates and enforce transactional consistency in a bounded context?

Design aggregates by mapping your bounded context to identify the aggregate root, its invariants, and related entities. This enforces transactional consistency by ensuring all changes within the aggregate boundary satisfy its defined business rules.

When do I need domain events for communication across aggregates?

You need domain events for event-driven communication when coordinating actions across separate aggregates. They enable decoupled communication while maintaining the separation of concerns between domain logic and persistence boundaries.

Can I use tactical DDD to detect anti-patterns in my domain model?

Yes, tactical DDD identifies common domain model pitfalls and provides remedies. It detects anti-patterns by evaluating your aggregate design, entity lifecycles, and repository implementations against disciplined domain-driven design guidelines.

What is the best way to separate domain logic from persistence in DDD?

The best way to separate domain logic from persistence is by using repositories for persistence mapping and domain services for cross-aggregate logic. This ensures aggregates and value objects remain free of infrastructure concerns.

Why does defining value objects matter for modeling identity and attributes?

Defining value objects matters because they model attributes without identity, ensuring proper lifecycle management. They work alongside entities to encapsulate domain invariants and prevent common domain modeling pitfalls within your bounded context.