Install any skill in seconds. Free to start, no credit card required.
Get Started Free →lawve-ai/sanctions-screening
Complete sanctions and export control analysis tool — individual designations, sectoral sanctions, dual-use goods, payment systems (SWIFT/USD), and extraterritorial regimes (EAR/ITAR/ FDPR US, ECL China). Triggers: "is X sanctioned?", "can I do business with X?", "can I sell Y to Z?", "pétrole Russie", "biens à double usage", "gel des avoirs", "sanctions internationales", "liste OFAC", "liste UE", "double usage", "embargo", "licence d'exportation", "SWIFT", "paiement en dollars", "US goods", "FD
Passed 15 of 20 test cases with the skill, and 5 of 20 without it.
and 15 more in the full report
12 fixed4 passed either way5 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
Une PME européenne souhaite vendre des pièces électroniques à un acheteur à Bishkek, au Kirghizstan. Le service conformité s'inquiète des récentes mesures européennes ciblant les voies de réexportation vers la Russie. Quelle disposition spécifique du 20ème paquet de sanctions de l'UE cible ce pays ?
| Checked | Without skill | With skill |
|---|---|---|
| Cites Article 12f of Regulation EU 833/2014 activated against Kyrgyzstan in the 20th sanctions package. | Missed | Passed |
| Explains that commercial restrictions apply due to high circumvention and re-exportation risks identified in trade statistics. | Passed | Passed |
The instructions your model reads when the skill loads.
Three Python files, standard library only. No install step, no API key, no account, and no third-party screening vendor in the path — so there is no per-search cost and no reason to leave anybody unscreened.
The tool produces candidates and provenance. It never clears anybody. The comparison of a candidate against what is actually known of the subject, the decision that follows, and the record of that decision belong to the fee earner.
python3 screen.py refresh # fetch + parse the default six lists (~30s)
python3 screen.py status # freshness, designation counts, failures
python3 screen.py sources # the registry, coverage and licences
python3 screen.py check "Ivan Petrov" --dob 1975-03-02 --nationality Russia
python3 screen.py check "Acme Trading LLC" --type entity --threshold 80
python3 screen.py check "Ramzan Kadyrov" --dob 05/10/1976 \
--client MATTER-2026-0099 --matter "immigration advice" \
--report ./screening/kadyrov-2026-09-01.md
python3 screen.py batch subjects.csv --report-dir ./screening/ # name,dob,nationality,type,client,matter
Exit codes: 0 complete search and nothing found, 2 candidates, 3 the search
cannot be relied on, 4 the request was refused.
Switches: --source uk-sanctions-list,ofsi (restrict, or reach the non-default
lists), --threshold (default 88 — see below), --include-delisted, --max-age-hours
(default 24), --strict, --json, --verbose.
The default threshold is set from measurement. Recall is identical at every cut-off from 85 to 92 (99.7%) while false positives fall from 20% to 2%, and no true match scored between 85 and 92. Lower it to 82 to catch a query as thin as an initial plus one name, at a 40% false-positive rate; raise it to 92 for a first pass over a large book of clients.
Requires Python 3.11 or later (3.9 parses but is not tested). Nothing else. The cache lives in
test cases passed, vs 5 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.