Retrieval over generation
Retrieval over generation
What did we do the last time we saw this, and did the car come back? A question a shop can answer from its own records, without a model in the loop.
Every service bay has a memory problem. The shop has fixed this complaint before, on this platform, maybe on this exact vehicle, and the record of what was done is sitting in a closed repair order that nobody opens. The technician starts from zero. The industry's answer is a diagnostic assistant: a model that reads the symptom and proposes a cause. That answer has a defect it cannot fix. A proposed cause is not checkable. The technician either trusts it or ignores it, and neither is a repair.
The second contract in github.com/wayneColt/contracts takes the other road. It owns this sentence:
> search our own completed repair orders by symptom and get back what we actually did and whether the car came back, from the export we already have, with no model in the loop, in under a tenth of a second
Every clause is a constraint an incumbent violates. It searches our records, not a national corpus. It returns what was done, not what might be wrong. It reads the export the shop already has. No model runs, so there is nothing to hallucinate and nothing to license. And it answers in 77 milliseconds, measured on the deployed runner at the edge.
What comes back
A ranked list of the shop's own repair orders. For each one: the job line as written, its category, the technician's note, the flag hours, labor and parts as the export wrote them, and two facts that cost nothing to compute and are worth more than the ranking: how many times that vehicle has closed a repair order since, and whether it came back at all. A return is not proof the first repair was wrong. It is a pair worth opening. The contract says so, in the output, every time.
Relevance is term rarity over the rows supplied, so a word that appears in every job carries no weight and a word that appears once carries a lot. That is deliberately ordinary. What is not ordinary is the discipline around it.
What the contract refuses
- No standard, no run. The buyer writes the rubric: which field is the repair order number, which is the vehicle key, what counts as a comeback, which shop jargon to ignore. Without a named standard the module answers
NO_SIGNALand asks for one. - No data at rest. The module is stateless. The repair orders travel with the question and are discarded with the answer.
- Nothing leaves unredacted. Technician notes are written mid-repair and carry phone numbers, emails and VINs. Every note is scrubbed before it is echoed, and the validator in the public repo fails any golden case whose note is not.
- No diagnosis. It retrieves prior work. It cannot know whether a past repair was correct, only that it was performed and whether the vehicle returned. That line is what makes every hit checkable.
- No risk score. Below three hundred labelled pairs the comeback label is a list to read, not a model to fit. A classifier at that size would be confident and wrong.
What is public and what is not
The contract is public: the rubric shape, the packet, both schemas, a mock fixture, seven golden cases computed by the runner, and pricing footnotes written to be quoted verbatim. The runner that answers the question is not in the repository. That split is the whole model: the buyer can read exactly what they are buying and verify every promise against the golden set, and the thing that does the work stays the thing you pay for.
Retrieval over generation is not a smaller ambition than a diagnostic assistant. It is the ambition with the receipts attached.