Harness

Software after the model talks. Fluent is not the same as true.

You do not trust a program because it sounds sure. You run a checker: perl -c, a compiler, a schema, a grammar that rejects a bad shape. Same move after an LLM answer. Harness is what we call our version: a policy-number check the model cannot talk its way past.

Pins get the right sheet into the room. The harness is the door on the way out. For clinic policies we keep the real list of policy numbers. If the answer cites a number that is not on that list, the check fails. The model gets a short reason and has to try again. A fluent fake does not pass.

Asking the model to “only cite real policies” is still a prompt. Prompts get ignored. The harness is not a prompt. It is software. The list is ours. The fail is ours.

🛠️
The old idea

Run the checker

A compiler. perl -c. A schema. A grammar that rejects a bad shape. You do not trust the author because they sound sure. You run the check.

🛡️
Our name

We call it a harness

After the model talks, cited policy numbers are checked against the real list. Fail, reason, retry. The new bit is treating that as a named piece of the Faculty setup, sitting in the proxy, not a hope in the prompt.

❌
What it is not

Not a prompt

Not “please be accurate.” Not fine-tuning. Not search. The model cannot sweet-talk it. If the number is not on the list, the answer does not ship.

How it runs here

  1. Search and pins run first. Then the local model writes an answer.
  2. The harness reads the answer and pulls out cited policy numbers.
  3. Each number is checked against the real list we keep.
  4. If one is invented: fail, a short reason, the model has to redo the answer.
  5. If every number is on the list: pass. The chat client gets the answer.

In production on Faculty hardware, on the DGX Spark path, in front of the local model. Shown in the AI Kitchen talk, 27 Aug 2026. Not in the three Perl files on the code page. Those files are the first public snapshot. The harness came after.

Pins RAG Setup