domain-modeling

Build and refine a project domain model through glossary and ADR documentation.

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/petemcw/farseer --skill domain-modeling-petemcw
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: domain-modeling
Source: https://github.com/petemcw/farseer/tree/main/skills/domain-modeling
Command: npx skills add https://github.com/petemcw/farseer --skill domain-modeling-petemcw

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams lose alignment when domain terminology drifts between conversations, code, and documentation. This Skill keeps the project's domain model sharp by challenging fuzzy language, reconciling terms against the code, and recording decisions as they happen. ## Core Features & Use Cases - Glossary Maintenance: Updates .farseer/domain.md inline whenever a term is resolved, keeping it a pure glossary free of implementation details. - Language Sharpening: Challenges vague or conflicting terms against the existing glossary and proposes precise canonical vocabulary. - Scenario Testing: Invents concrete edge-case scenarios to probe domain relationships and force precision about concept boundaries. - ADR Discipline: Offers Architecture Decision Records only when a decision is hard to reverse, surprising without context, and involves a real trade-off. - Use Case: While designing an order system, the user says "partial cancellation" but the code cancels entire Orders. The Skill flags the contradiction, resolves the term, updates domain.md, and records an ADR for the event-sourcing decision. ## Quick Start Ask the assistant to help define the domain terminology for your order management feature and record the key decisions in 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 maintain a domain glossary for my codebase?▼

Keep a domain.md file that defines canonical terms and update it inline whenever a term is resolved during design discussions. Challenge vague or conflicting language immediately and keep the file free of implementation details so it stays a pure glossary.

When should I write an architecture decision record?▼

Write an ADR only when three conditions hold: the decision is hard to reverse, it would surprise a future reader without context, and there was a genuine trade-off between alternatives. If any condition is missing, skip the ADR.

How do I resolve conflicting domain terminology in a team?▼

Compare the conflicting usage against the existing glossary and state the conflict explicitly, asking which meaning is intended. Propose a precise canonical term for overloaded words and test definitions with concrete edge-case scenarios.

What is the difference between a domain glossary and an ADR?▼

A glossary defines the vocabulary of the domain and nothing else, while an ADR records a specific architectural decision with its context and trade-offs. Glossaries evolve continuously; ADRs are created sparingly for significant decisions.

Can domain modeling detect contradictions between code and design?▼

Yes. When a user states how something works, the stated behavior is cross-referenced against the actual code. If the code contradicts the statement, such as partial versus full cancellation, the discrepancy is raised for resolution.