jpskill.com
🛠️ 開発・MCP コミュニティ

domain

プロジェクトの領域モデルに基づいて計画を立て、専門用語の矛盾点を洗い出し、決定事項が明確になるにつれて関連ドキュメントを更新し、領域境界に関わる作業を円滑に進めるSkill。

📜 元の英語説明(参考)

Cook a plan against the project's domain model. Stress-tests terminology, surfaces contradictions with code, and updates CONTEXT.md, UBIQUITOUS_LANGUAGE.md, and ADRs inline as decisions crystallize. Use when planning a feature, refactoring, or any work that touches domain boundaries.

🇯🇵 日本人クリエイター向け解説

一言でいうと

プロジェクトの領域モデルに基づいて計画を立て、専門用語の矛盾点を洗い出し、決定事項が明確になるにつれて関連ドキュメントを更新し、領域境界に関わる作業を円滑に進めるSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o domain.zip https://jpskill.com/download/10182.zip && unzip -o domain.zip && rm domain.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10182.zip -OutFile "$d\domain.zip"; Expand-Archive "$d\domain.zip" -DestinationPath $d -Force; ri "$d\domain.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して domain.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → domain フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

ドメインモデルのクッキングセッション

共通理解に達するまで、この計画のあらゆる側面について徹底的に聞き込みます。設計ツリーの各ブランチを一つずつ辿り、決定事項間の依存関係を解消していきます。各質問に対して、推奨される回答を提供してください。

質問は一度に一つずつ行い、継続する前にフィードバックを待ちます。

質問がコードベースを調べることで答えられる場合は、質問する代わりにコードベースを調べてください

プロジェクトのコンテキストを発見する

開始する前に、既存のドメインドキュメントを見つけて読んでください。以下の場所を確認してください(順番に)。

  1. docs/CONTEXT_MAP.md — 存在する場合、これはマルチコンテキストプロジェクトです。これを読んで、境界づけられたコンテキストとその関係を理解してください。
  2. docs/UBIQUITOUS_LANGUAGE.md — 共通の用語集です。これを読んで、標準的な用語を理解してください。
  3. docs/contexts/*/CONTEXT.md — コンテキストごとのドキュメントです。現在の計画に関連するものを読んでください。
  4. CLAUDE.md — プロジェクトレベルのコンテキストです。

これらのいずれも存在しない場合は、問題ありません。決定が下されるにつれて、遅延的に作成してください(下記参照)。

セッション中

この計画がどのコンテキストに触れるかを特定する

コンテキストマップが存在する場合は、計画がどの境界づけられたコンテキストに該当するかを判断します。計画が複数のコンテキストにまたがる場合は、それを明示的に指摘してください。コンテキストを跨ぐ作業は、契約と共有カーネルに関して特別な注意が必要です。

用語集に対する異議申し立て

ユーザーが共通言語と矛盾する用語を使用した場合、すぐに指摘してください。

「あなたの用語集では、'change' は永続化された DOM の変更セット (ChangeSpec) として定義されています。あなたはここで 'change' を別の意味で使用していますが、どちらの意味を意図していますか?」

曖昧な言葉を明確にする

ユーザーが曖昧または過負荷な用語を使用した場合、正確な標準用語を提案してください。

「あなたは 'user data' と言っていますが、Visitor (anonymous deviceId)、Profile (identify() で識別)、または Member (組織のメンバーシップ) のいずれを意味しますか?これらは3つの異なる概念です。」

具体的なシナリオについて議論する

ドメインの関係について議論するときは、特定のシナリオでストレステストを行います。境界を調査するエッジケースを考案します。

「実験が /pricing で実行されているときに、誰かが同じページに change spec をデプロイするとどうなりますか?それらは競合しますか?どちらが優先されますか?」

コードとの相互参照

ユーザーが何かの仕組みを述べるときは、コードと照らし合わせて確認します。矛盾が見つかった場合は、それを表面化します。

「あなたはゴールはハードデリートされると言いましたが、コードでは isActive = false が設定されています。どちらが意図された動作ですか?」

ドキュメントをインラインで更新する

用語が解決されたり、決定が下されたりしたら、関連するファイルをすぐに更新します。これらをまとめて処理しないでください。

用語の変更の場合:

  • 新しい用語または洗練された用語で docs/UBIQUITOUS_LANGUAGE.md を更新します。
  • 用語がコンテキスト固有の場合は、関連する docs/contexts/<name>/CONTEXT.md を更新します。

ドメインモデルの変更の場合:

  • 新しい不変条件、契約、または所有権の変更で、関連する CONTEXT.md を更新します。
  • コンテキスト間の関係が変更された場合は、docs/CONTEXT_MAP.md を更新します。

決定の場合:

  • 以下の3つの条件がすべて満たされる場合にのみ、ADR を作成します。
    1. 元に戻すのが難しい — 後で考えを変えるコストが重要です。
    2. コンテキストがないと驚く — 将来の読者は「なぜ彼らはこのようにしたのだろうか?」と疑問に思うでしょう。
    3. 実際のトレードオフの結果 — 正当な代替案があり、特定の理由で1つを選択しました。
  • ADR は docs/contexts/<name>/adrs/ (コンテキスト固有) または docs/adrs/ (コンテキストを跨ぐ) に配置されます。
  • 連番を使用します: 001-slug.md
  • ADR は最小限に抑えます: タイトル + 1〜3文 (コンテキスト、決定、理由)。オプションのセクション (検討されたオプション、結果) は、真の価値を追加する場合にのみ使用します。

遅延的なファイル作成

ドキュメントファイルがまだ存在しない場合は、何か書き込むものがある場合にのみ作成します。

  • 最初の用語が解決された → UBIQUITOUS_LANGUAGE.md を作成します。
  • 最初のコンテキスト固有の決定 → そのコンテキストの CONTEXT.md を作成します。
  • 最初のコンテキストを跨ぐ関係 → CONTEXT_MAP.md を作成します。
  • 最初の ADR に値する決定 → adrs/ ディレクトリと最初の ADR を作成します。

関連スキル

  • /spec — クッキング後、計画を仕様に形式化します。
  • /holistic — ズームアウトして、この計画がより大きな全体像にどのように適合するかを理解します。
  • /architect — アーキテクチャ上の摩擦を表面化し、深いモジュールインターフェースを設計します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Domain Model Cooking Session

Interview relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.

Ask questions one at a time, waiting for feedback before continuing.

If a question can be answered by exploring the codebase, explore the codebase instead of asking.

Discover project context

Before starting, find and read existing domain documentation. Check these locations (in order):

  1. docs/CONTEXT_MAP.md — if it exists, this is a multi-context project. Read it to understand bounded contexts and their relationships.
  2. docs/UBIQUITOUS_LANGUAGE.md — the shared glossary. Read it to understand canonical terms.
  3. docs/contexts/*/CONTEXT.md — per-context documentation. Read the ones relevant to the current plan.
  4. CLAUDE.md — project-level context.

If none of these exist, that's fine — create them lazily as decisions are made (see below).

During the session

Identify which context(s) this plan touches

If a context map exists, determine which bounded context(s) the plan falls within. If the plan spans multiple contexts, call that out explicitly — cross-context work needs extra care around contracts and shared kernels.

Challenge against the glossary

When the user uses a term that conflicts with the ubiquitous language, call it out immediately:

"Your glossary defines 'change' as a persisted set of DOM mutations (ChangeSpec). You're using 'change' to mean something different here — which meaning do you intend?"

Sharpen fuzzy language

When the user uses vague or overloaded terms, propose a precise canonical term:

"You're saying 'user data' — do you mean the Visitor (anonymous deviceId), the Profile (identified via identify()), or the Member (org membership)? Those are three different concepts."

Discuss concrete scenarios

When domain relationships are discussed, stress-test them with specific scenarios. Invent edge cases that probe boundaries:

"What happens when an experiment is running on /pricing and someone deploys a change spec to the same page? Do they conflict? Which takes priority?"

Cross-reference with code

When the user states how something works, verify against the code. If you find a contradiction, surface it:

"You said goals are hard-deleted, but the code sets isActive = false — which is the intended behavior?"

Update documentation inline

When a term is resolved or a decision is made, update the relevant file immediately. Don't batch these up.

For terminology changes:

  • Update docs/UBIQUITOUS_LANGUAGE.md with the new or refined term
  • Update the relevant docs/contexts/<name>/CONTEXT.md if the term is context-specific

For domain model changes:

  • Update the relevant CONTEXT.md with new invariants, contracts, or ownership changes
  • Update docs/CONTEXT_MAP.md if relationships between contexts changed

For decisions:

  • Only create an ADR when ALL THREE conditions are met:
    1. Hard to reverse — the cost of changing your mind later is meaningful
    2. Surprising without context — a future reader will wonder "why did they do it this way?"
    3. Result of a real trade-off — there were genuine alternatives and you picked one for specific reasons
  • ADRs go in docs/contexts/<name>/adrs/ (context-specific) or docs/adrs/ (cross-context)
  • Use sequential numbering: 001-slug.md
  • Keep ADRs minimal: title + 1-3 sentences (context, decision, why). Optional sections (considered options, consequences) only when they add genuine value.

Lazy file creation

If documentation files don't exist yet, create them only when you have something to write:

  • First term resolved → create UBIQUITOUS_LANGUAGE.md
  • First context-specific decision → create that context's CONTEXT.md
  • First cross-context relationship → create CONTEXT_MAP.md
  • First ADR-worthy decision → create the adrs/ directory and first ADR

Related skills

  • /spec — after cooking, formalize the plan into a spec
  • /holistic — zoom out to understand how this plan fits the bigger picture
  • /architect — surface architectural friction and design deep module interfaces