Govern “what these business terms mean” separately from “why this option was chosen.” Do not create an empty shell when no stable content exists.
When terms require repeated explanation, one term has multiple meanings, or unclear language causes module-boundary errors, first reuse the repository's existing glossary/domain-model document or the context role in .governance/docs-map.json. If an existing context map identifies separate business contexts, follow its links to the relevant glossary; ask when the topic's owner is unclear. Different contexts may legitimately use the same word differently. Do not create a glossary for every directory or impose one meaning across unrelated contexts. Only when no equivalent exists and a term has been resolved should you propose the default CONTEXT.md from templates/context.example.md. Obtain the user's explicit approval to create that new artifact before writing it, and stay within the authorized documentation scope. General permission to update documentation does not itself approve a new artifact; editing an existing mapped glossary within the authorized scope does not require a new-artifact approval.
Record only:
Do not include implementation details, current state, task schedules, full requirements, decision rationale, or history. Keep those in code/MAP, STATUS/Issue Tracker, Spec, ADR, and LOG respectively. Terms must be traceable to code, contracts, or business evidence. Mark unconfirmed items as needs confirmation; do not guess.
This is an active modeling workflow, not a requirement to rewrite the glossary whenever another skill reads it.
Use the project's existing glossary format. For a new document, the context template provides a compact starting point; omit sections without real content. Include business-specific concepts, not generic programming vocabulary such as timeouts or utility functions.
This skill does not define a second ADR directory, numbering scheme, lifecycle, or template. When a decision is hard to reverse, would confuse a future reader without context, and involves a real tradeoff:
architecture-decision-records, preserving the repository's existing ADR location, format, and explicit approval gates for initialization and writing.CONTEXT.md, the project map, or the relevant Spec/Issue instead of copying the decision body.Routine implementation details, easily reversible changes, and short-lived experiments do not need ADRs.
architecture-decision-records.Merely consuming established vocabulary during an ordinary bug fix does not require a modeling session or new documentation.
Use this skill when stable domain language needs one evidence-backed home, or when context work reveals a hard-to-reverse decision that belongs in the repository's existing ADR system.
CONTEXT.md only when no equivalent source of truth is available and the user has explicitly approved creating that new artifact.architecture-decision-records and link the resulting ADR instead of copying its rationale into context documents.needs confirmation until a domain owner resolves it.CONTEXT.md.architecture-decision-records: the sole ADR methodology for hard-to-reverse decisions.living-docs-governance: lifecycle maintenance for the project map, status, and history.docs-governance: cross-capability routing and closeout order.Keep tasks, status, blockers, and schedules in the project's existing tracker, such as GitHub Issues or Linear, as the single source of truth. Use local .scratch/ only when no external tracker exists and the project explicitly adopts it. Do not put schedules in CONTEXT.md, ADRs, PROJECT_STATUS, or the history index database.
The active terminology-refinement workflow adapts Matt Pocock's MIT-licensed domain-modeling skill. See source and adaptation boundaries. ECC's existing ADR workflow remains the sole decision-record owner.