Extract a DDD-style ubiquitous language glossary.md file from the current conversation and codebase, flagging ambiguities and proposing canonical terms.
Extract a DDD-style ubiquitous language glossary.md file from the current
conversation and codebase, flagging ambiguities and proposing canonical terms.
$ARGUMENTS
Workflow
Read the glossary.md in the current working directory if present
Explore the conversation and codebase for domain-relevant terms, including
actions (a verb like settle is a term defined by what it means in the
domain)
Identify problems:
Same term used for different concepts (ambiguity). Exclude homographs: a
word with unrelated meanings from different roots or domains is fine. Flag
a word whose meaning has drifted within one domain
Different terms used for the same concept (synonyms)
Vague or overloaded terms
Propose a canonical glossary:
When multiple terms exist for the same concept, pick the best one and list
the others as aliases to avoid
Skip the names of modules, classes, and generic programming constructs
unless they have domain-specific meaning
Update an existing definition when the conversation or codebase contradicts
it
Upsert glossary.md in the current working directory using the format below
Output a summary inline: lead with the problems found, then list the terms
added or changed
Output format
glossary.md
# Glossary
## Group 1
| Term | Definition | Aliases to avoid |
| ---------- | ------------ | ---------------- |
| **Term 1** | Definition 1 | Alias 1, Alias 2 |
| **Term 2** | Definition 2 | Alias 3 |
## Group 2
...
## Relationships
- A **Term 1** belongs to exactly one **Term 2**
- A **Term 2** produces one or more **Term 1s**
Rules
Keep each definition to one sentence. For an entity, define what it is, not
what it does. Order is a request, not "lets customers buy". For an action
term, define its effect in the domain
When the terms cluster by subdomain, lifecycle, or actor, give each cluster
its own heading and table. If all terms belong to one domain, use a single
table under the top-level heading
Use bold term names and express cardinality where obvious
Example
# Glossary
## 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**
1---2name: ubiquitize-language3description: Extract a DDD-style ubiquitous language glossary.md file from the current conversation and codebase, flagging ambiguities and proposing canonical terms.4---56Extract a DDD-style ubiquitous language glossary.md file from the current7conversation and codebase, flagging ambiguities and proposing canonical terms.89$ARGUMENTS1011# Workflow12131. Read the `glossary.md` in the current working directory if present142. Explore the conversation and codebase for domain-relevant terms, including15 actions (a verb like _settle_ is a term defined by what it means in the16 domain)173. Identify problems:18 - Same term used for different concepts (ambiguity). Exclude homographs: a19 word with unrelated meanings from different roots or domains is fine. Flag20 a word whose meaning has drifted within one domain21 - Different terms used for the same concept (synonyms)22 - Vague or overloaded terms234. Propose a canonical glossary:24 - When multiple terms exist for the same concept, pick the best one and list25 the others as aliases to avoid26 - Skip the names of modules, classes, and generic programming constructs27 unless they have domain-specific meaning28 - Update an existing definition when the conversation or codebase contradicts29 it305. Upsert `glossary.md` in the current working directory using the format below316. Output a summary inline: lead with the problems found, then list the terms32 added or changed3334# Output format3536`glossary.md`3738```md39# Glossary4041## Group 14243| Term | Definition | Aliases to avoid |44| ---------- | ------------ | ---------------- |45| **Term 1** | Definition 1 | Alias 1, Alias 2 |46| **Term 2** | Definition 2 | Alias 3 |4748## Group 24950...5152## Relationships5354- A **Term 1** belongs to exactly one **Term 2**55- A **Term 2** produces one or more **Term 1s**56```5758## Rules5960- Keep each definition to one sentence. For an entity, define what it _is_, not61 what it does. **Order** is a request, not "lets customers buy". For an action62 term, define its effect in the domain63- When the terms cluster by subdomain, lifecycle, or actor, give each cluster64 its own heading and table. If all terms belong to one domain, use a single65 table under the top-level heading66- Use bold term names and express cardinality where obvious6768## Example6970```md71# Glossary7273## Order lifecycle7475| Term | Definition | Aliases to avoid |76| ----------- | ------------------------------------------------------- | --------------------- |77| **Order** | A customer's request to purchase one or more items | Purchase, transaction |78| **Invoice** | A request for payment sent to a customer after delivery | Bill, payment request |7980## People8182| Term | Definition | Aliases to avoid |83| ------------ | ------------------------------------------- | ---------------------- |84| **Customer** | A person or organization that places orders | Client, buyer, account |85| **User** | An authentication identity in the system | Login, account |8687## Relationships8889- An **Invoice** belongs to exactly one **Customer**90- An **Order** produces one or more **Invoices**91```
Run npx skillmds add tomeraberbach/ubiquitize-language in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Extract a DDD-style ubiquitous language glossary.md file from the current conversation and codebase, flagging ambiguities and proposing canonical terms. It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
TomerAberbach (@tomeraberbach) published this skill. Their other Agent Skills are listed on their SkillMD profile.