implementing-onion-usecases
Installation
SKILL.md
オニオンアーキテクチャのユースケース層を実装する
ユースケースは、UI 層から呼ばれ、ドメインモデルを使って1つの操作をやり遂げる。 やることは「取得する → ドメインモデルのメソッドを呼ぶ → 保存する → 結果を返す」の手順だけで、業務の判断はドメインモデルに任せる。
対象範囲
TypeScript を対象にする。ドメイン層は Zod で書かれた type と関数のモデル(公開 API のオブジェクト Task.start など、ブランド付きの型、DomainError 継承のエラー class)を前提にする。
書くのはユースケース層だけである。ドメイン層(値オブジェクト・エンティティ・リポジトリやドメインサービスのインターフェース)は書かない。
ユースケースに要るドメインの部品が足りないとき(リポジトリにメソッドが無い、業務の判定を置くメソッドが無いなど)は、
何がどこに要るかを回答に示し、ユースケースの中で代わりに実装しない。ドメインの部品は、プロジェクトのドメイン層の流儀で別に書く(implementing-ddd-tactical-patterns-with-zod スキルがあれば、それを使う)。
インフラ層の実装(リポジトリの実装など)と、ユースケースを組み立てる composition root も書かない。