Run a classification, screen a counterparty, search past runs, export a report, manage who on the team has access.
ITAR Screen
An internal compliance system for export control. It took a plain product description and returned a structured read on whether the item was restricted, why, and what to do next, with the record kept for the team. Owned outright, and designed to be operated by one person.
The question is cheap to ask and expensive to answer.
An engineer holding a part description cannot tell from that description alone whether the item falls under the US Munitions List or the Commerce Control List. The two regimes are administered by different agencies, carry different licensing paths, and getting the call wrong carries criminal exposure under the Arms Export Control Act.
So firms do one of two things. They route every question to outside counsel at counsel rates and counsel turnaround, which throttles the pace of quoting and shipping. Or they guess, and carry the exposure quietly. Neither scales with an engineering team that touches export-relevant hardware every week.
ITAR Screen was built to sit in front of that decision: to take a plain product description, a destination, and an end use, and return a structured, reasoned first pass that tells a compliance officer where to look and how hard to worry, so counsel time goes to the cases that actually need it.
Three pieces. One job.
Someone types in what they are shipping and where it is going. The system tells them whether it is export controlled, how confident it is, and what to do next. Then it keeps the record.
One service held all of it: the classification logic, watchlist matching, permissions, billing, and email. Nothing else touched the database.
Reference pages for all 21 USML categories, plus a limited trial run so someone could see the output before asking for access.
Keeping every rule in one place is the whole trick. Permissions, usage limits, and the audit trail each had exactly one home, so there was never a second copy to drift out of sync. Five tables carried the state, and each of the three pieces deployed on its own.
What it looked like to use.
Three fields in. Back came a plain-language read with its reasoning attached and a next step, not a yes or no.
Anyone can put AI behind a text box. The work is deciding how it fails.
In this domain a wrong answer is not a bad user experience, it is a federal crime. So the real engineering was not getting good answers. It was making sure the bad answers were the safe kind. Four decisions did that.
When it was not sure, it said so
The two ways of being wrong are not equal. Missing a restricted item can end a company. Flagging a harmless one wastes an hour. So the system was built to lean toward the hour. When it could not tell which side of the line an item fell on, it said "I cannot tell" and sent the case to a human. It was never allowed to guess its way to "you are fine".
The result card above is that rule doing its job. Handed a genuinely borderline sensor turret, the system refused to pick a side, flagged it high risk, and told the operator exactly which filing would settle it. The easy failure would have been a clean, confident, wrong answer.
It never pretended to be the final word
A fixed rule governed every word the system produced: it reported what it found and what a qualified person should do next, and it never claimed to have settled anything. That applied to the interface and the writing around it, not just the output.
This was a hard constraint, not a style preference. The moment a tool like this is allowed to sound certain, people start treating it as legal advice, and it has created the exact risk it was built to remove.
The rules were versioned like code, not tweaked on a whim
The instructions driving the AI were not settings. They encoded real regulatory judgment: where the category lines sit, how much destination and end use matter, when a case counts as too close to call.
So they were treated like any other critical code. Versioned, reviewed before changing, and stamped onto every result. If the system's behavior shifted, you could point at the exact change that caused it instead of guessing.
The AI was never trusted to quote the law
Claude Opus 4.7 ran the classification, but it was never asked to remember what the regulations say. AI models are confident about details they have half-remembered, and in this domain a half-remembered rule is worse than no answer at all.
So the split was strict. The model read a product description against rules it was handed, which it is genuinely good at. The rules themselves came from the actual published sources, cited rather than recalled, and anything the system drafted for publication needed a human sign-off first.
It replaced the process, not the task.
Answering the question is one step out of six. A real export-control function also has to clear the counterparty, prove it did the work, keep the record for years, decide who is allowed to ask, and catch the case nobody looked at. Miss any of those and the officer is back in a spreadsheet within a week.
Clears the buyer, not just the part
A cleared item shipped to a barred party is still a violation. Every counterparty ran against the three federal denied-party lists, with matching that survived spelling variants and ignored filler words like "international" so the operator was not buried in false hits.
Proves the work was done
Every run was kept with its inputs, its reasoning, and the version of the rules that produced it. Years later you can show not just what was decided but why, and what the system knew at the time.
The record outlives the tool
Any run, or a whole filtered history, out to PDF or CSV on demand. The evidence belongs to the company, not to the software. If the system were switched off tomorrow, nothing about the last five years of decisions would be stranded behind a login.
Engineers ask, compliance decides
Roles and invitations meant an engineer could run a check without being handed authority over the function. The compliance lead stayed the one accountable for what the answer was used for.
Nobody has to remember to look
The system reached out rather than waiting to be checked: nine automatic notifications covering access, thresholds, and anything that changed underneath a user. Silence meant nothing needed attention.
Costs that cannot run away
Every account carried a hard monthly ceiling on AI spend, enforced in the engine rather than the interface, so it could not be sidestepped by hitting the API directly.
Owned, not rented.
Most companies rent this function. A screening subscription for the counterparty checks, counsel hours for anything the subscription will not answer. Both work. Both mean the rules that decide what your company is allowed to ship live on somebody else's roadmap, and every change to them is a support ticket.
This is the same function built to be owned. The classification logic, the thresholds, the record, and the data all sit inside the company. Move a threshold on a Monday because the product line changed. Pull five years of history because a customer's auditor asked. Nothing waits on a vendor, and nothing walks out the door when a contract lapses.
It was designed to be operated by one person rather than staffed by a department, and that is where the drag comes out. Thirty-one thousand lines exist so the routine cases stop consuming expert attention, and the genuinely hard ones finally get it.
None of that came from the model. It came from deciding, before a line was written, which way the system should fail when it did not know the answer.