domain-modeling

Build and maintain project glossaries in CONTEXT.md and architecture decision records in docs/adr.

Updated Feb 22, 2024
One-click install
npx skills add https://github.com/tlipoca9/dotfiles --skill domain-modeling-tlipoca9
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/tlipoca9/dotfiles/tree/main/home/dot_agents/skills/domain-modeling
Command: npx skills add https://github.com/tlipoca9/dotfiles --skill domain-modeling-tlipoca9

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Domain terminology drifts as a project grows: the same concept gets called 'account', 'customer', and 'user' in different places, and the reasoning behind key architectural choices gets lost. This Skill actively sharpens a project's domain model during design discussions and records the results as a living glossary and decision log. ## Core Features & Use Cases - Glossary Management: Creates and updates CONTEXT.md files with opinionated canonical terms, tight definitions, and explicit 'Avoid' synonyms, supporting both single-context and multi-context repos via CONTEXT-MAP.md. - Architecture Decision Records: Writes minimal ADRs in docs/adr/ with sequential numbering, offered only when a decision is hard to reverse, surprising without context, and the result of a real trade-off. - Active Modeling Discipline: Challenges terms that conflict with the glossary, sharpens fuzzy language, stress-tests domain relationships with edge-case scenarios, and cross-references claims against the actual code. - Use Case: While designing a billing feature, the user says 'the account gets charged'. The Skill flags that CONTEXT.md defines 'Customer' and 'Invoice' but not 'account', resolves the term inline, updates the glossary, and offers an ADR when the team decides Billing communicates with Ordering via domain events rather than synchronous HTTP. ## Quick Start Ask the AI to help define the domain language for your project and record the key 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 domain glossary for my codebase?▼

Create a CONTEXT.md at the repo root listing canonical terms with one or two sentence definitions and an '_Avoid_' line for rejected synonyms. The Skill updates it inline as terms are resolved during design discussions, keeping it free of implementation details.

When should I write an architecture decision record?▼

Write an ADR only when a decision is hard to reverse, surprising without context, and the result of a genuine trade-off between alternatives. Easy-to-reverse or obvious decisions should be skipped to avoid noise in docs/adr.

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

Place a CONTEXT-MAP.md at the repo root listing each context, its location, and its relationships, with a separate CONTEXT.md per context. System-wide ADRs stay in the root docs/adr while context-specific decisions live in each context's own docs/adr directory.

What belongs in a CONTEXT.md glossary file?▼

Only terms specific to the project's domain belong in CONTEXT.md, defined in one or two sentences describing what the concept is. General programming concepts like timeouts or error types are excluded, and implementation details never appear in the glossary.

Can the glossary contradict what the code actually does?▼

The Skill cross-references stated domain behavior against the code and surfaces contradictions, such as claiming partial cancellation is possible when the code cancels entire orders. The conflict is raised for resolution rather than silently recorded.