Method·August 25, 2026 · 4 min read

A constraint can't be skipped. A script can.

FDA Radar's single write path refuses to approve an item without a human-written urgency and recommendation — a rule the classifier cannot touch, because the schema it returns has no field for either one. The same bright line applied to the model's own prose has no such guarantee. It has a script, and a script only runs when someone remembers to.

By Connor Griggs — Regulatory & Quality Strategist

Every item this product ever sends carries a human-written urgency and a human-written recommendation, or it does not get approved. That is not a policy anyone has to remember — the application will not accept the update. Every write to the database goes through one module, and its rule reads, in essence: an item cannot move to approved unless its urgency, recommended action, and reviewer are all filled in by a person. An automated test fails if any other code writes to the database, so there is no second door around that rule.

One layer up, the same guarantee holds for a different reason. The classifier’s output is a JSON schema with additionalProperties: false and no key named urgency or recommended_actions anywhere in it. The model is not merely instructed to leave urgency alone. It has nowhere to put it — the schema itself makes the omission structural, not a matter of the prompt being obeyed.

What that guarantee doesn’t reach

Both of those are hard constraints: one enforced on every database write, one by the shape of the API call. Neither one, though, looks inside the two free-text fields the model does fill in — summary_md and impact_md. The schema’s description for each field asks the model directly: “No recommendations, no urgency, no imperatives aimed at the reader.” That is a request written into a prompt, not a rule a parser enforces. Nothing stops the model from writing a summary sentence that reads exactly like advice — “manufacturers should update their labeling immediately” is a sentence the schema has no way to reject, because the schema only checks that summary_md is a string.

That gap is where scripts/verify-classify.ts lives. It is not part of the production pipeline — classify.ts, the job that actually drafts items in the database, never runs it. It is a script a developer runs by hand, usually after touching the prompt: it fetches one real, live FDA document — preferring a guidance document, because guidance prose is “the highest-value document type and the one whose prose is richest, so it exercises the prompt hardest” — classifies it for real, and then runs the drafted text through two short lists of regular expressions. One catches advice-shaped phrasing: you should, we recommend, manufacturers must. The other catches urgency-shaped phrasing: urgent, critical, immediate action, time-sensitive. A hit on either list fails the run and prints exactly which phrase tripped it.

A rule enforced on every database write cannot be forgotten. A rule enforced by a script can be forgotten by simply not running the script.

A spot-check, honestly described

It would overstate what this script does to call it a test suite. It exercises one document, chosen for being a hard case, read by whoever is watching the terminal. It costs one live API call, which is exactly why it is not something a CI pipeline runs on every commit against the full corpus — that would mean a paid model call on every push, against documents that don’t change between them. So it is a deliberate human action: run it after a prompt edit, read the summary and impact it prints, and let the two pattern lists do the part of the reading that is easy to miss under a deadline. FDA’s own guidance on software validation makes a point relevant here even though this product is not itself a regulated device: a test plan is only as good as whether it was built to exercise the failure conditions that matter, not just the ordinary path. A regex list aimed at the two sentences this product is built to never write is exactly that kind of case — a boundary condition, checked on purpose, not caught by accident.

The honest inventory, then, has three tiers, not one. The write-path rule on urgency and actions cannot be bypassed by any code this product ships, and a test checks that. The schema’s missing fields cannot be populated by any response the model returns. And whether the model’s prose merely sounds like it crossed the line into advice or urgency is checked by a script that has to be invoked, read, and acted on by a person — the same three-tier distinction worth asking of any vendor who tells you their AI tool “never gives advice.” The question worth asking back is which of those three shapes the promise actually takes.

None of this changes the bright line itself: this product is regulatory intelligence and method, never regulatory advice, and the classifier is never the thing deciding what a document means for your device. See our editorial standards for the rest of what a model is and isn’t allowed to decide here.

Regulatory intelligence, not regulatory advice. This post describes method and published FDA records as of its date; decisions about a specific device belong with your regulatory professional.

Practice
A provider letter doesn't need a recall
Method
A qualified tool has a context, not a blanket
Practice
The eMDR account isn't automatic
Method
The manufacturer who owns no factory
Practice
GLP covers the safety study, not the device
Method
Part 11 governs the copy, not the duty.
Method
A K-number isn't always a 510(k)
Practice
Approved once. Reported every year.
Method
The goal date passes. FDA owes a letter.
Method
The money a 510(k) never has to mention
Method
A discussion paper isn't guidance
Practice
A stereotaxic system isn't a RASD
Method
The A-list is a forecast, not a deadline.
Practice
Ultra has a gram range. Fragrance doesn't.
Method
Patient preference just reached the 510(k)
Practice
The health hazard evaluation isn't the record
Method
The sponsor proposes risk. The IRB decides.
Practice
A Special 510(k) needs a predicate you own
Method
The flag marks the reviewer, not the result
Practice
Call it fifteen. File it in thirty.
Method
The recognition number isn't the list number
Practice
The letter to file isn't in the guidance
Method
The PMA preempts. The 510(k) doesn't.
Practice
Cleared doesn't code. Coded doesn't cover.
Practice
Exempt from 510(k). Restricted anyway.
Method
Exempt from registration. Not from 510(k).
Method
Right to try reaches drugs, not devices
Practice
The 510(k) clears the range, not the fit
Practice
The hospital's duty runs to the maker, not FDA.
Method
The predicate study isn't the waiver study.
Method
No clinical hold for an IDE. Only disapproval.
Practice
A CFG can cover a device that never came here.
Method
The symbol skips text. The glossary can't.
Practice
The label clears 812.5. The flyer doesn't.
Method
A 510(k) can change hands. No rule says how.
Practice
A missed renewal is two violations, not one
Method
Drugs expire by rule. Devices by choice.
Practice
Denied the petition. Not the outcome.
Practice
Starting a committee is public. Renewing isn't.
Method
A recall closes. A radiation refund doesn't.
Method
The trial is public. The IDE isn't.
Practice
A PMA withdrawal pays back. A 510(k) doesn't.
Method
Interoperable is a design term, not a class.
Practice
The category is new. The 510(k) record isn't.
Practice
The device is cleared. Not the room.
Method
Classified in 2011. Excluded in 2016.
Practice
The law reached devices. The guidance hasn't.
Method
The label says RUO. FDA reads intent.
Method
Humanitarian. Not always nonprofit.
Practice
The certification has a one-year tail
Method
The code changed. The failure didn't.
Practice
Skip has a ceiling. Search after doesn't.
Method
Reviewed together. Decided separately.
Practice
Class III. Not called for PMA.
Practice
The standard for the wire, not the device
Method
A reference device isn't a predicate
Practice
A predicate checklist nobody has to follow
Method
The pathway that skips the predicate
Method
A network FDA funds, not FDA runs
Practice
Panel-recommended. Not yet classified.
Method
The pilot that needed a statute
Practice
A committee no clearance ever names
Method
Never cleared here. Exported anyway.
Practice
Built for drugs. Silent on devices.
Practice
A significant decision carries its own clock
Method
The guidance that went back to draft
Method
Breakthrough crosses centers. TAP does not.
Practice
Two lists decide who reviews your 510(k)
Method
The reprocessor holds the 510(k)
Practice
The Rx symbol never reaches the record
Method
The disqualification list names no device
Practice
The summary FDA writes, not the sponsor
Practice
A missed MDR is misbranding, not a defect
Method
Two names on one registration, two jobs
Practice
A K-number is public. The other isn't.
Method
Exempt covers the type, not the use
Method
Recognized. Not published.
Practice
The supplement got eSTAR. The PMA did not.
Method
Congress ordered a guidance, not a rule
Practice
AI-enabled is a list. Not a field.
Practice
The companion diagnostic list changed its name
Method
The master file neither of you can read
Practice
The condition inside the approval order
Method
The repair FDA calls manufacturing
Method
Vacated in March. Filed in September.
Practice
Classified. Not waived.
Practice
Emergency use isn't defined in Part 812
Method
The two-year inspection clock is gone
Method
The PMA clock starts at the last module
Practice
The Q-Sub that doesn't buy you more time
Method
Lapsed and revoked end an EUA differently
Practice
A recall strategy has a grade. openFDA doesn't.
Method
A granted De Novo becomes a predicate.
Practice
Least burdensome changes the ask, not the bar.
Method
The lab is accredited. Not the device.
Practice
Breakthrough is law. STeP is a guidance.
Practice
MDSAP replaces routine. Not for-cause.
Method
No field on a 510(k) says what it treats
Method
Discretion is a policy. Exclusion is a statute.
Practice
Designated by one office. Approved by another.
Method
MedSun sits beside MAUDE, not inside it
Practice
The five-unit device never gets a K-number
Practice
Meeting the criteria isn't a tracking order
Method
The PMA clock doesn't stop at approval
Practice
The K-number doesn't track today's device
Method
A MAUDE report proves it was filed
Practice
Not every MDR starts with the manufacturer
Method
Completed. Not terminated.
Practice
The device-ban list has three entries
Method
The UDI exception has its own deadline
Method
MDUFA VI is being negotiated in public
Practice
The inspection manual changed, not the rule
Method
The count Congress had to legislate
Practice
The small-business rate isn't retroactive
Method
A detention order has no docket to read
Practice
PMA approvals moved off the Federal Register
Method
A citizen petition names names
Practice
A market withdrawal isn't a recall
Method
Not every device letter comes from CDRH
Practice
Closed on one device. Open on the rest.
Method
No IDE is confirmed until the PMA is
Practice
The remedial-action call sets the clock
Method
Jurisdiction is a letter, not a field
Practice
An address is not a footprint
Method
The final rule that isn't final yet
Practice
The special controls aren't in the record
Method
Exempt from GMP. Not from complaints.
Practice
The notify list isn't the shortage list
Practice
No cron sends this. A person does.
Method
Corrected, not rewritten
Practice
Quiet is a finding, not a default
Method
The summary is public. The statement isn't.
Practice
A competitor's 513(g) leaves no trace
Practice
An empty response field proves nothing
Method
A petition is public. Its outcome isn't.
Practice
The panel is a category, not a meeting
Method
An accessory carries its own classification
Method
A TPLC report is a category, not a device
Practice
A 522 order is a question, not a verdict
Method
A PCCP change leaves no new record
Practice
Not every signal becomes a recall
Method
eSTAR did not remove the acceptance check
Practice
An early alert has no recall number yet
Practice
A consent decree isn't a database row
Method
The record has no cybersecurity field
Practice
Classification Change is not one event
Method
Publication date is not effective date
Method
One event. Many recall numbers.
Practice
Quantity is a sentence, not a number
Practice
How a firm told you is a field too
Method
A RIN outlives the document number
Method
The docket ID is not the comments
Practice
The 510(k) record doesn't name the predicate
Practice
The 510(k) FDA didn't review first
Method
The letter FDA doesn't have to post
Practice
Cleared doesn't say which track it took
Method
The clock stops. The calendar doesn't.
Method
Why a guessed match never reaches you
Practice
The standards list never names a device
Method
The guidance isn't in the Federal Register.
Practice
Filtered. Not discarded.
Method
There are two recall databases, not one
Practice
Breakthrough status is confidential by law
Practice
One MAUDE report is not one malfunction
Method
A supplement number is not a track
Method
Cleared is not approved
Practice
Nationwide doesn't mean your building
Practice
Not every correction reaches FDA
Method
Registered. Not reviewed.
Method
Contact ODE is not a pathway
Practice
Almost no recall is FDA-mandated
Method
FDA's device names read like a card catalog
Practice
openFDA is free. It is not unlimited.
Method
GUDID stores the model. Not the box.
Practice
Detention doesn't need a warning letter
Method
A Class I device, a Class I recall
Practice
21 CFR 820 didn't move. Its contents did.
Method
The product code that doesn't exist yet
Practice
The classification posts. The 483 behind it doesn't.
Method
A recall has three dates, and the pipeline had to pick one
Practice
The count is real. The rate is not.
Method
The firm on the record is not the firm on the box
Practice
Low confidence is an instruction, not a hedge
Method
The same company, spelled three ways
Practice
A device that was never a medical device
Method
FDA's warning letters, addressed by column number
Practice
Your regulation has a decimal. FDA's watch doesn't.
Method
Three letters is too short to search for
Practice
Most warning letters never close
Method
The guidance that skipped the draft
Practice
Ongoing, as of when?
Method
The least interesting fact in a 510(k)
Practice
No recall arrives with a product code attached
Practice
The deadline that doesn't email you
Method
The warning letter has two dates
Method
How to monitor FDA without drowning
Practice
Your predicate was recalled. Now what?
Method
Why no item reaches you without a human