From ddd-skills
コードやロジックがドメイン層に属するかアプリケーション層に属するかを判定する。 次のような依頼があったときに使う:「このロジックはドメインか」「ドメインに置くべきか」 「ドメイン層かアプリケーション層か判定する」「ロジックの配置先を決める」 「このコードはどの層に属するか」「ユースケースかドメインか」 「ロジックの配置をレビューする」「レイヤー間の責務を分析する」。 または、ロジックの配置、ドメイン層、アプリケーション層、レイヤーの責務、ドメインロジックの判定に言及する場合にも使う。
How this skill is triggered — by the user, by Claude, or both
Slash command
/ddd-skills:domain-classifier [判定したいロジックやコードの説明][判定したいロジックやコードの説明]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
コードやロジックがドメイン層に属するかアプリケーション層(ユースケース層)に属するかを判定する。
コードやロジックがドメイン層に属するかアプリケーション層(ユースケース層)に属するかを判定する。
ロジックの配置を誤ると以下の問題が生じる:
このロジックはどの層に属するか?
│
├─ ビジネスルール・不変条件を表現する
│ └→ ドメイン層
│
├─ 「〜であるべき」「〜してはならない」というルール
│ └→ ドメイン層
│
├─ 外部システムとの通信を含む
│ └→ インフラ層(アダプタ)
│
├─ 複数の集約を協調させる
│ └→ アプリケーション層(ユースケース)
│
├─ トランザクション管理を行う
│ └→ アプリケーション層
│
├─ 認証・認可の判定を行う
│ └→ アプリケーション層(※ドメインポリシーとして表現できる場合はドメイン層)
│
├─ 通知・ログ出力などの副作用を制御する
│ └→ アプリケーション層
│
├─ データの変換・マッピングを行う
│ └→ インフラ層(アダプタ)
│
└─ UIの表示ロジックを含む
└→ プレゼンテーション層
配置すべきもの:
リトマステスト: 「ドメインエキスパートに説明して、意味が通じるか?」通じればドメインロジックである。
配置すべきもの:
リトマステスト: 「技術的な手順や調整を含むか?」含めばアプリケーション層である。
配置すべきもの:
| ロジック | 判定 | 理由 |
|---|---|---|
| 注文合計金額の計算 | ドメイン | ビジネスルール |
| 在庫が足りるか判定 | ドメイン | ビジネス不変条件 |
| 注文確定→在庫引当→通知の手順 | アプリケーション | オーケストレーション |
| メール送信 | インフラ | 外部システム通信 |
| 割引率の算出 | ドメイン | ビジネスルール |
| ユーザーの権限チェック | アプリケーション | 認可の制御 |
| DBからの注文取得 | インフラ | データアクセス |
| 注文のキャンセル可否判定 | ドメイン | ビジネスルール |
| CSV出力のフォーマット | インフラ | データ変換 |
判断が難しいケースの指針:
ドメインサービス vs アプリケーションサービス:
ドメインイベント発行のタイミング:
バリデーション:
既存コードを分析する際は、以下の手順で進める:
examples/ ディレクトリに具体例がある:
examples/classification-examples.pseudo — ロジック分類の具体例npx claudepluginhub dskst/ddd-skills --plugin ddd-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.