ubiquitous-language
会話の中から、専門用語の曖昧さを指摘しつつ、関係者間で共通認識となる用語集(ユビキタス言語)をDDD(ドメイン駆動設計)の形式で作成し、認識のずれをなくしてスムーズな意思疎通を支援するSkill。
📜 元の英語説明(参考)
Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when: user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
🇯🇵 日本人クリエイター向け解説
会話の中から、専門用語の曖昧さを指摘しつつ、関係者間で共通認識となる用語集(ユビキタス言語)をDDD(ドメイン駆動設計)の形式で作成し、認識のずれをなくしてスムーズな意思疎通を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ubiquitous-language.zip https://jpskill.com/download/15508.zip && unzip -o ubiquitous-language.zip && rm ubiquitous-language.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15508.zip -OutFile "$d\ubiquitous-language.zip"; Expand-Archive "$d\ubiquitous-language.zip" -DestinationPath $d -Force; ri "$d\ubiquitous-language.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
ubiquitous-language.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
ubiquitous-languageフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
ユビキタス言語
現在の会話からドメイン用語を抽出し形式化して、一貫性のある用語集を作成し、ローカルファイルに保存します。
プロセス
- 会話をスキャンして、ドメインに関連する名詞、動詞、概念を探します。
- 問題を特定します。
- 異なる概念に対して同じ単語が使用されている(曖昧さ)
- 同じ概念に対して異なる単語が使用されている(同義語)
- 曖昧または過負荷な用語
- 標準的な用語集を提案します(独断的な用語の選択を含む)。
- 以下の形式を使用して、ワーキングディレクトリに
UBIQUITOUS_LANGUAGE.mdとして書き込みます。 - 会話内に概要を出力します。
出力形式
以下の構造でUBIQUITOUS_LANGUAGE.mdファイルを作成します。
# ユビキタス言語
## 注文ライフサイクル
| 用語 | 定義 | 避けるべきエイリアス |
|------|-----------|-----------------|
| **Order** | 顧客が1つ以上のアイテムを購入するリクエスト | Purchase, transaction |
| **Invoice** | 配送後に顧客に送信される支払い請求 | Bill, payment request |
## 人々
| 用語 | 定義 | 避けるべきエイリアス |
|------|-----------|-----------------|
| **Customer** | 注文を行う人または組織 | Client, buyer, account |
| **User** | システム内の認証アイデンティティ | Login, account |
## 関係
- 1つの**Invoice**は、正確に1つの**Customer**に属します。
- 1つの**Order**は、1つ以上の**Invoices**を生成します。
## 対話例
> **Dev:** " **Customer**が**Order**を行った場合、すぐに**Invoice**を作成しますか?"
> **Domain expert:** "いいえ — **Invoice**は、**Fulfillment**が確認された場合にのみ生成されます。アイテムが個別の**Shipments**で発送される場合、1つの**Order**で複数の**Invoices**を生成できます。"
> **Dev:** "したがって、**Shipment**が発送前にキャンセルされた場合、それに対する**Invoice**は存在しませんか?"
> **Domain expert:** "その通りです。**Invoice**のライフサイクルは、**Order**ではなく**Fulfillment**に関連付けられています。"
## 指摘された曖昧さ
- "account"は、**Customer**と**User**の両方を意味するために使用されました — これらは異なる概念です。**Customer**は注文を行い、**User**は**Customer**を表す場合とそうでない場合がある認証アイデンティティです。
ルール
- 独断的に決定してください。 同じ概念に対して複数の単語が存在する場合は、最適なものを選択し、他の単語を避けるべきエイリアスとしてリストします。
- 競合を明示的に指摘してください。 会話で用語が曖昧に使用されている場合は、「指摘された曖昧さ」セクションで明確な推奨事項とともに指摘してください。
- 定義を簡潔に保ってください。 最大1文。何をするかではなく、何であるかを定義します。
- 関係を示してください。 太字の用語名を使用し、明らかな場合はカーディナリティを表現します。
- ドメイン用語のみを含めてください。 ドメイン固有の意味がない限り、一般的なプログラミング概念(array、function、endpoint)はスキップしてください。
- 自然なクラスターが現れたら(例:サブドメイン、ライフサイクル、またはアクター別)、用語を複数のテーブルにグループ化します。各グループには、独自のヘッダーとテーブルがあります。すべての用語が単一のまとまりのあるドメインに属している場合は、1つのテーブルで問題ありません — グループ化を強制しないでください。
- 対話例を記述してください。 用語が自然に相互作用する方法を示す、開発者とドメインエキスパート間の短い会話(3〜5回のやり取り)。対話は、関連する概念間の境界を明確にし、用語が正確に使用されていることを示す必要があります。
再実行
同じ会話で再度呼び出された場合:
- 既存の
UBIQUITOUS_LANGUAGE.mdを読み取ります。 - その後の議論から新しい用語を取り込みます。
- 理解が進化した場合は、定義を更新します。
- 変更されたエントリには「(updated)」を、新しいエントリには「(new)」をマークします。
- 新しい曖昧さを再指摘します。
- 新しい用語を取り込むように対話例を書き換えます。
出力後の指示
ファイルへの書き込み後、以下のように述べてください。
UBIQUITOUS_LANGUAGE.mdを書き込み/更新しました。 今後、これらの用語を一貫して使用します。 この言語から逸脱した場合、または追加する必要がある用語に気付いた場合は、お知らせください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Ubiquitous Language
Extract and formalize domain terminology from the current conversation into a consistent glossary, saved to a local file.
Process
- Scan the conversation for domain-relevant nouns, verbs, and concepts
- Identify problems:
- Same word used for different concepts (ambiguity)
- Different words used for the same concept (synonyms)
- Vague or overloaded terms
- Propose a canonical glossary with opinionated term choices
- Write to
UBIQUITOUS_LANGUAGE.mdin the working directory using the format below - Output a summary inline in the conversation
Output Format
Write a UBIQUITOUS_LANGUAGE.md file with this structure:
# Ubiquitous Language
## Order lifecycle
| Term | Definition | Aliases to avoid |
|------|-----------|-----------------|
| **Order** | A customer's request to purchase one or more items | Purchase, transaction |
| **Invoice** | A request for payment sent to a customer after delivery | Bill, payment request |
## People
| Term | Definition | Aliases to avoid |
|------|-----------|-----------------|
| **Customer** | A person or organization that places orders | Client, buyer, account |
| **User** | An authentication identity in the system | Login, account |
## Relationships
- An **Invoice** belongs to exactly one **Customer**
- An **Order** produces one or more **Invoices**
## Example dialogue
> **Dev:** "When a **Customer** places an **Order**, do we create the **Invoice** immediately?"
> **Domain expert:** "No — an **Invoice** is only generated once a **Fulfillment** is confirmed. A single **Order** can produce multiple **Invoices** if items ship in separate **Shipments**."
> **Dev:** "So if a **Shipment** is cancelled before dispatch, no **Invoice** exists for it?"
> **Domain expert:** "Exactly. The **Invoice** lifecycle is tied to the **Fulfillment**, not the **Order**."
## Flagged ambiguities
- "account" was used to mean both **Customer** and **User** — these are distinct concepts: a **Customer** places orders, while a **User** is an authentication identity that may or may not represent a **Customer**.
Rules
- Be opinionated. When multiple words exist for the same concept, pick the best one and list the others as aliases to avoid.
- Flag conflicts explicitly. If a term is used ambiguously in the conversation, call it out in the "Flagged ambiguities" section with a clear recommendation.
- Keep definitions tight. One sentence max. Define what it IS, not what it does.
- Show relationships. Use bold term names and express cardinality where obvious.
- Only include domain terms. Skip generic programming concepts (array, function, endpoint) unless they have domain-specific meaning.
- Group terms into multiple tables when natural clusters emerge (e.g. by subdomain, lifecycle, or actor). Each group gets its own heading and table. If all terms belong to a single cohesive domain, one table is fine — don't force groupings.
- Write an example dialogue. A short conversation (3-5 exchanges) between a dev and a domain expert that demonstrates how the terms interact naturally. The dialogue should clarify boundaries between related concepts and show terms being used precisely.
Re-running
When invoked again in the same conversation:
- Read the existing
UBIQUITOUS_LANGUAGE.md - Incorporate any new terms from subsequent discussion
- Update definitions if understanding has evolved
- Mark changed entries with "(updated)" and new entries with "(new)"
- Re-flag any new ambiguities
- Rewrite the example dialogue to incorporate new terms
Post-output instruction
After writing the file, state:
I've written/updated
UBIQUITOUS_LANGUAGE.md. From this point forward I will use these terms consistently. If I drift from this language or you notice a term that should be added, let me know.