Domain Language Discipline
Internal shared skill. Single source of truth for project ubiquitous language as a glossary, orthogonal to OpenSpec. Hosts declare it in
dependenciesand abort if missing — no silent fallback.Name note: intentionally not named
domain-modeling(external skills repo). Use this name only.
What CONTEXT.md is (and is not)
| Is | Is not |
|---|---|
| Canonical terms and boundaries (glossary) | Spec, ticket, or task list |
| Pure domain language | Implementation details, APIs, schemas, file paths |
| Orthogonal companion to OpenSpec | Replacement for openspec/ proposal/specs/design/tasks |
If a root CONTEXT-MAP.md exists, treat it as a pointer to multiple context-local CONTEXT.md files; otherwise use a single root CONTEXT.md.
Required behavior
- Read when domain language is in play — if
CONTEXT.md(or mapped files) exists, load relevant terms before sharpening analysis or solutions that hinge on vocabulary. - Challenge conflicts — when the user (or session) uses a term that conflicts with the glossary, surface the conflict and resolve which meaning is canonical before continuing as if both were fine.
- Sharpen fuzzy language — propose a precise canonical term when language is vague or overloaded; confirm with the user when it is a decision (per
clarifying-question-disciplineif asking). - Update lazily, inline — when a term is resolved, update
CONTEXT.mdimmediately. Create the file only when the first term is recorded. Keep entries free of implementation detail. - ADRs sparingly — offer an ADR only when hard-to-reverse and surprising without context and the result of a real trade-off; otherwise skip. ADRs are optional companions, not required by this skill's core loop.
Forbidden
- Writing OpenSpec requirements, code designs, or API contracts into
CONTEXT.md - Treating the glossary as the behavioral source of truth instead of OpenSpec / host sinks
- Renaming this skill to
domain-modelinginside this repository
Integration guide
- Hosts: one-line pointer at clarify/analyze when domain terms matter — load this skill; do not paste glossary format tables into hosts.
- Prefer
user-invocable: false; users reach it through PDCA hosts or explicit load. - Behavior changes still go to OpenSpec (or the host's artifact sink), not into
CONTEXT.md.