AGENT SKILL

domain-driven-design

Use when aligning code structure with business concepts, designing service boundaries, or when domain experts and developers cannot agree on what things mean. Triggers on: "도메인 모델링", "바운디드 컨텍스트", "DDD", "domain-driven design", "bounded context".

License 许可
MIT
最近更新
2026-11-11
Stars
★ 3
Forks
1

01 前言 Front Matter

name
domain-driven-design
license
MIT
metadata
{ "version": "1.0.1" }
scenarios
[ "help me model this business domain", "how do I define bounded contexts for this system?", "what's the difference between entity and value object?", "도메인 모델 설계해줘", "바운디드 컨텍스트 어떻게 나눠야 해?", "도메인 전문가와 개발자 언어가 달라서 문제야" ]
description
Use when aligning code structure with business concepts, designing service boundaries, or when domain experts and developers cannot agree on what things mean. Triggers on: "도메인 모델링", "바운디드 컨텍스트", "DDD", "domain-driven design", "bounded context".
compatibility
{ "optional": [ "mcp-reasoner" ], "recommended": [ "think-tool", "sequential-thinking" ], "remote_mcp_note": "think-tool이 있으면 바운디드 컨텍스트 경계 결정과 컨텍스트 매핑 트레이드오프 분석이 더 정확해집니다. Claude 설정 → MCP Servers에서 remote SSE 엔드포인트를 추가하세요." }

02 资源文件 6

03 SKILL.md 正文

Standing Mandates

  • NEVER draw a context boundary from a noun list. A border goes where a term changes meaning, and the map quotes both meanings. Contexts cut per noun (Customer, Order, Product) become entity services that call each other on every request — the coupling stays, now over the network, and develop:service-boundary-validator then finds it.
  • A business rule nobody stated is marked [확인 필요: <rule>], never invented; an invented invariant ships as code.

Goal: every context on the map cites the term whose meaning changes at its border, every aggregate names the invariant it guards, and the closing tally recounts to the tables.

Domain-Driven Design

Keeps the code shaped like the business: shared words, explicit borders, small aggregates that guard real rules.

Not for layering or the dependency rule (develop:clean-architecture); checking whether existing service cuts hold (develop:service-boundary-validator); topology, ADRs, datastore choice (develop:architecture-designer); running a discovery workshop from nothing (develop:event-storming). Plain CRUD with no rules → say so and stop.

Process

  1. Read before asking. Collect the vocabulary already in the code, docs, tickets and the user's words. Ask at most one line, only for what none of them answers.
  2. Language. List each key term with its meaning per speaker or module. A term with two meanings is a border candidate; a technical name (Manager, Helper, Processor) marks an unnamed concept. Detail: references/ubiquitous-language.md.
  3. Contexts. Draw a border at each meaning change, name the relationship on each edge (ACL, Shared Kernel, Conformist, Open Host / Published Language) and classify each context core / supporting / generic. Detail: references/bounded-contexts.md, references/strategic-design.md.
  4. Aggregates. Per context: entities vs value objects, then aggregates sized to one invariant each, referencing other aggregates by id. An aggregate with no invariant to name is not one — fold it or drop it. Detail: references/building-blocks.md.
  5. Events and persistence. Past-tense events each aggregate emits, with consumers; repository interfaces in the domain, factories where construction can fail. Detail: references/domain-events.md, references/repositories-factories.md.
  6. Check. Recount: contexts without a quoted term, aggregates without an invariant, rules left in services over a hollow model, outside systems reached without translation. Fix or list each; then write the tally.

Output Template

Context map — Mermaid or a table: context, type (core/supporting/generic), edges with relationship pattern.

Context Border term Meaning here Meaning across the border
Billing "account" payer with a balance Identity: login credentials
Context Aggregate Invariant it guards Events emitted → consumer
Ordering Order total = Σ lines; no lines after placed OrderPlaced → Billing

Glossary: term — definition, per context. Open: each [확인 필요: …] with who can answer.

Tally: <n> contexts (core <a> / supporting <b> / generic <c>) · <m> aggregates, <m> with an invariant · <k> open rules.

What Claude Does / What You Do

Claude You
Extracts terms from code and docs, draws borders where meanings split Confirm each meaning with a domain expert
Sizes aggregates to named invariants; marks unstated rules Supply or reject each [확인 필요] rule
Names events, consumers and repository interfaces Decide which context is core and where effort goes

Related Skills

  • develop:event-storming — discover events and terms with the team before modelling
  • develop:service-boundary-validator — test whether the drawn borders survive as service cuts
  • develop:clean-architecture — layers and the dependency rule inside a context
  • develop:architecture-designer — topology and ADRs once the contexts are set

04 同仓库更多 Skills

newkayak12
newkayak12/claude-skills

diagram

Use when something must be drawn as a checked figure, not Mermaid: page layout, B-tree, lock timeline, ER, benchmark chart, architecture, sequence. SVG + PNG. Triggers: "도식화해줘", "그림으로 그려줘", "책에 넣을 그림", "시퀀스 다이어그램", "draw this as a figure".

★ 3
newkayak12
newkayak12/claude-skills

test-master

Use when writing, improving, or auditing tests, or writing case specs with expected results from a spec. Triggers: "테스트 작성", "테스트 케이스 작성", "test case writing", "단위 테스트", "커버리지 분석", "test plan", "defect report".

测试与质量Skill与智能体开发
★ 3
newkayak12
newkayak12/claude-skills

sre-engineer

Use when setting up production reliability practices. Triggers on: "SLO 정하고 싶어", "에러 버짓", "알람 피로", "반복 작업(toil) 줄이기", "golden signals dashboard", "burn-rate alert". Not for active incidents or chaos tests.

Skill与智能体开发
★ 3
newkayak12
newkayak12/claude-skills

sql-pro

Use when someone needs help writing or rewriting SQL — authoring complex joins, CTEs, window functions, or recursive queries — or designing a schema from scratch, normalizing an existing one, or migrating queries between database dialects.

数据分析师后端与接口Skill与智能体开发
★ 3
newkayak12
newkayak12/claude-skills

spring-boot-engineer

Use when building or extending a Spring Boot 3.x Java backend — REST, Spring Security, JPA, WebFlux, Actuator. Triggers on: "Spring Boot API", "스프링 시큐리티 설정", "JPA 연동". Not for service decomposition or query tuning.

开发工程师后端与接口Skill与智能体开发
★ 3
newkayak12
newkayak12/claude-skills

spec-driven-development

Use when a feature should be specified before it is coded — stories, acceptance criteria, tasks, a per-criterion check. Triggers: "스펙 먼저", "명세부터 쓰고 구현", "수용 기준 먼저", "spec first", "spec-driven development".

Skill与智能体开发
★ 3