From mattpocock-skills
Extracts DDD-style ubiquitous language glossary from conversation, flags ambiguities, proposes canonical terms, and saves to UBIQUITOUS_LANGUAGE.md. For defining domain terms or DDD discussions.
npx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin mattpocock-skills-11This skill uses the workspace's default tool permissions.
Extract and formalize domain terminology from the current conversation into a consistent glossary, saved to a local file.
Extracts DDD-style glossary of domain terms from conversations into UBIQUITOUS_LANGUAGE.md, flags ambiguities and synonyms, proposes canonical terms.
Extracts canonical domain terms into CONTEXT.md, flags ambiguities (same word, different meanings) and synonyms. Re-invokes to update in place for new terms or audits.
Resolves fuzzy business terminology in Ruby on Rails DDD discussions by identifying canonical terms, mapping synonyms, resolving conflicts, and generating glossaries.
Share bugs, ideas, or general feedback.
Extract and formalize domain terminology from the current conversation into a consistent glossary, saved to a local file.
UBIQUITOUS_LANGUAGE.md in the working directory using the format belowWrite 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**.
Dev: "How do I test the sync service without Docker?"
Domain expert: "Provide the filesystem layer instead of the Docker layer. It implements the same Sandbox service interface but uses a local directory as the sandbox."
Dev: "So sync-in still creates a bundle and unpacks it?"
Domain expert: "Exactly. The sync service doesn't know which layer it's talking to. It calls
execandcopyIn— the filesystem layer just runs those as local shell commands."
When invoked again in the same conversation:
UBIQUITOUS_LANGUAGE.md