# domain-driven-design

Decides whether a project needs full DDD, then lays out the work from strategic modeling to evented architecture.

- skill · `type=skill` · Claude Code · 93 installs
- Author: davila7
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/davila7/claude-code-templates/tree/HEAD/cli-tool/components/skills/development/domain-driven-design
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/skills/domain-driven-design

## What it 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.

## Install

### Claude Code (native platform)

1. **claude-code-templates**
```bash
npx claude-code-templates@latest --skill development/domain-driven-design
```

2. **Skills CLI (Vercel)**
```bash
npx skills add davila7/claude-code-templates --skill domain-driven-design -a claude-code
```

3. **Manually: put the files in place**
- File: `~/.claude/skills/domain-driven-design/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/domain-driven-design/

### Codex

**Manually: put the files in place**
- File: `.agents/skills/domain-driven-design/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

**Manually: put the files in place**
- File: `.cursor/skills/domain-driven-design/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install davila7/claude-code-templates domain-driven-design
```

2. **Manually: put the files in place**
- File: `.github/skills/domain-driven-design/SKILL.md`

### Gemini CLI

**Platform CLI**
```bash
gemini skills install https://github.com/davila7/claude-code-templates --path cli-tool/components/skills/development/domain-driven-design
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/domain-driven-design/SKILL.md` — The legacy .windsurf/skills/ path still works

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/davila7/claude-code-templates/tree/HEAD/cli-tool/components/skills/development/domain-driven-design

## When to use it
- 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
- 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

## Similar
- [enterprise-architecture-patterns](https://affpapa.org/en/nevibecode/skills/enterprise-architecture-patterns.md) — skill · 527 installs
- [event-sourcing-architect](https://affpapa.org/en/nevibecode/agents/event-sourcing-architect.md) — subagent · ★ 41823
- [nestjs-hexagonal](https://affpapa.org/en/nevibecode/plugins/nestjs-hexagonal.md) — plugin · ★ 5
- [m09-domain](https://affpapa.org/en/nevibecode/skills/m09-domain.md) — skill · 3300 installs
- [domain-analysis](https://affpapa.org/en/nevibecode/skills/domain-analysis.md) — skill · 359 installs
- [cqrs-implementation](https://affpapa.org/en/nevibecode/skills/cqrs-implementation.md) — skill · 11000 installs

## Other versions with the same name
- [domain-driven-design · wondelai](https://affpapa.org/en/nevibecode/skills/wondelai-domain-driven-design.md) — 7200 installs
- [domain-driven-design · yonatangross](https://affpapa.org/en/nevibecode/skills/orchestkit-domain-driven-design.md) — 1300 installs

From the same set: [davila7/claude-code-templates](https://affpapa.org/en/nevibecode/by/davila7/claude-code-templates.md) — 495 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
