domain-modeling

Enforce consistent domain terminology and record architectural decisions as ADRs.

3|1|Updated Nov 5, 2015
One-click install
npx skills add https://github.com/Flowm/dotfiles --skill domain-modeling-flowm
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/Flowm/dotfiles/tree/main/home/.agents/skills/domain-modeling
Command: npx skills add https://github.com/Flowm/dotfiles --skill domain-modeling-flowm

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the pervasive issue of inconsistent domain terminology, unrecorded high-impact architectural decisions, and misalignment between a team's shared ubiquitous language and actual code implementation, which leads to confusion, rework, and avoidable technical debt.

Core Features & Use Cases

  • Ubiquitous Language Enforcement: Challenges conflicting or vague domain terms in real time, proposes precise canonical terminology, and updates the project's domain glossary instantly to keep the team aligned.
  • Architectural Decision Recording: Guides creation of lightweight, high-value Architecture Decision Records (ADRs) only for choices that are hard to reverse, surprising without context, and involve real trade-offs, avoiding unnecessary documentation overhead.
  • Code-Domain Alignment Checks: Cross-references domain discussions with existing code to catch contradictions, ensuring the implemented behavior matches the agreed-upon domain model.
  • Use Case: For a team building a multi-context e-commerce system, this Skill ensures terms like "Order", "Invoice", and "Customer" are defined consistently across ordering, billing, and fulfillment teams, and records decisions like using domain events for cross-context communication as ADRs.

Quick Start

Ask the AI to define consistent ubiquitous language for your project's core domain entities and record the decision to use event sourcing for order processing as an ADR.

Frequently Asked Questions about domain-modeling

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

FAQPage Schema
Do I need a living domain glossary to manage architectural decisions and code alignment?

Yes, a living domain glossary is required to maintain shared vocabulary, while structured architecture decision records capture irreversible choices. Together they enforce consistency between domain model definitions and actual codebase behavior.

How do I enforce ubiquitous language and keep domain terminology consistent across teams?

Enforcing ubiquitous language involves challenging conflicting domain terms in real time, proposing precise canonical terminology, and updating a living domain glossary to ensure teams share a consistent vocabulary. This eliminates confusion and rework caused by misaligned definitions.

When should I create architecture decision records for my software project?

Create architecture decision records only for high-impact choices that are hard to reverse, surprising without context, and involve real trade-offs. This targeted documentation approach captures critical architectural decisions while avoiding unnecessary documentation overhead.

What is the best way to align domain model definitions with existing codebase behavior?

The best way to align domain models with code is cross-referencing domain discussions against existing code to catch contradictions. This validation process ensures implemented behavior matches the agreed-upon domain model and ubiquitous language.

How does domain-driven design handle terminology conflicts in a multi-context e-commerce system?

Domain-driven design resolves terminology conflicts by defining terms like Order, Invoice, and Customer consistently across ordering, billing, and fulfillment teams. It maintains a shared domain glossary to prevent misalignment between different bounded contexts.

Do I need a living domain glossary to manage architectural decisions and code alignment?

Yes, a living domain glossary is required to maintain shared vocabulary, while structured architecture decision records capture irreversible choices. Together they enforce consistency between domain model definitions and actual codebase behavior.