Use when a Ruby on Rails feature, bug, or architecture discussion has fuzzy business terminology and you need a Domain-Driven Design ubiquitous language. Covers canonical terms, synonyms, overloaded words, naming conflicts, and glossary output for Rails-first workflows.
78
72%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./ddd-ubiquitous-language/SKILL.mdUse this skill when the domain language is fuzzy, overloaded, or inconsistent.
Core principle: Agree on business language before choosing models, services, or boundaries.
| Topic | Rule |
|---|---|
| Canonical term | Pick one business term for one concept |
| Synonyms | Capture them, then choose one preferred term |
| Overloaded words | Flag them early; split meanings explicitly |
| Naming | Prefer business meaning over technical shorthand |
| Output | Return a usable glossary, not abstract theory |
DO NOT introduce DDD terminology without grounding it in the user's real domain language.
DO NOT rename code concepts until the glossary is explicit enough to justify the change.
ALWAYS flag overloaded or conflicting terms before recommending modeling changes.ddd-boundaries-review when the glossary reveals multiple contexts, or to ddd-rails-modeling when the main problem is tactical modeling in Rails.ddd-boundaries-review, ddd-rails-modeling, or create-prd / generate-tasks depending on the workflow stage.When using this skill, return:
| Canonical term | Aliases | Definition | Invariant | Context |
|----------------|---------|------------|-----------|---------|
| Reservation | Booking, Hold | A customer claim on an inventory slot | Must expire or be confirmed | Fleet Booking || Mistake | Reality |
|---|---|
| Keeping every synonym alive forever | Pick one preferred business term or the codebase stays muddy |
| Using technical class names as if they were domain truth | Domain language should come from the business, not from current code accidents |
| Jumping to aggregates before agreeing on words | Bad language produces bad boundaries and bad models |
| Treating all ambiguity as harmless | Overloaded terms usually hide design problems |
| Skill | When to chain |
|---|---|
| create-prd | When a PRD needs cleaner business language before approval |
| ddd-boundaries-review | When the glossary suggests multiple bounded contexts or language leakage |
| ddd-rails-modeling | When the terms are clear enough to decide entities, value objects, and services |
| rails-architecture-review | When naming confusion already appears in the code structure |
ae8ea63
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.