domain-modeling

Build and maintain project glossaries and architecture decision records during design discussions.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Domain terminology drifts and design decisions get forgotten as projects grow, leaving future readers guessing why the code looks the way it does. This Skill keeps a project's domain model explicit by maintaining a canonical glossary (CONTEXT.md) and recording significant decisions as ADRs the moment they crystallize. ## Core Features & Use Cases - Glossary management: Challenges conflicting or fuzzy terminology during discussion and updates CONTEXT.md inline with canonical terms and avoided synonyms. - Architecture Decision Records: Offers to write numbered 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" loosely; the Skill asks whether they mean Customer or User, records the resolved term in CONTEXT.md, and drafts an ADR when the team picks event-sourced writes over a CRUD model. ## Quick Start Ask the assistant to help define the domain terms 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-to-two sentence definitions and avoided synonyms. Update it inline whenever a term is 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. If any of the three conditions is missing, skip the ADR to avoid noise.

How do I document multiple bounded contexts in one repo?▼

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

What format should an ADR follow?▼

An ADR is a sequentially numbered markdown file in docs/adr/ with a short title and one to three sentences covering context, decision, and rationale. Optional sections like Status, Considered Options, and Consequences are added only when they add genuine value.

What belongs in CONTEXT.md versus implementation docs?▼

CONTEXT.md is a glossary only: terms specific to the project's domain with tight definitions and avoided synonyms. General programming concepts, specs, scratch notes, and implementation decisions do not belong in it.