Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

distill-ddd

DDD Distilled』(Vaughn Vernon) と『Domain Modeling Made Functional』(Scott Wlaschin) をベースにした、対話型ドメイン駆動設計モデリングスキル。 Claude Code / Codex CLI / Gemini CLI の3環境、macOS / Linux / Windows で動作します。

AI がファシリテーター兼ドメインエキスパート(時に批判者)として振る舞い、以下12フェーズの対話を通じてモデリングをガイドします — discover, storming, contexts, mapping, aggregates, events, validate, glossary, workflows, types, simulate, publish。

Phase 1〜8 で戦略的設計からユビキタス言語までをマークダウンに落とし、Phase 9 でワークフローのパイプライン構造を設計、Phase 10 でコンパイル可能な型定義コードに翻訳、Phase 11 で型レベルのシナリオ検証と UI 項目自動抽出まで行います。Phase 12 (publish) で docs/domain/ の全成果物を、共通ナビで相互リンクした自己完結の HTML サイト(ファイルは別だがリンクで束ねられた“1つの HTML”)に変換します。Phase 13 (sync) は --analyze で見つけたモデルと実装の差異を、計画・実装してモデルとコードを一致させます。

インストール

macOS / Linux

git clone https://github.com/tango238/distill-ddd.git
cd distill-ddd
./install.sh

Windows (PowerShell)

git clone https://github.com/tango238/distill-ddd.git
cd distill-ddd
.\install.ps1

デフォルトでは対応する3つの CLI 全てにインストールされます。特定の CLI だけを対象にしたい場合はフラグを指定:

CLI bash PowerShell
Claude Code ./install.sh --claude .\install.ps1 -Claude
Codex CLI ./install.sh --codex .\install.ps1 -Codex
Gemini CLI ./install.sh --gemini .\install.ps1 -Gemini

アンインストール:

./install.sh --uninstall        # macOS / Linux
.\install.ps1 -Uninstall        # Windows

配置場所

各 CLI に、スキル本体 (SKILL.md + references + scripts) と /ddd を有効化するネイティブなエントリポイントの両方を配置します。

CLI スキル本体 エントリポイント (/ddd)
Claude Code ~/.claude/skills/ddd/ 同上(自動認識)
Codex CLI ~/.codex/skills/ddd/ ~/.codex/prompts/ddd.md
Gemini CLI ~/.gemini/skills/ddd/ ~/.gemini/commands/ddd.toml

Windows では %USERPROFILE% 配下に同構造で配置されます(例: %USERPROFILE%\.codex\prompts\ddd.md)。

使い方

3つの CLI いずれからも /ddd で起動できます:

/ddd                          フェーズ選択メニュー
/ddd <phase>                  指定フェーズに直接ジャンプ (discover, storming, contexts, ...)
/ddd <phase> --analyze        既存コードベースとモデルを突き合わせる
/ddd <phase> --challenge      批判モード: 前提を徹底的に疑う
/ddd sync                     モデル⇔実装の差異を計画・実装して解消する
/ddd --resume                 前回のセッション状態から再開
/ddd --status                 全フェーズの進捗を表示

フェーズ

# Phase 目的 成果物
1 discover Core Domain・ビジネスドライバー・問題空間を特定 discovery.md
2 storming Event Storming: イベント → コマンド → 集約 event-storming.md
3 contexts Bounded Context と Subdomain を定義 bounded-contexts.md
4 mapping コンテキスト間関係を描いた Context Map を作成 context-map.md
5 aggregates 4つのルールに基づく集約設計 aggregates.md
6 events ドメインイベントの命名・属性・因果関係を設計 domain-events.md
7 validate ユースケース・シナリオ・UI ウォークスルーでモデルを検証 validation.md
8 glossary ユビキタス言語を集約・洗練 glossary.md
9 workflows ワークフローのパイプライン構造(ステージ・ステップ・依存・エラー・副作用)を対話で設計 workflows.md
10 types ドメインモデルをコンパイル可能な型定義に翻訳(TypeScript / Kotlin / Scala / Rust / C# / F#) code/types/*.ts
11 simulate 型レベルのシナリオ検証と、Unvalidated* 型からの UI フィールド自動抽出 code/simulations/, ui-fields.md
12 publish 全成果物を共通ナビで相互リンクした自己完結 HTML サイトに変換 docs/domain/*.html
13 sync --analyze で見つけたモデル⇔実装の差異を、権威判定 → 計画 → 実装 → モデル再整合まで進める sync.md

成果物は、スキルを動かすプロジェクトの docs/domain/ に書き出されます。

/ddd sync--analyze の一歩先のフェーズです。--analyze が「差異を指摘するだけ」で止まるのに対し、 sync は差異ごとに モデルとコードのどちらが正か(model / code / 収束)を決め、コードを直すべき差異は 実装計画 → 承認 → TDD 実装 まで進め、コード変更で閉じた差異は docs/domain の赤付箋も更新して モデルとコードを一致させます。コミットは依頼時のみ・デフォルトブランチなら先にブランチを切ります。

/ddd publish は同梱の scripts/build_site.py(Python 3 標準ライブラリのみ・CDN 不要)で docs/domain/*.md*.html に変換し、全ページ共通の sticky ナビで束ねます。冪等なので編集後に再実行可能。

ライセンス

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages