design-philosophy-domain-driven

Installation
SKILL.md

Design Philosophy: Domain-Driven Design

DDD as a thinking tool for aligning system architecture with business reality.


The Core Insight

Most systems fail not because of bad technology choices but because their structure doesn't match the problem they're solving. Domain-Driven Design is a response to that observation: the shape of your software should reflect the shape of your business domain.

This sounds obvious. In practice, it's rare. Most codebases are organized around technical concerns (controllers, services, repositories) rather than domain concepts (orders, shipments, policies). The result is code where you can't find the business logic — it's scattered across layers, buried in translation code, and duplicated in ways that diverge over time.

DDD provides a set of thinking tools for fixing that. Some are strategic (how to draw boundaries), some are tactical (how to model within a boundary), and the community is guilty of conflating the two. The strategic tools are almost universally valuable. The tactical tools are situational.

This skill focuses on applying DDD to real architecture decisions. Not a glossary of Evans-book terminology — a thinking framework for when you're staring at a system that doesn't make sense and need to figure out where the boundaries should be.


1. Ubiquitous Language

Installs
2
GitHub Stars
3
First Seen
9 days ago
design-philosophy-domain-driven — microsoft/amplifier-bundle-systems-design