关于 ddd-aggregate
ddd-aggregate 是开发技能,可在已有的限界上下文中搭建领域驱动设计聚合根。它创建领域层文件和测试框架,并将模型记录到 Ruflo。
主要功能
- 01验证已有的限界上下文
- 02创建聚合根与值对象
- 03定义仓储接口
- 04添加创建和更新领域事件
- 05生成单元测试框架及 barrel 导出
- 06将模型存入 Ruflo
适用场景
- 01在已有上下文中开始构建聚合
- 02建立领域实体与 ID 结构
- 03搭建仓储和事件定义
MCP 相关
使用 Ruflo MCP 工具将聚合写入领域模型图和任务记忆。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill ddd-aggregate安装后在 Claude Code 中输入/ddd-aggregate确认已加载。
详细介绍
在限界上下文中搭建完整的聚合根。
将 $ARGUMENTS 解析为 <context-name> <aggregate-name>(两者均采用 kebab-case)。该上下文必须已存在于 src/ 下。
步骤
-
验证:确认
src/<context>/domain/存在。如果不存在,建议先运行/ddd-context <context>。 -
任务前钩子:
npx @claude-flow/cli@latest hooks pre-task --description "DDD aggregate: <aggregate-name> in <context>" -
创建聚合根实体:
- 文件:
src/<context>/domain/entities/<aggregate-name>.entity.ts - 包含:唯一 ID 字段、带不变量验证的构造函数、执行业务规则校验的领域方法,以及基于身份的
equals() - 导出一个扩展或实现基础
AggregateRoot接口的 TypeScript 类
- 文件:
-
创建值对象:
- 文件:
src/<context>/domain/value-objects/<aggregate-name>-id.value-object.ts - 包含:带工厂方法和验证逻辑的不可变 ID 值对象
- 根据聚合的属性添加其他值对象
- 文件:
-
创建仓储接口:
- 文件:
src/<context>/domain/repositories/<aggregate-name>.repository.ts - 包含:
findById、save、delete方法 - 使用聚合根及其 ID 值对象作为类型
- 这仅是一个接口——不包含实现(基础设施关注点)
- 文件:
-
创建领域事件:
- 文件:
src/<context>/domain/events/<aggregate-name>-created.event.ts - 文件:
src/<context>/domain/events/<aggregate-name>-updated.event.ts - 包含:事件名称(过去时)、时间戳、聚合 ID、负载
- 文件:
-
创建单元测试桩:
- 文件:
src/<context>/domain/entities/<aggregate-name>.entity.test.ts - 包含:用于测试构造不变量、领域方法和相等性的用例
- 使用
describe/it,用should [behavior] when [condition]格式命名
- 文件:
-
更新导出汇总文件:将新文件添加到相关的
index.ts导出汇总文件中。 -
存入领域模型图:
mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store --parent "context:<context>" --child "aggregate:<aggregate-name>" --relation "contains" mcp__plugin_ruflo-core_ruflo__memory_store --key "ddd-aggregate-<context>-<aggregate-name>" --value "AGGREGATE_SUMMARY" --namespace tasks -
任务后钩子:
npx @claude-flow/cli@latest hooks post-task --task-id "ddd-aggregate-<aggregate-name>" --success true --train-neural true
评论
支持 Markdown