mcpField
D
domain-modeling

domain-modeling

github.com/paololeonardi開発058 回インストール10 週間前に更新
リポジトリ

domain-modeling について

domain-modeling は、プロジェクトのドメインモデルを変更するチームやコーディングエージェント向けのスキルです。曖昧な用語を問い直し、具体的なシナリオやコードで関係性を検証して、確定した語彙をコンテキストファイルに記録します。重要なトレードオフに限り ADR を提案します。

主な機能

  1. 01用語集と食い違う用語を指摘
  2. 02曖昧なドメイン用語を明確化
  3. 03エッジケースで関係性を検証
  4. 04コードと説明を照合
  5. 05用語確定時に CONTEXT.md を更新
  6. 06条件を満たす判断で ADR を提案

活用シーン

  1. 01設計中の多義的な用語を明確化
  2. 02ドメイン関係のエッジケースを検討
  3. 03確定した語彙を CONTEXT.md に記録

インストール

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

$npx skills add https://github.com/paololeonardi/mattpocock-skills --skill domain-modeling

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

ADR-FORMAT.md
CONTEXT-FORMAT.md
agents/
openai.yaml

詳細

ドメインモデリング

設計を進める中で、プロジェクトのドメインモデルを積極的に構築し、磨き上げてください。これは能動的な取り組みです。用語に疑問を投げかけ、エッジケースのシナリオを考案し、用語集や決定事項が明確になったその場で書き留めます。語彙を確認するためにCONTEXT.mdを読むだけでは、このスキルには当たりません。それはどのスキルでもできる一行の習慣です。このスキルは、モデルを変更するときのものであり、単にそれを利用するときのものではありません。

ファイル構成

ほとんどのリポジトリには、単一のコンテキストがあります。

/
├── CONTEXT.md
├── docs/
│   └── adr/
│       ├── 0001-event-sourced-orders.md
│       └── 0002-postgres-for-write-model.md
└── src/

ルートにCONTEXT-MAP.mdがある場合、リポジトリには複数のコンテキストがあります。このマップには、それぞれのコンテキストの場所が記されています。

/
├── CONTEXT-MAP.md
├── docs/
│   └── adr/                          ← system-wide decisions
├── src/
│   ├── ordering/
│   │   ├── CONTEXT.md
│   │   └── docs/adr/                 ← context-specific decisions
│   └── billing/
│       ├── CONTEXT.md
│       └── docs/adr/

ファイルは必要になった時点で作成してください。書くことがある場合に限ります。CONTEXT.mdがなければ、最初の用語が確定したときに作成します。docs/adr/がなければ、最初のADRが必要になったときに作成します。

セッション中

用語集と照らし合わせて疑問を投げかける

ユーザーがCONTEXT.mdの既存の用語と食い違う用語を使ったら、すぐに指摘してください。「用語集では『cancellation』をXと定義していますが、Yを指しているようです。どちらでしょうか?」

曖昧な表現を明確にする

ユーザーが曖昧な用語や複数の意味に取れる用語を使ったら、正確で標準的な用語を提案してください。「『account』と言っていますが、CustomerとUserのどちらを指していますか?この2つは異なるものです。」

具体的なシナリオについて話し合う

ドメインの関係性について話し合う際は、具体的なシナリオを用いて検証してください。エッジケースを探り、概念間の境界をユーザーが明確にせざるを得ないシナリオを考案します。

コードと照らし合わせる

ユーザーが何かの動作を説明したら、コードの内容と一致しているか確認してください。矛盾を見つけたら、指摘してください。「コードでは注文全体をキャンセルしていますが、今は一部キャンセルが可能だと言いました。どちらが正しいでしょうか?」

CONTEXT.mdをその場で更新する

用語が確定したら、その場でCONTEXT.mdを更新してください。後回しにしてまとめてはいけません。確定した内容をすぐに記録します。CONTEXT-FORMAT.mdの形式を使用してください。

CONTEXT.mdには実装の詳細を一切含めないでください。CONTEXT.mdを仕様書、作業メモ、実装上の決定事項を記録する場所として扱ってはいけません。ここに記すのは用語集だけです。

ADRの提案は必要最小限にする

ADRの作成を提案するのは、次の3つすべてに当てはまる場合に限ります。

  1. 覆すのが難しい:後から判断を変えるコストが大きい
  2. 背景がなければ意外に思われる:将来の読者が「なぜこの方法にしたのか」と疑問に思う
  3. 実際のトレードオフの結果である:現実的な選択肢が複数あり、具体的な理由に基づいてそのうちの1つを選んだ

どれか1つでも当てはまらなければ、ADRは作成しません。ADR-FORMAT.mdの形式を使用してください。

コメント