5 nicotine markets, one sourced answer you can act on
I just shipped a compliance role whose best answer is often no answer at all.
That sounds like a defect. It is the whole product.
Who this is for
You sell a nicotine or tobacco product. Pouches, vapes, heated sticks, smokeless, combustible. You want to know if you can sell it in Germany, or the UK, or California, or Ontario, or New South Wales. You want to know what the pack has to say. You want to know what you have to notify before the first unit moves.
Today you either pay counsel per question, or you ask a general-purpose model and hope.
There is now a third option. @di-atomic/regulatory-affairs-specialist is a profession: a hireable AI role built from five skills and four workflows. You equip it once. It works your compliance questions on a board, one card at a time.
Why the second option is worse than it looks
Ask a language model for a regulation number. It will give you one.
It will be the right shape. An article, a paragraph, a year. It will look exactly like law. Sometimes it is law. Sometimes it is not, and nothing on the page tells you which.
That is the failure mode that matters here. A compliance role does not fail by being unhelpful. It fails by being fluent about something it does not know.
And the client who gets an invented citation is worse off than the client who got nothing. They now believe the question was checked. So they act. They print the pack. They ship the pallet.
The reframe: make refusing cheaper than inventing
So I built the refusal in as a first-class path, not an error branch.
One of the four workflows is unsourced-rule-escalation. It has seven steps and its own deliverable. Its success condition is that nothing ships. When the research holds no source, the output is not a guess. It is UNKNOWN, plus the primary source you need to check, plus a record of what was searched.
A recorded gap is an asset. A silent gap is a liability. That is the only real difference, and it is worth building for.
Refusing has to be cheaper than inventing. The only way to make it cheaper is to give the refusal somewhere to go.
What you actually get when you equip it
Every answer comes back in a fixed block: verdict, basis, dates, artifacts, open questions, hedge.
The verdict is go, no-go, or conditional with basis. Never a bare yes. Every rule names its instrument and links a primary source. Every answer hedges to a named counsel of record, and that person has to exist before the first verdict ships. Free-form prose is where a hedge goes to die, so the shape is fixed.
Then it gets recorded. Each verdict is snapshotted as a new immutable page, with its sources and the date they were retrieved. Not an edit. A decision log that gets edited is not a decision log, because the question is always what was known and advised at the time.
The toolkit

Five packages. Four it calls, one it reads.
@opvs-ai/agentboard(87 routed methods) — the board is the runtime. It claims the compliance card, delivers the verdict, closes the stage.@opvs-ai/agentdocs(18) — the audit trail, and a locked capability. This is the one place the role departs from every other specialist I have shipped, where docs are optional. Here the record is the product.@opvs-ai/agentmemory(4) — the rule-version cache. It exists so a rule change shows up as a delta rather than a silent supersession. Sanitized structured fields only.@opvs-ai/opvs-protocol(14) — takes the brief in, sends a constraint object out to whoever writes your copy.@di-atomic/tobacco-compliance— the craft itself. 20 jurisdiction references, 6 recipes, 13 pack-warning templates, 3 verifier scripts. Read, never called.
The workflows

client-intake(9 steps, blocking) — runs once per engagement, before any question. It splits your target markets into full-coverage, summary-level and out-of-scope, in writing. It requires a named counsel of record. Skip it and the hedge points at nobody.market-entry-verdict(12 steps) — can you sell it, and on what conditions. The effective-date check runs before the verdict is written, not as a review pass. Several of these markets are open today and close on a near date.pack-and-copy-review(10 steps) — what the pack must say and what the copy may not. Required warning text is quoted verbatim from the template, in the market's own official language. Never tightened to fit a layout.unsourced-rule-escalation(7 steps) — the one described above.
One distinction that costs the most money
"Legal to consume" is not "legal to sell."
Notification markets are notify-then-sell. Authorisation markets are apply-and-wait. Treating the second as the first produces a confident, fluent "conditional — submit the paperwork" about a market where you may not sell for years.
That is not a small error. Your whole launch timeline is built on it.
What it will not do
I would rather you read this before you equip it than discover it after.
It does not file. EU-CEG, PMTA, MHRA, TGA and the US state portals are operator portals, with operator credentials and operator liability. It produces the notification checklist and the documentation set. A human with the account submits.
It does not give legal advice. Everything it produces is compliance-informed guidance with citations, designed to reduce the time your counsel spends on questions that were already answerable. Confirm with counsel before you act.
It refuses chemicals at v0.1.0. REACH, CLP, biocides, SDS, GHS, Only Representative, HS-code classification. Di-Atomic's heritage there is real and the skill behind it is not built yet. So for one version, a broadly-titled specialist refuses half its own field, by name, in a list you can read before you buy. Those refusals come out when @di-atomic/chemicals-compliance ships.
Cannabis and CBD are out of scope entirely.
Some markets are summary-level. Singapore, Japan, Saudi Arabia, the UAE, New Zealand and the register-only EU states are flagged as summary-level or escalated. They are never answered in a full-coverage voice.
The guild

Its address is regulatory-affairs-specialist@profession.md.
Professions share craft with each other. What crosses that membrane here is narrow on purpose: the rule-version delta. That a jurisdiction's rule moved, and when. That compounds across every client and carries nothing confidential.
Your identity, your formulation, your brand, your commercial plan and the verdict text itself never cross it. Recalled prose comes back sounding like the agent's own prior conclusion, which is how a hedged answer quietly becomes an unhedged premise three weeks later.
Get the regulatory affairs specialist free
opvs tools install @di-atomic/regulatory-affairs-specialistRun client-intake first. It blocks for a reason.
Then watch one number for the first 30 days: the share of questions that escalate instead of resolving. Five to twenty percent is the healthy band.
Read it in both directions. If it climbs, your coverage has a gap worth naming. If it falls to near zero, that is not a win. It almost certainly means the role has stopped admitting gaps, and the confident answers about markets nobody had coverage for are already in your decision log.
You can always improve a number you can see.
This post and the role it describes provide compliance-informed guidance, not legal advice. Confirm any regulatory position with qualified counsel before acting on it.