Can this batch ship?
Six systems hold the answer and none can see the other five. Today a reviewer opens all six and joins them by hand. This walks them in about a minute and names what would stop the batch leaving.
The answer is assembled by walking.
Nothing here holds the answer on its own. The question reaches a loop, the loop reaches tools, and the tools reach seven stores that cannot see each other. Open any of them to read what it holds.
You ask
Your question
one batch, one market
The question text is the only thing about you that leaves this page.
The loop decides
the loop
gpt-5-mini
Reads the question, picks a tool, reads what comes back, writes the file. It never queries a database itself.
agent-01 … agent-23
one per affected lot
A supplier question fans out. Each agent sees one lot, so a bad document reaches one row and stops.
A tool fetches
assess_release
29 queries, six systems
One call, not six. A model free to stop after Quality would report five passes and be wrong.
assess_supplier_impact
one supplier, every lot
Walks forward from a disqualified material to the batches that used it, and to where they went.
search_procedures
the revision in force
Finds the procedure that governed the act on the day it happened, not the one in force now.
The systems answer
mrd_erp
Materials
Products, formulations, suppliers, and the incoming material lots each batch consumed.
mrd_mes
Manufacture
The execution record: which line, which equipment, and whether it was qualified that day.
mrd_qms
Quality
Specifications, test results, retests, and the disposition that released the batch.
mrd_hcm
People
Training, qualifications and signing authority — and the day each of them lapsed.
mrd_reg
Registration
Market authorisations, and every procedure revision with the dates it was in force.
mrd_tms
Transport
Shipments at lot granularity: the truck, the route, and how cold it was kept.
mrd_kb
Procedures
The written procedures themselves, searched by meaning. A library, not a system of record.
The seven stores are seven separate databases. Nothing joins one to the next, which is why the answer has to be walked rather than queried.
And this is what is in them.
Seven databases on four different vendors' systems, in the shape a mid-size manufacturer actually has them. Open one to see its tables, what each holds, and every field with a real value from it.
counted 2026-09-13 by pnpm pharma:estate
The six on the left are the customer's systems of record — read, never written, and no query joins one to the next. mrd_kb on the right is ours: the written procedures, indexed so they can be searched by meaning.
Two questions, one estate.
Both walk the same six systems and cite the same records. They differ in what they are about, and in the shape of what comes back — which is why they are two desks and not one with a dropdown.
| Release deskOpen it → | Supplier impactOpen it → | |
|---|---|---|
| You ask | Can this batch go to this market? | This supplier was disqualified — what did we make with their material? |
| The subject | One lot, one destination. | One supplier, and every lot their material reached. |
| What comes back | A dossier: what would block it, with the rule that makes it a blocker. | A work list, one row per affected lot, ranked by how far the material got. |
| Measured on the seeded estate | 29 queries across the six systems, about a minute. | 23 affected lots · 3,768,955 units · 19 deliveries traced. |
| The worst finding it will state | A blocker, with the clause behind it. | 5 lots reached a hospital or a pharmacy chain. |
| What it refuses to say | That the batch may ship. A QP decides. | That anything should be recalled. Quality and Regulatory decide. |
Supplier figures from pnpm db:supplier-impact SUP-04, which reads the estate and calls no model.
It never says yes.
Under Annex 16 the signature is a person's. So the strongest thing this can return is that nothing was found to block the batch — which is a statement about the checks that ran, not a clearance. There is no field in the answer that could carry one, and no green tick anywhere in the product.
What it does instead is prepare the file: every finding with the rule that makes it one, every gap it could not close, and the name of whoever has to decide.
No blocker found
for QP review
Answering a question means sending part of your data to a language model. Which parts, where they stop, and the command that proves each claim — where your data goes.