domain-modeling

Maintains project glossaries and architectural decision records during domain design sessions.

Updated Jul 30, 2026
One-click install
npx skills add https://github.com/j172/bid --skill domain-modeling-j172
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/j172/bid/tree/main/agent/skills/domain-modeling
Command: npx skills add https://github.com/j172/bid --skill domain-modeling-j172

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Domain terminology drifts and key architectural decisions go unrecorded during software design, 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 writing down glossary entries and decisions the moment they crystallize. ## Core Features & Use Cases - Ubiquitous language management: Maintains a CONTEXT.md glossary with opinionated canonical terms and explicit _Avoid_ lists, supporting single-context repos and multi-context setups via CONTEXT-MAP.md. - Architectural decision records: Creates sequentially numbered ADRs in docs/adr/ only when a decision is hard to reverse, surprising without context, and the result of a real trade-off. - Live model challenging: Flags conflicts between user language and the existing glossary, cross-references claims against actual code, and updates files inline rather than batching. - Use Case: While designing an ordering system, a 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 writes over a CRUD model. ## Quick Start Help me pin down the domain terminology for my ordering system and record any significant architectural decisions we make along the way.

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 canonical domain terms with one or two sentence definitions and an _Avoid_ list of rejected synonyms. Add terms inline as they are resolved during design discussions, keeping 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 is surprising without context, and it resulted from a genuine trade-off between alternatives. If any condition is missing, skip the record to avoid noise.

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, then give each context its own CONTEXT.md and docs/adr directory. System-wide decisions stay in the root docs/adr folder.

What format should an ADR follow?

An ADR is a sequentially numbered Markdown file in docs/adr containing 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 are the limitations of a CONTEXT.md glossary?

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