domain-driven-design · davila7 — Claude Code skill: plan DDD work
Decides whether a project needs full DDD, then lays out the work from strategic modeling to evented architecture.
npx claude-code-templates@latest --skill development/domain-driven-designWhat domain-driven-design does
Before any modeling starts, the skill runs a viability check. Four signals matter: business rules that are complex or shifting, several teams whose models collide, unstable integration contracts, and a need for auditability with explicit invariants. Two or more of those being true is the bar for going ahead.
Strategic artifacts come next — subdomains, bounded contexts, a glossary of the language. From there the skill routes the task to a specialized one: @ddd-strategic-design, @ddd-context-mapping, @ddd-tactical-patterns, @cqrs-implementation, @event-sourcing-architect, @event-store-design, @saga-orchestration, @projection-patterns, @architecture-decision-records. Templates live in references/ddd-deliverables.md.
Every run returns the same shape of answer: scope and assumptions, the current stage, artifacts produced, open risks, and a recommended next step. Framework-specific code generation is out of scope, and the skill does not stand in for workshops with domain experts. Without access to domain knowledge or someone acting as a proxy product expert, it has nothing to work from.
What it helps with
- judge whether full DDD pays off for a given system
- split a tangled domain into subdomains and bounded contexts
- build a shared language glossary for the team
- tie strategic decisions to tactical implementation patterns
- plan CQRS, event sourcing and sagas around domain needs
Example prompts for the agent
- Run the DDD viability check on our domain and show the subdomains and contexts that fall out
- Tell me which stage we are at and which skill to hand this task to next
How to install domain-driven-design
1claude-code-templates
npx claude-code-templates@latest --skill development/domain-driven-design2Skills CLI (Vercel)
npx skills add davila7/claude-code-templates --skill domain-driven-design -a claude-code3Manually: put the files in place
~/.claude/skills/domain-driven-design/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/domain-driven-design/
Manually: put the files in place
.agents/skills/domain-driven-design/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/domain-driven-design/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install davila7/claude-code-templates domain-driven-design2Manually: put the files in place
.github/skills/domain-driven-design/SKILL.mdPlatform CLI
gemini skills install https://github.com/davila7/claude-code-templates --path cli-tool/components/skills/development/domain-driven-designManually: put the files in place
.devin/skills/domain-driven-design/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about domain-driven-design
How do I install domain-driven-design in Claude Code?
Run npx claude-code-templates@latest --skill development/domain-driven-design. Alternatively use npx skills add davila7/claude-code-templates --skill domain-driven-design -a claude-code. The skill file lands at ~/.claude/skills/domain-driven-design/SKILL.md.
What does domain-driven-design do?
It checks whether full DDD is justified, produces strategic artifacts, and points the task at the right specialized skill. Each run reports scope, stage, artifacts and risks.
When should I skip this skill?
Plain CRUD with little business complexity, isolated bug fixes, or a situation where nobody holds domain knowledge and no proxy expert exists. The author also warns against using it to justify over-engineering a simple system.
Similar skills
All skills for Backend and APIs →domain-driven-design by other authors comes first.