domain-modeling

Build and maintain project domain glossaries and architectural decision records.

Updated Sep 20, 2024
One-click install
npx skills add https://github.com/AnasIsmai1/dotfiles --skill domain-modeling-anasismai1
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/AnasIsmai1/dotfiles/tree/main/agents/.agents/skills/domain-modeling
Command: npx skills add https://github.com/AnasIsmai1/dotfiles --skill domain-modeling-anasismai1

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Domain terminology drifts and architectural decisions get forgotten as projects grow, leaving future readers guessing why the code looks the way it does. This Skill actively sharpens a project's domain model by challenging fuzzy terms, stress-testing concepts with concrete scenarios, and recording decisions the moment they crystallize. ## Core Features & Use Cases - Ubiquitous Language Management: Maintains an opinionated CONTEXT.md glossary with canonical terms and explicitly avoided synonyms, updated inline as terms are resolved. - Architectural Decision Records: Creates lightweight ADRs in docs/adr/ only when a decision is hard to reverse, surprising without context, and the result of a real trade-off. - Multi-Context Support: Handles both single-context repos (one root CONTEXT.md) and multi-context repos via a CONTEXT-MAP.md that maps bounded contexts and their relationships. - Use Case: While designing an ordering system, the user says "account" ambiguously. The Skill challenges whether they mean Customer or User, updates CONTEXT.md with the resolved term, and offers an ADR when the team decides Ordering and Billing will communicate via domain events instead of synchronous HTTP. ## Quick Start Ask the assistant to help define the domain terminology for your project and record any significant architectural decisions as ADRs.

Frequently Asked Questions about domain-modeling

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?▼

Create a CONTEXT.md file at the repo root listing each domain term with a one or two sentence definition and an _Avoid_ line for rejected synonyms. Add terms lazily as they are resolved during design discussions, and keep the file free of implementation details.

When should I write an architectural decision record?▼

Write an ADR only when all three conditions hold: the decision is hard to reverse, it would surprise a future reader without context, and it resulted from a genuine trade-off between alternatives. Easy-to-reverse or obvious decisions should be skipped.

How do I handle multiple bounded contexts in one repository?▼

Create a CONTEXT-MAP.md at the repo root listing each context, where its CONTEXT.md lives, and how contexts relate to each other, such as event flows or shared types. Each context keeps its own glossary and context-specific ADRs.

What format should an ADR follow?▼

ADRs live in docs/adr/ with sequential numbering like 0001-slug.md. The minimal format is a title plus one to three sentences covering context, decision, and rationale; optional sections like Status or Considered Options are added only when they add genuine value.

What are the limitations of a CONTEXT.md glossary?▼

CONTEXT.md is strictly a glossary and must not contain implementation details, specs, or scratch notes. It only covers terms specific to the project's domain, so general programming concepts like timeouts or error types do not belong there.