Assess and Apply Domain-Driven Design
A DDD entry-point skill that runs a viability check, then routes to strategic, tactical, or event-sourcing sub-skills.
Why it matters
Determine if Domain-Driven Design (DDD) is suitable for your complex business domain. This skill helps you model explicit boundaries and connect strategic decisions to implementation patterns.
Outcomes
What it gets done
Perform a DDD viability check based on business complexity and team dynamics.
Generate strategic artifacts like subdomains, bounded contexts, and glossaries.
Route to specialized skills for tactical patterns, event sourcing, or CQRS.
Define success criteria and identify open risks for DDD adoption.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-domain-driven-design | bash Overview
Domain-Driven Design
A DDD entry-point skill that runs a viability check, produces strategic artifacts, and routes to specialized context-mapping, tactical, CQRS, or event-sourcing skills. Use it to decide whether a domain warrants full DDD and which specialized skill to apply next, not for simple CRUD or localized bug fixes.
What it does
Domain-Driven Design is an entry-point skill that first runs a viability check before committing to full DDD, then produces strategic artifacts (subdomains, bounded contexts, a language glossary) and routes the task to a specialized skill. Full DDD is recommended only when at least two of four signals hold: business rules are complex or fast-changing, multiple teams are causing model collisions, integration contracts are unstable, or auditability and explicit invariants are critical. The routing map covers strategic model and boundaries (@ddd-strategic-design), cross-context integration (@ddd-context-mapping), tactical code modeling (@ddd-tactical-patterns), read/write separation (@cqrs-implementation), event-sourcing (@event-sourcing-architect, @event-store-design), long-running workflows (@saga-orchestration), read models (@projection-patterns), and decision logs (@architecture-decision-records). A representative invocation:
Use @domain-driven-design to assess if this billing platform should adopt full DDD.
Then route to the right next skill and list artifacts we must produce this week.
When to use - and when NOT to
Use this skill when modeling a complex business domain with explicit boundaries, deciding whether full DDD is worth the added complexity, connecting strategic design decisions to implementation patterns, or planning CQRS, event sourcing, sagas, or projections from domain needs. Don't use it for simple CRUD with low business complexity, for localized bug fixes, or when there's no access to domain knowledge or a proxy product expert. It explicitly does not replace direct workshops with domain experts, does not provide framework-specific code generation, and should not be used to justify over-engineering a simple system. Templates are available in a companion references/ddd-deliverables.md file.
Inputs and outputs
Input is a business domain and its current complexity signals; output always includes scope and assumptions, the current stage (strategic, tactical, or evented), explicit artifacts produced, and open risks with a next-step recommendation - plus a routing decision to the appropriate specialized DDD skill.
Who it's for
Architects and teams deciding whether a domain warrants full DDD and, if so, which specialized DDD skill to apply next - strategic design, context mapping, tactical patterns, CQRS, event sourcing, or sagas - rather than picking a DDD pattern without first checking it's justified.
FAQ
Common questions
Discussion
Questions & comments ยท 0
Sign In Sign in to leave a comment.