ClaudeMods
☰
ZH-TW
● 0 人在線上 · 瀏覽 0 次
贊助提交作品
GitHub 儲存庫 · 發布者 ruvnet

ruflo-ddd

面向 Claude Code 的領域驅動設計腳手架外掛,帶有函式掛鉤 Guard,可阻止將機密寫入 DDD 記憶體。

已翻譯

關於這個 mod

ruflo-ddd 是一個 Claude Code 外掛,用於建立領域驅動設計工件:限界上下文、聚合根、值物件、領域事件、儲存庫與防腐層,並將它們儲存為 AgentDB 中可導覽的圖。它提供 domain-modeler agent、技能(/ddd-context、/ddd-aggregate、/ddd-validate),以及 6 個 CLI 子命令,用於上下文管理、聚合/事件腳手架、驗證與上下文對映。從列出的版本開始,它也會作為函式掛鉤 mod 執行(需要 Claude Code 2.1.287+):預設開啟的 Guard 會拒絕包含金鑰、token 或密碼的領域模型記憶體寫入(只指出機密種類,絕不顯示機密值);本機 /ddd-mod 指令不需經過模型回合,就能回答 status/scan/contexts;狀態檔案會寫入 .claude-flow/ddd-mod/status.json;userConfig 中的 guard 選項可切換強制執行。安裝方式:claude --plugin-dir plugins/ruflo-ddd;使用 bash plugins/ruflo-ddd/scripts/smoke.sh 驗證(預期 10 passed, 0 failed)。此外掛絕不呼叫網路或產生程序,只能收緊工具呼叫,不能放寬。採用 MIT 授權條款。

安裝

請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。

claude plugin marketplace add ruvnet/ruflo
claude plugin install ruflo-ddd
原文 / README

ruflo-ddd

Domain-Driven Design scaffolding -- bounded contexts, aggregate roots, domain events, and anti-corruption layers.

Overview

Transforms business domains into well-structured bounded contexts with aggregate roots, value objects, domain events, repositories, and anti-corruption layers. Stores the domain model as a navigable graph in AgentDB with hierarchical nodes and causal edges for context dependencies.

Installation

claude --plugin-dir plugins/ruflo-ddd

Agents

| Agent | Model | Role | |-------|-------|------| | domain-modeler | sonnet | Map domains to bounded contexts, design aggregates with invariants, define domain events, generate ACL interfaces |

Skills

| Skill | Usage | Description | |-------|-------|-------------| | ddd-context | /ddd-context <context-name> | Create a bounded context with standard directory structure | | ddd-aggregate | /ddd-aggregate <context> <aggregate-name> | Scaffold an aggregate root with entity, value objects, repository, events, and test stubs | | ddd-validate | /ddd-validate | Detect cross-context import violations and aggregate invariant issues |

Commands (6 subcommands)

# Context management
ddd context create <name>
ddd context list

# Aggregate scaffolding
ddd aggregate <context> <name>
ddd event <context> <name>

# Validation & visualization
ddd validate                 # Check domain boundary violations
ddd map                      # Visualize context map with relationships

Directory Structure per Context

src/<context-name>/
  domain/
    entities/           # Entities and aggregate root
    value-objects/       # Immutable value objects
    events/             # Domain events
    services/           # Domain services
    repositories/       # Repository interfaces
  application/          # Use cases / application services
  infrastructure/       # Repository implementations, ACL adapters
  index.ts              # Public API of the context

Context Relationships

Detected via import analysis: upstream/downstream, ACL, shared kernel, published language. Boundary violations (direct cross-context imports) are flagged by ddd validate.

Compatibility

  • CLI: pinned to @claude-flow/cli v3.6 major+minor.
  • Verification: bash plugins/ruflo-ddd/scripts/smoke.sh is the contract.

Namespace coordination

This plugin owns the ddd-patterns AgentDB namespace (kebab-case, follows the convention from ruflo-agentdb ADR-0001 §"Namespace convention"). Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.

ddd-patterns stores reusable bounded-context shapes, aggregate templates, and event vocabularies for cross-project reuse. Accessed via memory_* tools (namespace-routed).

Verification

bash plugins/ruflo-ddd/scripts/smoke.sh
# Expected: "10 passed, 0 failed"

Architecture Decisions

Related Plugins

  • ruflo-agentdb — namespace convention owner; backing store for the domain graph
  • ruflo-adr -- Document domain decisions as Architecture Decision Records
  • ruflo-sparc -- Architecture phase leverages DDD bounded context patterns
  • ruflo-migrations -- Align migration boundaries with aggregate roots

License

MIT

As a mod

Since this version the plugin is also a function-hook mod (ADR-445 pattern; needs Claude Code 2.1.287 or later). It never calls the network or spawns a process, and it only tightens: it can refuse a call, never allow one.

  • Guard (default on): refuses domain-model memory writes (ddd-* keys and context:/aggregate: hierarchy edges) that hold a key, token or password. The reason names the kind of secret, never the value.
  • /ddd-mod: answered locally, no model turn: status, scan <text> (would the guard refuse this?), and contexts (folders under src/, src/contexts, src/modules with a domain/ layer).
  • Status file: .claude-flow/ddd-mod/status.json ({version, updatedMs, guard, blocked}), written at session start and when a call is blocked.
  • Option: guard (on | off, default on) in the plugin's userConfig.

Test it: claude plugin test plugins/ruflo-ddd and bash plugins/ruflo-ddd/scripts/smoke.sh.

更多類似作品