SuperAPI AI 工具集

ddd-validate

编程与开发

查看项目

更新于 10-15 15:22

技能介绍

用途

ddd-validate 用于在 DDD(领域驱动设计)代码库中校验领域边界完整性。当需要审计代码库中限界上下文之间是否存在泄漏、聚合不变量是否被正确执行时,可使用该技能。

主要能力

1. 发现上下文

扫描 src/*/domain/ 目录,找出所有限界上下文。

2. 检查跨边界违规

  • 对每个上下文,扫描所有 .ts 文件中的 import 语句
  • 标记任何直接深入到其他上下文 domain/ 目录的导入
  • 允许:从其他上下文的公开 index.ts(应用层)导入
  • 违规:直接从 src/<其他上下文>/domain/entities/... 导入

用于查找跨边界导入的命令:

for ctx in $(find src -maxdepth 2 -name "domain" -type d | sed 's|src/||;s|/domain||'); do
  grep -rn "from ['\"].*src/" "src/$ctx/" --include="*.ts" | grep -v "src/$ctx/" || true
done

3. 检查聚合不变量执行

  • 扫描聚合根实体,查找绕过校验的公开 setter
  • 标记缺少不变量检查的可变公开属性
  • 验证子实体不可被直接访问(必须经由聚合根)

4. 检查事件命名规范

  • 领域事件应采用过去时命名(例如 OrderCreated,而非 CreateOrder)
  • 事件应不可变(无公开 setter)
  • 事件应携带聚合 ID

5. 检查仓储模式

  • 仓储接口应位于 domain/repositories/,而非 infrastructure/
  • 仓储实现应位于 infrastructure/,而非 domain/
  • 每个聚合根应恰好对应一个仓储

6. 报告发现

  • 输出违规表格,包含文件路径、行号、违规类型与建议
  • 分类为:BOUNDARY、INVARIANT、EVENT、REPOSITORY
  • 以汇总结束:违规总数、按分类统计、严重程度

7. 存储结果

npx @claude-flow/cli@latest memory store --key "ddd-validation-TIMESTAMP" --value "RESULTS_SUMMARY" --namespace tasks
npx @claude-flow/cli@latest hooks post-task --task-id "ddd-validate" --success true --store-results true

适用场景

适用于对采用 DDD 架构、以 TypeScript 编写的代码库进行领域边界审计,检查限界上下文之间的耦合泄漏,以及聚合、事件、仓储等模式的一致性问题。

限制

该技能针对 src/*/domain/ 目录结构与 .ts 文件进行扫描,其检查规则基于上述边界、不变量、事件与仓储约定;关于收费、价格、平台支持范围及其他未在资料中说明的信息,暂未提供。