domain-modelling

Builds and maintains a DDD ubiquitous language glossary with validation and ER diagram generation.

Updated Apr 17, 2026
One-click install
npx skills add https://github.com/mistakenot/skills --skill domain-modelling-mistakenot
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: domain-modelling
Source: https://github.com/mistakenot/skills/tree/main/plugins/domain-modelling/skills/domain-modelling
Command: npx skills add https://github.com/mistakenot/skills --skill domain-modelling-mistakenot

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Teams drift into using multiple words for the same domain concept across code, docs, and conversation, causing ambiguity and miscommunication. This Skill establishes one canonical vocabulary per project and keeps code, commits, and agents aligned with it. ## Core Features & Use Cases - Glossary scaffolding and interviews: Initialize docs/concepts/UBIQUITOUS_LANGUAGE.md, wire it into CLAUDE.md, then research the repo and interview the user to define canonical terms with Avoid synonym lists and Has relationships. - Validation and visualization: Run the bundled glossary.py script to lint entries (missing definitions, dangling relationships, canonical-vs-Avoid clashes) and generate a mermaid ER diagram from the relationships. - Drift auditing and renames: Scan code, commits, and docs for terms that conflict with the glossary, and perform safe canonical-term renames that retire old words to Avoid lists. - Use Case: A team notices 'Account' and 'Customer' used interchangeably in their codebase. Run the audit sub-command to surface the conflict, interview to pick the canonical term, then enforce it via a pre-commit hook. ## Quick Start Ask the agent to set up a ubiquitous language glossary for this project and interview you about the core domain terms.

Frequently Asked Questions about domain-modelling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a ubiquitous language glossary for my project?▼

Run the init sub-command to scaffold docs/concepts/UBIQUITOUS_LANGUAGE.md and link it from CLAUDE.md, then use interview-user to research the repo and ask targeted questions that resolve each concept's canonical term, definition, and _Avoid_ synonyms.

What is a ubiquitous language in domain-driven design?▼

A ubiquitous language is a single agreed vocabulary where each domain concept has exactly one canonical word shared by people, code, and agents. Rejected synonyms are recorded under _Avoid_ so terminology drift can be detected and flagged.

How do I check if my code violates the domain glossary?▼

Use the audit sub-command, which runs glossary.py check for structural errors, then scans code, recent commits, and docs for missing terms, _Avoid_ word usage, and stale entries, reporting findings grouped by category with file references.

Can glossary validation run in CI or pre-commit hooks?▼

Yes, glossary.py check exits with code 1 on any error, so it drops directly into a husky pre-commit hook or a GitHub Actions workflow. The script is stdlib-only python3 with no install step.

When should I split a glossary into multiple bounded contexts?▼

Split only when the same word correctly means different things in different areas, such as 'Account' meaning a login in identity but a ledger in billing. Size alone is not a reason; use a context map pointing to per-area glossary files.

What are the limitations of the glossary _Has_ relationships?▼

_Has_ lines capture only conceptual one/many relationships between defined terms, never schema detail like foreign keys, cardinalities like 0..*, or nullable flags. The validator warns when relationship targets look like database schema.