mcpField
D
ddd-validate

ddd-validate

github.com/ruvnetテスト・品質80.0k736 回インストール今日更新
リポジトリ

ddd-validate について

ddd-validateは、TypeScriptプロジェクトのドメイン駆動設計における境界や規約を確認する開発スキルです。境界づけられたコンテキスト、集約、イベント、リポジトリを点検し、結果を報告して保存します。

主な機能

  1. 01コンテキストの検出
  2. 02コンテキスト間インポートの確認
  3. 03集約不変条件の点検
  4. 04イベント規約の検証
  5. 05リポジトリ配置の確認
  6. 06結果の報告と保存

活用シーン

  1. 01ドメインコンテキスト間のインポート監査
  2. 02検証を迂回する集約セッターの特定
  3. 03ドメインイベントの命名と不変性の確認
  4. 04リポジトリのインターフェースと実装配置の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill ddd-validate

インストール後、Claude Code で/ddd-validateを入力して読み込まれたか確認します。

詳細

すべての境界づけられたコンテキストで、ドメイン境界の整合性を検証します。

手順

  1. コンテキストを検出する:src/*/domain/ をスキャンして、すべての境界づけられたコンテキストを見つけます。

  2. 境界を越える違反を確認する:

    • 各コンテキストについて、すべての .ts ファイルをスキャンしてインポート文を調べます
    • 別のコンテキストの domain/ ディレクトリを直接参照するインポートをすべて検出します
    • 許可:別のコンテキストの公開 index.ts(アプリケーション層)からのインポート
    • 違反:src/<other-context>/domain/entities/... からの直接インポート
    # Find cross-boundary imports
    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. 集約の不変条件の適用を確認する:

    • 集約ルートエンティティをスキャンし、検証を迂回するパブリックセッターを調べます
    • 不変条件のチェックがない変更可能なパブリックプロパティをすべて検出します
    • 子エンティティに直接アクセスできないことを確認します(集約ルート経由でアクセスする必要があります)
  4. イベントの命名規則を確認する:

    • ドメインイベントは過去形で命名します(例:OrderCreated。CreateOrder ではありません)
    • イベントは不変である必要があります(パブリックセッターなし)
    • イベントには集約 ID を含める必要があります
  5. リポジトリのパターンを確認する:

    • リポジトリインターフェースは infrastructure/ ではなく domain/repositories/ に配置する必要があります
    • リポジトリの実装は domain/ ではなく infrastructure/ に配置する必要があります
    • 各集約ルートに対して、リポジトリは厳密に 1 つである必要があります
  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
    

コメント