domain-modeling

Build and maintain project domain glossaries and architectural decision records.

7|1|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/J0Jng/MathModelingAgents --skill domain-modeling-j0jng
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/J0Jng/MathModelingAgents/tree/main/.claude/skills/engineering/domain-modeling
Command: npx skills add https://github.com/J0Jng/MathModelingAgents --skill domain-modeling-j0jng

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams lose shared understanding of domain terminology and forget why architectural decisions were made, leading to inconsistent language in code and repeated debates. This Skill actively builds and sharpens a project's domain model by maintaining a ubiquitous-language glossary (CONTEXT.md) and recording architectural decision records (ADRs) as they crystallize. ## Core Features & Use Cases - Ubiquitous Language Management: Challenge conflicting terms, sharpen vague vocabulary, and update CONTEXT.md inline the moment a term is resolved, with opinionated canonical terms and avoided synonyms. - Architectural Decision Records: Offer ADRs sparingly—only when a decision is hard to reverse, surprising without context, and the result of a real trade-off—using a minimal numbered format in docs/adr/. - Multi-Context Support: Handle 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 asks whether they mean Customer or User, records the resolved term in CONTEXT.md, and offers an ADR when the team picks event-sourced orders over a CRUD model. ## Quick Start Ask the assistant to use the domain-modeling skill to define the term "Order" in CONTEXT.md and record why the team chose Postgres for the write model as an ADR.

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 domain terms with one-to-two sentence definitions, a canonical term, and avoided synonyms under an _Avoid_ line. Update it inline whenever a term is resolved during design discussions rather than batching changes.

When should I write an architectural decision record?▼

Write an ADR only when all three conditions hold: the decision is hard to reverse, it is surprising without context, and it resulted from a real trade-off between genuine alternatives. Skip ADRs for easily reversed or obvious decisions.

What format should an ADR use?▼

ADRs live in docs/adr/ with sequential numbering like 0001-slug.md. The minimal format is a short 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.

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, such as event flows or shared types. Each context then maintains its own CONTEXT.md and context-specific docs/adr/ directory.

What belongs in CONTEXT.md and what does not?▼

CONTEXT.md is a glossary only: domain-specific terms with tight definitions and avoided synonyms. It must not contain implementation details, specs, scratch notes, or general programming concepts like timeouts and error types.