Claude arrives knowing general English and a great deal of public domain knowledge. What it cannot know is your organization's private vocabulary: internal product names, acronyms that collide with public ones, terms of art your industry redefines, and words your contracts define more narrowly than everyday usage. When output "misunderstands" a domain document, the root cause is often vocabulary, not reasoning — and the fix is to define your terms in the prompt rather than hoping the model infers them.
Why the system prompt is the right home
A glossary is stable, applies to every request, and shapes interpretation before the model reads any input — exactly the profile of system-prompt content. Anthropic's best-practices guidance supports each design choice involved: give context and explain why (Claude generalizes from explanations), structure prompts with descriptive XML tags so the glossary is clearly bounded, and be clear and direct rather than assuming shared context. The golden rule applies verbatim here: a new employee wouldn't know that "the Q-report" means your quarterly credit-quality filing, and neither does Claude.
A workable structure looks like this:
from anthropic import AnthropicFoundry
client = AnthropicFoundry(api_key="...", resource="my-resource")
system = """You review commercial insurance submissions.
A temporary contract of insurance, NOT a folder.
The amount of risk we keep, NOT customer churn.
Self-insured retention: paid by the insured before
the policy responds. Distinct from a deductible.
When a glossary term appears in a document, use the definition above
even if everyday usage differs."""
msg = client.messages.create(model="claude-sonnet-5", max_tokens=1024,
system=system, messages=[{"role": "user", "content": submission}])
Three details do most of the work: the explicit "NOT" contrasts (collisions with everyday meaning are the whole problem), the closing instruction that the glossary overrides common usage, and the tagged structure that keeps definitions from bleeding into task instructions.
What belongs in the glossary
Resist the urge to paste the entire corporate wiki. Prioritize:
Collision terms — words with a strong everyday meaning that your domain overrides ("binder," "retention," "exposure"). These cause the quietest, most confident errors.
Ambiguous acronyms — especially internal acronyms that shadow public ones.
Terms with regulatory or contractual definitions — where "close enough" wording in output creates real risk. For compliance-sensitive definitions, have counsel sign off on the glossary text itself, since the model will faithfully propagate whatever you write.
Distinctions your team polices — pairs like SIR vs. deductible where conflation marks output as amateur. A one-line "X is distinct from Y because…" entry is highly effective, and a few worked examples in <example> tags reinforce usage better than definitions alone (Anthropic recommends 3–5 examples).
Caching makes big glossaries nearly free
The objection to a 2,000-token glossary is cost: it rides along on every call. Prompt caching removes most of it. Mark the end of the stable prefix with cache_control: {"type": "ephemeral"} and subsequent requests within the TTL read the cached prefix at 0.1x the base input price (the write costs 1.25x once per 5-minute window, or 2x for a 1-hour TTL). Minimums apply — the prompt must reach 1,024 tokens to cache on Opus 4.8, Sonnet 5, or Haiku 4.5 (512 on Fable 5) — which a system prompt plus glossary usually clears easily.
Caching is available on all four third-party platforms; note that Amazon Bedrock supports explicit breakpoints only, without the automatic top-level caching mode.
Glossary vs. RAG
A glossary defines terms; retrieval-augmented generation (RAG) supplies documents. If the model needs the full text of policies or specs, that's retrieval, covered in grounding with RAG. If it keeps misreading individual words, that's the glossary's job — and at tens of terms, the always-present, cache-cheap system prompt beats retrieval's chance of missing the definition. Many production systems use both. When the glossary changes, re-run your eval set before deploying, like any other prompt change (assessing prompt changes).
Where to go next
See system prompt design for the surrounding structure, prompt caching costs for the pricing math, and the industry articles such as Claude for insurance for domain-specific examples.