Skip to content

Domain Language

Domain language is the shared vocabulary of a product or system area. Canon treats language as governed knowledge because unstable terms create unstable requirements, models, architecture, and implementation.

Ubiquitous Language

Ubiquitous language is the vocabulary the team agrees to use consistently across:

  • product conversations
  • requirements
  • UI text
  • APIs
  • code
  • documentation
  • reviews
  • downstream guidance

Canon does not invent vocabulary from taste. It should ground terms in actual usage and make deliberate decisions about accepted, deprecated, and ambiguous language.

Term Status

A domain-language packet should make term status explicit.

Useful statuses:

  • accepted
  • proposed
  • ambiguous
  • deprecated
  • rejected

Status matters because downstream tools should not treat an ambiguous or proposed term as an accepted standard.

Accepted Terms

Accepted terms should include:

  • the term
  • definition
  • scope
  • examples of correct use
  • terms it replaces or excludes
  • evidence or source refs

An accepted term becomes reusable project memory only when it has enough evidence and approval for its downstream purpose.

Deprecated Terms

Deprecated terms should include:

  • old term
  • replacement term
  • reason for deprecation
  • affected docs, APIs, or code where known
  • migration guidance

Deprecation is especially useful for Boundline guidance and review checks because it gives downstream tools something concrete to detect.

Ambiguity Handling

Ambiguous terms should not be cleaned up silently.

Record:

  • conflicting meanings
  • where each meaning appears
  • who or what uses each meaning
  • risk caused by ambiguity
  • recommended clarification path

Sometimes the correct output of a domain-language run is not a final vocabulary. It may be a focused set of language questions for discovery, requirements, or domain modeling.

Relationship With Boundline

Boundline can consume accepted and deprecated domain language as guidance or guardrails during delivery work.

Canon should supply:

  • accepted term definitions
  • deprecated term mappings
  • ambiguity warnings
  • evidence refs
  • approval state

Boundline should decide how to activate that guidance at runtime. Canon provides governed meaning, not runtime execution.

When To Use domain-language

Use domain-language before downstream work when:

  • stakeholders use different names for the same thing
  • one term means multiple things
  • code and product language diverge
  • requirements are blocked by unclear vocabulary
  • generated agents keep making terminology mistakes
  • Boundline guidance needs accepted vocabulary

Released under the MIT License.