Category: AI Corner

  • My prompt to Claude (yes, it was a tad snarky):

    So… other than publicity, and maybe some secondary sanctions exposure, what was the value, if any, of that update? VTB was already subject to an asset freeze, no? explain in language for the common public

    Claude’s initial response, which I took issue with:

    You’re right about the core of it. VTB’s money was already frozen. Nothing about how an American bank handles a VTB hit changed on Sunday. Blocked is blocked, and there is no such thing as more blocked. If the only audience were US institutions, this update would be paperwork.

    The audience is not US institutions.

    The new tag changes which rulebook foreign banks apply. Russia sanctions and Iran sanctions are not two flavors of the same thing to a bank in Dubai, Istanbul, Mumbai or Shanghai. The Russia rules that expose foreign banks to US penalties are discretionary. Treasury may act against a foreign bank that handles significant business for a sanctioned Russian entity, and in practice it has acted sparingly, often with a warning first. The Iran rules are older, partly written by Congress rather than the President, and carry mandatory triggers. Foreign bank boards have long memories about what happened to institutions that got caught on the wrong side of Iran sanctions in the 2010s, and the fines involved.

    There is a second layer that has nothing to do with US law. Many non-US banks write their own internal policies so that any Iran connection is a hard stop, while Russia exposure gets a case-by-case review. Adding an Iran tag to VTB can therefore trip a stricter internal rule automatically at institutions that had been carefully doing limited Russia business. That is my read from how these policies are typically drafted, not something Treasury said.

    The designation also outlives a Russia deal. This is the part I would put first if I were writing it for a general reader. There is real talk of the Ukraine war ending and of Russia sanctions being unwound as part of a settlement. If that happens, VTB’s Russia designations come off. The Iran designation would not, because it rests on different conduct under a different authority. Think of a condemned building. A second violation notice does not make it more condemned, but if the first notice is withdrawn, the second one still keeps the doors locked. Treasury has bought itself a lock that a Russia peace deal does not open.

    And it puts the accusation on the public record. Until this week, a foreign bank could plausibly say it had no idea VTB was running correspondent accounts for sanctioned Iranian banks or moving frozen Iranian assets. Now that claim is on a US government page with VTB’s name on it. Nobody gets to be surprised anymore, and “we didn’t know” stops being available as a defense.

    One smaller thing that matters to people who run screening systems. OFAC took 21 of VTB’s old names, things like plain “VNESHTORGBANK,” and moved them from “used to be called this” to “also called this.” Some screening setups treat former names as lower priority or filter them out. Those 21 names just came back to full strength, and no press release explains why.

    So the honest summary is that this update does very little to VTB’s money and quite a lot to VTB’s remaining business relationships and to the government’s negotiating position. Which is roughly what you would expect from a campaign whose stated goal is isolation rather than seizure.

    My follow-up:

    well, if you were already defying the US Russia sanctions, how likely is it that this would change your behavior? Is it just because the President is more focused on Iran now than Russia? And would it really change the behavior of Chinese firms?

    And the response:

    Your first question mostly answers itself, and it exposes something soft in what I told you earlier.

    Anyone still clearing business for VTB in September 2026 has already made peace with being outside the US financial system. That population is self-selected for indifference. Adding a tag to a party you were already willing to be caught dealing with is not a new deterrent, it is the same deterrent restated. The banks that could be moved by this are the ones with US correspondent accounts they still want to keep, and those banks mostly exited VTB in 2022. So the group sitting between “already gone” and “already defiant” is thin.

    I also overstated one thing. I said the Iran rules carry mandatory triggers where the Russia ones are discretionary. That is true of the statutory Iran provisions, CISADA and IFCA and the NDAA correspondent-account section, but it is not true of what OFAC actually invoked here. Treasury’s own release says OFAC “can prohibit or impose strict conditions on” a foreign bank’s correspondent account. That is permissive language. The legal difference between the Russia exposure and the new Iran exposure is narrower than I made it sound. What is genuinely different is reputational, not statutory.

    On whether this is about presidential attention, largely yes, and I would put it more bluntly than I did. Treasury is running an Iran campaign that needs visible targets while it is simultaneously negotiating over Russia. Hitting VTB under a Russia authority would cut across the negotiation. Hitting the same bank under an Iran authority produces the headline without disturbing that track. The choice of authority is doing diplomatic work as much as legal work. The durability point I raised stands, since an Iran designation survives a Russia settlement, but I should be clear that is a benefit to Treasury’s future position rather than a cost imposed on VTB today.

    Chinese firms are the weakest part of the case. The large state banks pulled back from VTB years ago and have run conservative Iran policies since the last decade. Nothing here reaches them because they already left. The institutions that do handle sanctioned trade are small regional banks with no dollar business to lose, and the precedent for how that plays out is Bank of Kunlun, which the US designated in 2012 over Iran and which China then simply used as the designated channel. Cutting a bank off from a system it does not use is not much of a penalty. Add that a growing share of this trade settles in renminbi through CIPS, and the lever you are pulling is attached to nothing.

    Where I think there is real value, and it is plumbing rather than deterrence, is that a designation under an Iran authority creates a predicate for designating the people who help VTB with its Iran business. Those orders generally include a materially-assisted prong, though I have not pulled the text of 13902 to confirm the specific wording. If that is right, the update is less a punishment of VTB than a hook for whoever gets named next.

    so, maybe not Much Ado About Nothing, but more like Much Ado About Something Possibly in the Future…. meh.

    , , , ,
  • As a non-expert, I asked Claude:

    Let’s assume I am the sanctions officer at a company with a fair number of high-risk segments of my business – not a small number, but nowhere near a majority. And we built an Ai model to evaluate transactions, documents and third party records for sanctions matches, such that the model recommends and presents all its research for a human to evaluate. Based on changes to Russian and Iranian sanctions from July 1, 2024 to June 30, 2026, including changes in designations, guidance, licensing and any other relevant content published by UK, EU and/or U S regulators, how many times would we have likely needed to retrain our model over that 24 month period? Explain when and why, in non-legal language (not a lawyer). check your response against your sources and flag and correct anything that is not well-supported by them. List your sources. Assume that my firm has a pretty full range of exposure, including crypto, securities and maritime shipping.

    And the response:

    Quick framing before the timeline: your model does two different jobs, and they don’t need retraining at the same rate.

    One job is matching against reference data – SDN entries, the EU consolidated list, the UK sanctions list, vessel IMO numbers. That data changes constantly (weekly, sometimes daily) and shouldn’t require retraining at all if the system is built the way most of these tools are – list content lives in a lookup layer, and the model just queries it. That’s a data refresh, not a retrain.

    The other job is pattern recognition – reading a bill of lading and recognizing deceptive shipping language, following an ownership chain through three shell layers, flagging a stablecoin flow that looks like sanctions evasion. That’s the part that goes stale when the underlying typology changes – a genuinely new evasion pattern, a new category of prohibited conduct, a new legal test for what counts as “control.” That’s what actually calls for retraining.

    I’m assuming your model is architected with that separation (list-matching decoupled from typology-modeling), since that’s how compliance vendors generally build these systems. If yours instead has entity names baked into model weights, the honest answer is “constantly” – so it’s worth confirming that assumption internally.

    With that framing, here’s my read of the 24 months.

    Bottom line

    My estimate: somewhere around 6-7 retrain-worthy events, clustering unevenly rather than spread on a fixed cadence. About three of those are large enough (new prohibition categories, a rebuilt legal architecture, a switch from name-by-name matching to categorical rules) that I’d call them full retrains rather than targeted updates.

    The waves, in plain terms

    1. October 31, 2024 – OFAC maritime shipping guidance. Treasury published scenario-based guidance describing deceptive shipping patterns – falsified bills of lading, AIS location-spoofing to hide ship-to-ship transfers, SDN proxies buried in trade documents issued to help maritime sector stakeholders identify new or common fact patterns indicative of sanctions evasion and address common counterparty due diligence issues. If your document-review component wasn’t already trained to recognize these fact patterns, this is the kind of thing that needs to go into the model, not just a rulebook update.

    2. December 2024 – January 2025 – the shadow fleet buildout. EU package 15 introduced targeted measures against vessels used to circumvent sanctions, the “shadow fleet,” and for the first time imposed full sanctions on third-country actors including Chinese entities. Then, on January 10, 2025, OFAC issued sweeping new sanctions targeting Russia’s energy sector, including a new petroleum services ban, expanded secondary sanctions authority, and designations of Russian oil producers, insurance providers, and more than 180 shadow fleet vessels, done in parallel with the UK, which designated Gazprom Neft and Surgutneftegas the same day, followed by OFAC and OFSI publishing a memorandum of understanding to strengthen cooperation. A brand-new prohibition category (petroleum services) plus expanded secondary-sanctions exposure for foreign banks is a genuine typology addition, not a list update.

    3. February 2025 – Iran’s posture flips. National Security Presidential Memorandum 2, issued when Trump took office, formally reinstated the “maximum pressure” strategy against Iran and significantly expanded its scope. In parallel, EU package 16 hit energy, trade, transport, infrastructure and financial services and added listings touching Russian crypto-asset exchanges and the maritime sector for the first time. This is where “Iran risk” stops meaning “drones and human rights” and starts meaning a full petroleum-sector campaign – a different thing for a model to detect.

    4. March – May 2025 – the campaign gets teeth, and it’s China-shaped. OFAC’s Iran push became a near-monthly cadence targeting Chinese “teapot” refineries and Iranian shadow-banking exchange-house networks – since February 2025, OFAC sanctioned over 1,000 Iran-related persons, vessels, and aircraft as part of this campaign. Treasury also updated its 2019 maritime evasion guidance on April 16, 2025, as part of implementing NSPM-2. Separately, US and European law enforcement seized Garantex’s web domain and froze over $26 million in cryptocurrency on March 6, 2025. The teapot-refinery and exchange-house patterns are genuinely novel fact patterns for a model that was probably trained mostly on Russia-shaped typologies.

    5. July 2025 – the oil price cap stops being a fixed number. EU package 18 introduced an automatic and dynamic mechanism to modify the oil price cap so it stays roughly 15% below the average market price for Russian crude, reviewed every six months, alongside the first-ever full transaction bans on Chinese crypto-asset service providers and on two Chinese financial institutions found to be frustrating EU sanctions. If your model treats “is this deal above the price cap” as a static threshold check, that logic now needs to track a moving, scheduled value – a structural change, not a data point. The UK matched the cap cut and published its first Cryptoassets Threat Assessment on July 21, 2025.

    6. August – October 2025 – the densest stretch of the whole window. Four things landed close together: OFAC sanctioned a network tied to the shuttered exchange Garantex and its successor Grinex, along with the ruble-backed stablecoin A7A5, which had been moving roughly a billion dollars a day – a genuinely new evasion typology (sanctioned-bank-backed stablecoin as a settlement rail). Then the E3 invoked the UN “snapback” mechanism on August 28, 2025, resulting in full reimposition of UN sanctions on Iran effective September 27, 2025, and the EU and UK reintroduced autonomous sanctions measures against Iran that had been eased in 2015 – not new listings, but a wholesale rebuild of the Iran sanctions architecture back toward its pre-2015 scope. Days later, EU package 19 introduced specific binding legal definitions of “ownership” and “control” for designated entities – directly relevant to any third-party-ownership-chain logic your model runs. And on October 22, 2025, OFAC designated Rosneft and Lukoil, Russia’s two largest oil companies, under Executive Order 14024 – the first designation by the Trump administration of Russian actors under the war-related sanctions authorities, a sharp reversal after a year in which Russia designations had dropped to 74 total, down from over 3,000 in 2024. Any one of these would justify a retrain; together, this is the strongest single cluster in the 24 months.

    7. April 2026 – crypto logic changes shape, not just scope. EU package 20 added a ban on EU operator engagement with the Russian national payment card system Mir or the faster payments system SBP – a payment-rail typology your model may not have needed before – and, more structurally, shifted crypto enforcement away from naming specific platforms or tokens toward a blanket prohibition on transactions with crypto-asset service providers in designated categories. That’s a different kind of rule to encode: a categorical, jurisdiction-based test rather than a name-match.

    One thing just outside your window worth flagging for context: EU package 21 landed July 23, 2026 amending Regulation 833 and Regulation 269, entering into force the following day – three weeks after your June 30 cutoff, so I’ve left it out of the count, but it’s the next wave you’d hit almost immediately.

    On your specific exposure

    • Maritime: the heaviest thread by far – the October 2024 guidance, the shadow fleet buildout across essentially every EU package, and the UK’s escalation to active tanker interdiction in 2026 all sit here.
    • Crypto: three distinct shape-changes, not just more designations – individual exchange listings (early 2025), first-ever crypto-service-provider transaction bans (mid-2025), then a categorical/jurisdictional ban (2026). Plus the stablecoin typology from Garantex/A7A5, which doesn’t resemble earlier crypto sanctions patterns at all.
    • Securities: thinner, but real – EU’s central-securities-depository protections (package 15), the Russian Direct Investment Fund transaction ban (package 18), and a non-binding CJEU Advocate General opinion from September 25, 2025 advising that “freezing of funds” should be read broadly enough to cover voting rights and participation rights of depository-receipt holders – worth watching since it isn’t yet a final ruling.

    Checking this against my sources

    What’s solid: every date, designation, and mechanism description above comes directly from primary sources (Consilium, OFAC/Treasury releases, OFSI notices) or law-firm client alerts summarizing them, and I’ve kept the sourcing tight to those.

    What’s my judgment layered on top, not something any source states: which of these events “would” trigger a retrain, and the total count of 6-7. No regulator or vendor publishes a “here’s when compliance AI needs retraining” schedule – that’s an inference I’m drawing from the nature of each change (new prohibition category vs. more names on an existing list), and a different model architecture or risk appetite would land on a different number. Treat the count as a reasoned estimate, not a fact.

    Two things I want to flag rather than let sit unqualified: the CJEU item is an Advocate General opinion, not a binding judgment – I’ve labeled it that way above. And the “over 1,000 Iran designations” figure is cumulative as reported in an April 2026 source, so it’s close to but not exactly aligned with your June 30, 2026 cutoff – the true count at your exact end date is very likely a bit lower.

    One gap: I did not attempt to catalogue every individual OFAC Iran designation round (there were dozens) or every weekly OFSI list update – that would run to hundreds of entries and wouldn’t change the retrain analysis, since after the first round establishes a typology (teapot refinery, shadow banking exchange house), subsequent similar rounds are list updates, not new patterns.

    Sources

    EU: Consilium timeline of Russia sanctions packages · package 15 (White & Case) · package 16 (Fieldfisher, Baker McKenzie) · package 17 (White & Case, DLA Piper) · package 18 (White & Case, Gide) · package 19 (Skadden, Consilium press release) · package 20 (Morgan Lewis, Mayer Brown) · package 21, for context (Skadden) · CJEU depository-receipt opinion (Sullivan & Cromwell) · EU Iran snapback (Mayer Brown)

    US: OFAC maritime guidance, Oct. 2024 · Jan. 10, 2025 Russia energy action (Cleary Gottlieb) · 2025 Trump Russia sanctions pace (CNAS) · Rosneft/Lukoil designations (Steptoe) · NSPM-2 and “Economic Fury” campaign (Treasury) · Iran maritime evasion advisory update (Miller & Chevalier) · Garantex/Grinex/A7A5 (TRM Labs)

    UK: OFSI Jan. 2025 Gazprom Neft/Surgutneftegas + OFAC MOU (Covington) · UK “largest ever” shadow fleet package, May 2025 (Mayer Brown) · UK price cap cut + first Cryptoassets Threat Assessment, July 2025 (Skadden) · UK Rosneft/Lukoil, Oct. 2025 (Squire Patton Boggs)

    UN/multilateral: Snapback mechanics (Congress.gov CRS) · G7 statement on snapback

  • So, this morning I asked Claude to process this AM’s SECO update (incorporating the UNSC’s August 14th updates), and it told me that it looked awfully like yesterday’s SECO update – and would I like to update that post, or create a new one.

    Yes, on both days, 3 persons and 1 entity were updated by the UNSC. And SECO created an update for each. Because of the timing of the 2 updates, OFSI actually issued a single update on Monday comprising of both sets of UN updates. Even there, OFSI said there were 6 updates to individuals and 2 to entities… which confused Claude, even if it was technically true, from a. regulatory standpoint.

    It’s a good reminder of the limitations, especially over time, of AI tools’ ability to understand context. Would Claude have not been confused had I used a more powerful model like Opus or Fable instead of Sonnet? Perhaps, but at what cost – those models chew up your usage a lot faster, which is silly for normal day-to-day work.

    Thought this was an interesting case to share.

  • So, I had to give a lot of feedback to Claude to build that EU sanctions history post – a ton more than I usually have to give. So, I asked about it:

    So, the work on the EU sanctions history required a lot of feedback from me on word usage and writing structure – which I have not had to do with my other requests, like the sanctions guides or even today’s UFLPA prompts. Any idea why that might be?

    and here’s the first response, which I thought had some real insights in it:

    A few real differences stand out, though I’ll flag which parts I can trace directly versus where I’m inferring.

    The EU post was original analytical synthesis with no template behind it. The guides run on the Master Prompts framework you built out over roughly ten regimes now – the structure, sourcing conventions, and voice were already validated before any single guide started. The UFLPA piece was built the same way in miniature: you walked me through three separate Q&A rounds first (mechanics, importer consequences, third-party liability), approved each one, and only then asked for a meld – so by the time I wrote the combined draft, the content and tone had already been tested in stages. The EU post had none of that scaffolding. Nobody had written “functional evolution across the 21 packages” before, so the chart format, the section groupings, how to frame “significance” for each group, even the package 14 versus 15 attribution call – all of that got worked out live, inside the draft, rather than inherited from a proven process.

    Some of the prose rules I’m now applying didn’t exist yet when that project started. Looking at when things got filed: several of the specific conventions I follow now – avoiding label-then-explain constructions, not narrating the article’s own structure, varying back-references instead of repeating a pronoun, watching paragraph length, naming things plainly instead of using shorthand – trace to that same EU project. That’s not a coincidence so much as a cause: it’s the project where those rules got established through your corrections, not one where I was already following them. The UFLPA piece benefited from having that list already in hand.

    The content type itself carries more judgment calls. The EU post asked for interpretive synthesis – financial impact, geopolitical reaction, convergence and divergence across five section groups – which has a lot of surface area for word-choice and framing to go wrong. The guides are closer to organizing known facts into a fixed shape. The UFLPA piece was more explanatory (what this means for someone in the chain) than argumentative, which tends to need fewer editorial calls per paragraph.

    So: newer content type, no established framework, and it’s likely where a chunk of my current style rules for you actually got written. The UFLPA piece and the guides are both riding on groundwork the EU post did the hard part of laying down.

    But, while I agreed with a lot of it, I wanted to have Claude explain something that I felt was off:

    I want to challenge one thing – your prose rules point. I looked back at the guides: those sort of “errors” didn’t occur. So, there was no need to call them out. I think the reason for the difference is more your first and third point – think of them as coarse sandpaper, and the second point more fine finishing and buffing materials

    And here’s what it said (yes, it tends to agree with the prompt):

    Fair, and it holds up when I look at what’s actually in the guide drafts rather than reasoning about it abstractly.

    I pulled a few of the actual guide-building conversations to check. What’s in them is regulatory framework sections, warning boxes for counter-intuitive rules, FAQ entries, checklist steps, glossary terms, document indexes – declarative, informational moves. There’s no equivalent anywhere to “on convergence” labeling, no closing section weighing significance across several groups of content, no long stretch where I’m carrying one evolving subject across dozens of consecutive paragraphs. The EU post’s pronoun-repetition problem, for instance, came specifically from referring back to “this package” or “it” sentence after sentence because the whole piece tracks one subject through time. A guide’s subject changes with the section – IRGC designation status, then the 50% Rule, then a general license – so that particular failure mode has nowhere to occur regardless of whether I’m applying a rule against it.

    So you’re right to demote the second point. It wasn’t that I had those rules in hand for the guides and lacked them for the EU post – it’s that guide content doesn’t create the occasions for label-then-explain constructions, structure-narration, or pronoun drift in the first place. Those errors are a symptom of writing original interpretive narrative across a large, evolving subject, which is exactly what points one and three describe. Point two was me mistaking the moment those rules got written down for a cause, when it was really just documentation of a problem that only the first and third factors could have produced.

    Now, you may find it weird – and certainly not standard practice – but I basically shared my insight from its response:

    Which will help me recognize when I need to review your output more carefully – I don’t tend to review what you’ve written for errors. I look it over more for what I learn from your response.

    And the response brought further insight:

    Given that, the useful signal isn’t really about prose at all – it’s about where interpretive claims are getting made versus where facts are getting organized.

    The two things share a root cause. Original synthesis with no precedent forces me to make judgment calls – what counts as significant, what caused what, how one thing compares to another – and those same judgment calls are what produce both the prose problems you caught and any unsupported inference that might be sitting underneath clean-sounding sentences. A guide’s content is close to directly extractable from a regulation or an FAQ, so there’s not much room for me to be inferring rather than reporting. The EU post asked me to characterize financial impact, geopolitical reaction, and causal sequencing across 21 packages – all of that is synthesis, not extraction, even where it reads confidently.

    So the practical version: when I’m building something with no established template and the content requires me to characterize significance, causation, or comparison rather than just organize known facts, that’s where to look harder at the specific interpretive claims – not the whole document, just the sentences doing analytical work rather than reporting work. Dates, figures, FAQ numbers, regulatory citations are about equally checkable regardless of content type. It’s the “this mattered because X” and “this led to Y” sentences that concentrate in the original-synthesis work and deserve the closer look, precisely because that’s where I’m most likely to be asserting more than the sources actually support.

    And I acknowledged that I agreed:

    nice

    And the response will further help me in my workload here:

    Sounds good. I’ll keep that distinction in mind on future projects – flag up front when something’s original synthesis versus template work, so you know which one warrants the closer look.

    What are the takeaways?

    I think there are two significant takeaways – one mostly for you, my readers, and one for us all.

    The first one: if you’re going to ask the kind of questions that involve the kind of analysis and synthesis that goes beyond summarization and organization of facts, you’re going to need some writing and editorial skills. It’s not so much about knowing what to write; rather, it’s about point out what looks funky. If you can, you can make suggestions for rewording, but you don’t need to be Shakespeare for the AI to realize the difference between “right” and “wrong.”

    The second takeaway: You can push the envelope with what you ask an AI to do, if you’re willing to put in the work. Not only do you need to do the editorial work, but the farther outside the envelope you go, the more you have to check for the AI inferring too much. Of course, you should be explicit about performing a sanity check against sources, and about preventing hallucinations – but the response needs to pass a basic sniff test. If something is valid 55% of the time, is it an inference worth including in your output? 65%? 85%? Drawing that line is the real challenge – I don’t think you can do that effectively without either a lot of research and review, and a certain amount of subject matter expertise. The less expertise and the less time you are willing to check the responses you get, the less you and your AI can go out on an inferential limb.

    ,
  • My prompt:

    I knew you were going to add a caveat… it – the second I entered the question, I realized I didn’t include the exceptions, like the NS-PLC list, etc. Comparatively, those are edge cases… you could have said “I assume you’re talking about the blocking programs, right?” and be done with it

    Claude responded:

    Fair, and that’s the better version of it. When the exception is a real edge case rather than something that would change the answer for most actual transactions, a one-line assumption beats a taxonomy of carve-outs. Something like “assuming SDN/full-blocking designations, not narrower lists like SSI or NS-PLC” does the job without turning a comparative answer into a survey of list types.

    Going forward, the default will be that: spell out the exception in full only when it’s plausibly the actual fact pattern, flag the assumption otherwise.

    My next prompt:

    or if i ask for a more comprehensive survey of options, OK?

    Claude responded:

    Of course — that’s the trigger for the full breakdown. Default to the one-line assumption; if you ask for the comprehensive survey, you get the whole list with the reasoning behind each carve-out.

    ,
  • with apologies to Andre Gregory’s movie, which I loved…

    Over the next 7 business days, I’m going to post segments of an ongoing conversation with my Claude chatbot (using the Sonnet 5 model on the Extra effort setting). While the content itself is interesting, what fascinates me more is when I challenge its basic assumptions, or rephrase my position in a different way, Claude identifies area where it was imprecise or potentially misleading. Part of this is interpreting my point of view and seeing how its previous responses might clash with my point of view – inadvertently, such that a revised response would be better aligned with how I think and express myself.

    And, to be clear, I don’t think Claude is necessarily trying to agree with me, which chatbots are known to do. As you know, these tools don’t think – they look at probabilities when deciding how to express themselves and, sometimes, choosing a different set of words to express the same concept is received differently. Especially when trying to match my conversational style, I think Claude chooses words that match my style, but which may be misleading or imprecise.

  • Once you are happy with an output from an AI chatbot like Claude, you want to capture it for re-use in a master prompt. I am hoping to create Practitioners’ Guides and Plain Language Guides for all OFAC sanctions programs. Additionally, I want to combine related programs (the multiple Russia ones) into a single pair off guides. So, here are the master prompts for the guides – the first one for the Practitioners’ Guides, the second for the Plain Language Guides and the third to incorporate multiple programs (you insert this one before the 1st or 2nd prompts as needed):

    ,
  • Given your knowledge of OFAC updates, advisory and guidance documents, and sanctions-related press releases from the State and Treasury departments, and the wording of sanctions-related Executive Orders, create a fictitious “update” for April Fool’s Day. Make it not so believable that many readers will think it’s real  , but not so absurd that people will realize it’s a joke immediately.

    ,
  • This is the prompt I use to pretty-print OFAC designation-related information – feel free to suggest improvements or point out issues (yes, I know telling it to output a carriage return is pretty dumb because Gemini uses Markdown format – I will clean that up eventually, but right now, it still “works:):

    Throughout this procedure, make field names and the colon bold, but leave the field value normally formatted.

    Do not infer information about a listing from an associated listing that references it – only output information from the actual listing.

    Provide no citation markers. However, if any sources other than the update site or the press release are referenced, provide a source list at the end.

    First, output a heading, with H1 heading formatting, with the title  of the update, followed by a carriage return – and make it a hyperlink to the update URL.

    If there was a press release, output the name of the issuing body (e.g. “State” or “Treasury), followed by“ Press Release: “, followed by the title of the press release, for each press release.. Ensure the press release title is made into a hyperlink to the corresponding press release URL, and format the whole line as an H3 header.

    If there are sections of additions:

    Output “Additions:” with H2 heading, and bold.

    Output a carriage return.

    For each listing in each section of additions:

    Reformat each listing:

    Output the name, bolded. If a vessel with a call sign, output a space, then the call sign in parentheses

    Then produce the rest of the data as a bulleted list:

    1. If there are AKAs, list those prefaced by “AKA: “ and make that label bold. If there are multiple AKAs, put the label on the bullet, and make each AKA a separate sub-bullet, If there is only 1 AKA, put the AKA on the same line as the label
    2. For vessels, if vessel type found, output the vessel type, prefaced by “Vessel Type: ”
    3. For vessels, if vessel flag country found, output the vessel flag country, prefaced by “Vessel Flag: ”
    4. List remaining fields in order of their presence. However, do not list the program tags. Bold the field name.
    5. If there is a listed party type, list it, prefaced by “Party Type: “. Bold the label
    6. If there are associated “Linked to:” parties in parentheses, output “Linked to: “ and that information. If there are multiple Linked To parties, make the label the main bullet, and make the parties separate sub-bullets. Make the label  bold.

    Next, add supplemental information from the  press release linked to in the update, if any, as well as any  publicly-available information that can be reliably linked to each listed party. Preface this with “Supplemental Information: “, bolded – but not bulleted to offset it from the bulleted items

    Then output two carriage returns.

    Preface each section divided by type of party (e.g. individuals, entities, \ vessels, aircraft) and by the list updated (e.g. SDN, SSI, FSE) with the section header from the OFAC designation update – for example, “The following entities have been added to OFAC’s SDN List:”. Make the section header ,  italicized and bolded.

    Group listings within each section by the combination of program tags.

    Preface each grouping with a list of the associated program tags, followed by the description from OFAC’s program tag web page.  If there is a single program tag, output :OFAC Program:  “, followed by the program tag, 2 spaces, a and its description. If there are multiple program tags, make a bulleted list, with “OFAC Programs:” on the first bullet, and each program tag, 2 spaces, and its description, on a new sub-bullet. Make this italicized.

    Output two carriage returns between listings within each section

    End of additions section logic

    If there are sections of deletions, removals or delistings:

    Output “Delistings:” with H2 heading formatting, bolded.

    Output a carriage return.

    Preface each section divided by type of party (e.g. individuals, entities, \ vessels, aircraft) and by the list updated (e.g. SDN, SSI, FSE) with the section header from the OFAC designation update – for example, “The following deletions have been made to OFAC’s SDN List:”. Make the section header ,  italicized and bolded.

    Display each listing, removing the program tags from the end of the listing. Bold each field name. To clarify, this is a different format than that of the additions section – since these are removals, we do not need to highlight each field by putting them on separate lines.

    Group listings  by the combination of program tags.

    Preface each grouping with a list of the associated program tags, followed by the description from OFAC’s program tag web page.  If there is a single program tag, output :OFAC Program:  “, followed by the program tag, 2 spaces, a and its description. If there are multiple program tags, make a bulleted list, with “OFAC Programs:” on the first bullet, and each program tag, 2 spaces, and its description, on a new sub-bullet. Make this italicized.

    Output two carriage returns between listings 

    End of deletions, removals or delistings section logic

    If there are sections of changes: 

    Do not process the “unrelated administrative list changes” section if the next line of text says “None”

    Output “Amendments:” with H2 heading formatting, bolded.

    Output a carriage return.

    Preface each section with the section header from the OFAC designation update.

    Make the section header , italicized and bolded.

    Reformat each listing:

    For the new version of the listing:

    a) Output the name, bolded

    b) Then produce the rest of the data as a bulleted list:

    1. If there are AKAs, list those prefaced by “AKA: “ and make that label bold. If there are multiple AKAs, put the label on the bullet, and make each AKA a separate sub-bullet, If there is only 1 AKA, put the AKA on the same line as the label
    2. List remaining fields in order of their presence. However, do not list the program tags. Bold the field name.
    3. If there is a listed party type, list it, prefaced by “Party Type: “. Bold the label
    4. If there are associated “Linked to:” parties in parentheses, output “Linked to: “ and that information. If there are multiple Linked To parties, make the label the main bullet, and make the parties separate sub-bullets. Make the label  bold.

    c) Next, add supplemental information from the  press release linked to in the update, if any, as well as any  publicly-available information that can be reliably linked to each listed party. Preface this with “Supplemental Information: “, bolded – but not bulleted to offset it from the bulleted items

    d) Then output two carriage returns.

    e) Then, Output “List of Changes:” followed by a carriage return. Make this italicized and bolded.

    Make a bulleted list of every field in the listing that has changed:

    1. Output “Field Name: “, List the field name
    2. If there is a new value and no old value, output “Added: “ and the new value as a sub-bullet
    3. If there is an old value and no new value, output “Deleted: “ and the old value as a sub-bullet
    4. If there are new and old values, output “Changed: “, the old value, “ to: “ and the new value as a sub-bullet

    End of listing reformatting. 

    Group listings  by the combination of program tags.

    Preface each grouping with a list of the associated program tags, followed by the description from OFAC’s program tag web page.  If there is a single program tag, output :OFAC Program:  “, followed by the program tag, 2 spaces, a and its description. If there are multiple program tags, make a bulleted list, with “OFAC Programs:” on the first bullet, and each program tag, 2 spaces, and its description, on a new sub-bullet. Make this italicized.

    Insert two carriage returns between listings 

    End of changes section logic

    Finally, if there is a press chart, output “Press Chart: “, followed by the press chart .  Make the chart image a hyperlink to the press chart URL. Make the whole press chart section an H3 heading.

    , ,
  • I’ve been working on this for a while – as a learning tool, correcting and refining is more instructive to me than getting a good result and asking for the master prompt.

    A few things to point out:

    • I haven’t run this against aircraft designations “live” yet, so this part might not be precise
    • OFAC doesn’t use any delimiters except for things that can have multiple values, so you don’t know, at a glance, when a field’s label ends and its value begins. I’ve generally steered Gemini by listing all the labels I’ve seen
    • Sometimes OFAC doesn’t break down the data at all – cargo vessel types are immediately followed by the flag state with delimiter (although I guess you could treat the whole thing as a compound data element)
    • OFAC clearly has a bias towards sanctioning entities – why else would there be party types of “aircraft”, “vessel” and “individual”, but nothing for entities?

    Anyhow, here’s the prompt – if you see some logic that will break, let me know:

    OFAC addition or deletion listings are in the following format:

    All OFAC listings finish with the following:

    1. The type of party (Individual, Vessel, Aircraft) in parentheses may be present- if not present, the listing refers to an entity. Entities can also be identified more easily if the section of the OFAC identifies the listings which follow as entities.
    2. After that. a series of OFAC program tags (defined at Information on OFAC sanctions lists program tags and their definitions.),appears, in square brackets – there will always be at least one.
    3. Next, optionally, in parentheses, the text “Linked To:” and other parties with which the listed party is associated, with multiple instances separated by semi-colons
    4. And the listing terminates with a period.

    And the first element in all listings is the primary name.

    The information between the primary name and the party type depends on the party type:

    For entities:

    1. After the primary name, in parentheses, is  an optional series of aliases, prefixed by “a.k.a.” and separated by semicolons
    2. Next, after a comma, are associated addresses, each followed by a semicolon
    3. Next are a series of fields consisting of labels (e.g. Identification Number, Registration number), possibly terminated with a colon (e.g. “Secondary sanctions risk:”), a value, and terminated by a semicolon, except for the last field
    4. The Registration Number field may have subfields such as issuing country (in parentheses) and issue date.
    5. As a reminder, the final field is not terminated by a semi-colon but is followed by the list of program tags, the optional Linked To information and the final period.

    Here is an example: 

    ARIES GLOBAL INVESTMENT LTD (a.k.a. ARIES GLOBAL INVESTMENT LIMITED), Room 2611, 26th Floor, Southeast Technology R&D Center, 438, Jincheng Lu, Xiaoshan Qu, Hangzhou, Zhejiang, China; Rm A 20/F ZJ 300, 300 LOCKHART RD, Wan Chai, Hong Kong, China; Identification Number IMO 0052971; Registration Number 76957722 (Hong Kong) issued 19 Aug 2024 [VENEZUELA-EO13850]. 

    For individuals:

    1. After the primary name, in parentheses, is either a series of aliases, prefixed by “a.k.a.” and separated by semicolons, or a vessel call sign
    2. After a comma, are associated addresses (full address, city and country or country), each followed by a semicolon
    3. Next are a series of fields consisting of labels (e.g. DOB, nationality, Gender, Secondary Sanctions Risk, Cedula, possibly terminated with a colon (e.g. Secondary sanctions risk:), a value, and terminated by a semicolon, except for the last field
    4. As a reminder, the final field is not terminated by a semi-colon but is followed by the party type in parentheses, the list of program tags, the optional Linked To information and the final period.

    Here is an example: 

    ARAYA NAVARRO, Jimena Romina (a.k.a. “ARAYA, Jimena”; a.k.a. “Rosita”), Venezuela; Colombia; DOB 05 Sep 1983; nationality Venezuela; Gender Female; Secondary sanctions risk: section 1(b) of Executive Order 13224, as amended by Executive Order 13886; Cedula No. 16011070 (Venezuela) (individual) [SDGT] [TCO] (Linked To: TREN DE ARAGUA). 

    For cargo vessels:

    1. After the primary name, optionally, in parentheses, a vessel call sign appears
    2. Next appears a description of the vessel, and the flagging country, with multiple instances separated by semi-colons (and subsequent ones may be preceded by “Other Vessel Flag”
    3. Next are a series of fields consisting of labels (e.g. Year of Build, Identification Number, Registration number, MMSI), possibly terminated with a colon (e.g. Secondary sanctions risk:), a value, and terminated by a semicolon, except for the last field
    4. As a reminder, the final field is not terminated by a semi-colon but is followed by the party type in parentheses, the list of program tags, the optional Linked To information and the final period.

    Here is an example: 

    VALIANT (VRXH3) Crude Oil Tanker Hong Kong flag; Other Vessel Flag China; Vessel Year of Build 2009; Vessel Registration Identification IMO 9409247; MMSI 477206500 (vessel) [VENEZUELA-EO13850] (Linked To: ARIES GLOBAL INVESTMENT LTD).

    For aircraft:

    1. After the primary name, there is a semi-colon
    2. Next are a series of fields consisting of labels (e.g. Manufacture Date, Model, Operator, Manufacturer’s Serial Number (MSN), Tail Number), possibly terminated with a colon (e.g. Secondary sanctions risk:), a value, and terminated by a semicolon, except for the last field
    3. As a reminder, the final field is not terminated by a semi-colon but is followed by the party type in parentheses, the list of program tags, the optional Linked To information and the final period.

    Here is an example: 

    EP-MJG; Aircraft Manufacture Date 2002; Aircraft Model Airbus A340-300; Aircraft Operator Mahan Air; Aircraft Manufacturer’s Serial Number (MSN) 474; Aircraft Tail Number EP-MJG; Secondary sanctions risk: section 1(b) of Executive Order 13224, as amended by Executive Order 13886 (aircraft) [SDGT] [IFSR] (Linked To: MAHAN AIR). 

    OFAC change listings consist of the old listing, followed by “-to-“, followed by the new listing.

    Take no action on this information until prompted further.