Field notes

When legal must approve every word

Some environments cannot ship generated text. Not “prefer not to”: cannot. Regulated communications, compensation questions, anything where a wrong sentence is a legal event. The standard conclusion is that these environments cannot ship an LLM at all. That conclusion is wrong, and the pattern that breaks it is worth knowing: use the model as a classifier, never as a generator.

The pattern

I built a support chatbot under exactly this constraint: legal required that every word a user sees be pre-approved. So the model never writes answers. A user asks a question in natural language; the model’s only job is to decide which of the pre-approved answers, stored in a database the content owners control, actually addresses it. The exact approved text is returned verbatim, with a confidence level attached. Below the confidence threshold, the tool does not guess; it hands the user a phone number for a human. The LLM contributes the thing it is genuinely good at, understanding a messy question, and contributes nothing where it is risky.

Why this is not a downgrade

It is tempting to see this as crippled AI. In practice it captures most of the value. The hard part of self-service support was never writing answers; the organization already has approved answers. The hard part is that users do not ask questions the way documents phrase them, in whatever language they prefer, with whatever context they assume. Mapping a real question to the right approved answer is a language-understanding problem, which is precisely the part the model does well. Users get an instant, accurate, legally safe answer; legal gets a system where the complete set of possible outputs is enumerable and reviewed.

Design notes

Keep the approved corpus in a database owned by the content team, not in the prompt repository, so updating an answer is a content change rather than a deployment. Log the questions that fall below the confidence threshold; that queue is your roadmap, because it is a literal list of what users need that the corpus does not cover. Handle languages by classifying across all of them and storing answers per language, so a Spanish question finds the same approved answer as its English equivalent. And attach the confidence level to every response, because it turns quality review from sampling into triage.

Where else this applies

Anywhere the answers must be controlled but the questions are messy: benefits and HR policy, financial product terms, medical scheduling, anything with a regulator in the room. If your compliance team has been the reason there is no AI in front of your users, this pattern is usually the first viable move: not because it is clever, but because it gives them the one guarantee generation cannot, a closed set of things the system can ever say.

← All notes