domain-modeling

Detect synonym and homonym conflicts in domain terminology across code and documentation.

Updated Nov 24, 2025
One-click install
npx skills add https://github.com/ByronWilliamsCPA/.claude --skill domain-modeling-byronwilliamscpa
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/ByronWilliamsCPA/.claude/tree/main/.claude/skills/domain-modeling
Command: npx skills add https://github.com/ByronWilliamsCPA/.claude --skill domain-modeling-byronwilliamscpa

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates costly confusion and rework caused by terminology drift in domain code, where different terms are used for the same concept (or the same term for different concepts) across code, documentation, and team conversation, breaking the link between the domain model and its implementation.

Core Features & Use Cases

  • Living Domain Glossary Maintenance: Guides creation and upkeep of folder-scoped glossary entries with precise definitions, exclusionary distinctions, and concrete examples to codify ubiquitous language for each bounded domain.
  • Drift Detection Checks: Provides a structured checklist to catch synonyms and homonyms the moment a new term is introduced, preventing drift from propagating into schemas, APIs, and database migrations.
  • Conflict Resolution Guidance: Offers clear options and rationalization counterpoints to resolve terminology conflicts without silently introducing inconsistent naming.
  • Use Case: For a billing team, this Skill catches when a developer uses the term "Client" for active paid plans, which conflicts with the existing glossary entry for "Subscriber", preventing inconsistent naming across billing code, API fields, and customer-facing documentation.

Quick Start

Use the domain-modeling skill to check if the new term you are about to use for your billing code conflicts with the existing glossary entry for active paid plans.

Frequently Asked Questions about domain-modeling

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

FAQPage Schema
How do I prevent terminology drift between my domain code and documentation?

Prevent terminology drift by enforcing consistent ubiquitous language across code, documentation, and team conversations. This involves codifying domain terms with precise definitions and exclusionary distinctions to stop synonyms or homonyms from propagating into schemas and APIs.

How do I maintain a living domain glossary for bounded contexts?

Maintain a living domain glossary by creating and updating folder-scoped entries with precise definitions, exclusionary distinctions, and concrete examples. This codifies ubiquitous language for each bounded domain and keeps the domain model linked to its implementation.

What is the best way to catch synonym conflicts before database migrations?

The best way to catch synonym conflicts before database migrations is to use a structured drift detection checklist. This identifies when a newly introduced term duplicates an existing glossary entry, preventing inconsistent naming from reaching schemas and APIs.

How do I resolve terminology conflicts when different developers use different domain terms?

Resolve terminology conflicts by applying structured conflict resolution guidance that offers clear options and rationalization counterpoints. This ensures developers address naming inconsistencies directly rather than silently introducing conflicting terms into the codebase.

When do I need ubiquitous language enforcement in my software development workflow?

You need ubiquitous language enforcement during domain modeling, glossary maintenance, onboarding to unfamiliar codebases, and code review workflows. This prevents costly confusion and rework caused by terminology drift breaking the link between the domain model and its implementation.

Can I use domain modeling checks for onboarding to an unfamiliar codebase?

Yes, you can use domain modeling checks during onboarding to unfamiliar codebases. A maintained glossary of ubiquitous language with precise definitions helps new developers understand existing domain terms and avoid introducing conflicting terminology.