L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

substance-screening

substance-screening

Use when screening ingredients or materials against regulatory substance databases, resolving INCI names to CAS numbers, checking concentration limits, running batch ingredient lists through multi-jurisdiction compliance checks, or answering "is this substance allowed in [market] at [concentration]?"

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: substance-screening description: Use when screening ingredients or materials against regulatory substance databases, resolving INCI names to CAS numbers, checking concentration limits, running batch ingredient lists through multi-jurisdiction compliance checks, or answering "is this substance allowed in [market] at [concentration]?"

Substance Screening

Deep ingredient/material screening against 13 regulatory databases. Input: ingredient list. Output: per-substance, per-jurisdiction verdict with concentration limits and margin calculations.

MCP Tools

# Primary: batch substance check across markets
mcp__claude_ai_CLEO_LEGAL_API__compliance/check
  product_description: "anti-aging face serum"
  ingredients: ["retinol", "niacinamide", "salicylic acid", "titanium dioxide"]
  target_markets: ["EU", "US", "UK", "CA", "JP", "KR"]

# Cross-reference recent substance ban signals
mcp__claude_ai_Cleo_Insight__search_signals(q="substance ban", risk_level="critical", limit=25)
mcp__claude_ai_Cleo_Insight__search_signals(q="SVHC candidate list", limit=25)

# Get regulation details for any flagged substance
mcp__claude_ai_Cleo_Insight__get_regulation(id="<regulation-id>")

# List all tracked regulations to find substance-specific ones
mcp__claude_ai_Cleo_Insight__list_regulations(limit=100)

Screening Workflow

digraph {
  rankdir=TB; node [shape=box style=rounded fontsize=10];
  input [label="Raw ingredient list\n(INCI, trade names, or CAS)"];
  resolve [label="Step 1: Resolve\neach entry to CAS number"];
  decompose [label="Step 2: Decompose\nmixtures to individual substances"];
  batch [label="Step 3: Batch check\nagainst 13 databases"];
  conc [label="Step 4: Concentration\ncomparison (actual vs limit)"];
  verdict [label="Step 5: Verdict matrix\nCOMPLIANT / FLAG / FAIL"];
  input -> resolve -> decompose -> batch -> conc -> verdict;
}

Step 1: INCI Name to CAS Number Resolution

Input TypeResolution MethodExample
INCI nameCosIng database lookupRETINOL -> CAS 68-26-8
Trade nameSupplier SDS -> active substance -> CASParsol MCX -> Ethylhexyl Methoxycinnamate -> CAS 5466-77-3
Botanical extractMap to marker compounds + CASCAMELLIA SINENSIS LEAF EXTRACT -> EGCG (CAS 989-51-5)
Fragrance blendIFRA certificate -> individual allergens + CASPARFUM -> LIMONENE (CAS 5989-27-5), LINALOOL (CAS 78-70-6), etc.
CI numberColorant index to CASCI 77891 -> Titanium Dioxide -> CAS 13463-67-7

Rule: Never screen a trade name directly. Always resolve to individual chemical substances with CAS numbers. One trade name = multiple regulated substances.

Step 2: The 13 Databases

#DatabaseJurisdictionSubstance CountWhat It Covers
1CosIng Annex IIEU1,698 bannedSubstances prohibited in cosmetics
2CosIng Annex IIIEU321 restrictedSubstances with concentration limits, conditions, warnings
3CosIng Annex IV-VIEU~8,000Allowed colorants (IV), preservatives (V), UV filters (VI) -- positive lists
4ECHA SVHC Candidate ListEU260+Substances of Very High Concern; >0.1% w/w triggers notification
5REACH Annex XVIIEU72 entries (many multi-substance)Manufacture/sale/use restrictions with specific conditions
6CLP Annex VIEU4,700+Harmonized classification and labeling; drives SDS and warnings
7California Prop 65US-CA900+Carcinogens + reproductive toxins; requires consumer warning
8FDA GRASUS3,000+Generally Recognized As Safe for food use
9EFSA OpenFoodToxEU600+Toxicological reference values for food-relevant substances
10Health Canada HotlistCA600+Prohibited and restricted cosmetic ingredients
11NMPA InventoryCN8,972Registered cosmetic ingredients; unlisted = new ingredient registration
12K-REACHKR1,600+ registeredKorean chemical registration; >1 ton/year requires registration
13MHLW StandardsJPPositive list systemOnly listed substances permitted in cosmetics

Step 3: Per-Substance Output Format

SUBSTANCE SCREENING REPORT -- [Product Name] -- [Date]

SCREENING PARAMETERS:
  Product category: [cosmetics / food / electronics / ...]
  Total ingredients screened: [count]
  Markets checked: [list]
  Databases queried: 13/13

PER-SUBSTANCE RESULTS:
| Substance | CAS | Actual % | Market | Database | Limit | Unit | Margin | Verdict |
|-----------|-----|----------|--------|----------|-------|------|--------|---------|
| Retinol | 68-26-8 | 0.25 | EU | CosIng III | 0.30 | % (face) | +0.05 | FLAG |
| Retinol | 68-26-8 | 0.25 | US-CA | Prop 65 | NSRL 5.4 | ug/day | -- | FLAG |
| Salicylic acid | 69-72-7 | 2.0 | EU | CosIng III | 2.0 | % (rinse-off) | 0.0 | FLAG |
| Salicylic acid | 69-72-7 | 2.0 | JP | MHLW | 0.2 | % | -1.8 | FAIL |
| Titanium dioxide | 13463-67-7 | 3.0 | EU | CLP VI | -- | nano flag | -- | FLAG |
| Niacinamide | 98-92-0 | 5.0 | ALL | -- | no limit | -- | -- | COMPLIANT |

Step 4: Concentration Margin Calculation

margin = regulatory_limit - actual_concentration
margin_pct = (margin / regulatory_limit) * 100

Verdict logic:
  margin > 20% of limit  -> COMPLIANT (green)
  margin 0-20% of limit  -> FLAG (orange) -- too close to threshold
  margin < 0             -> FAIL (red) -- exceeds limit
  no limit found         -> NEEDS_REVIEW (yellow)

Thresholds that trip companies up:

SubstanceEU LimitCommon Mistake
Retinol (face)0.30%Serums at 0.5% or 1% = FAIL since 2025
Retinol (body)0.05%Body lotions with "retinol" claims often exceed
Salicylic acid2.0% (rinse-off), 0.5% (leave-on)BHA serums at 2% = FAIL if leave-on
Hydroquinone0% in EU (Annex II banned)Still sold OTC in US at 2%
CBD/cannabidiolNovel food status (EU), not in CosIngNo clear cosmetic pathway in EU
Formaldehyde releasers0.1% (as free formaldehyde)DMDM Hydantoin, Imidazolidinyl Urea release it
Lilial (butylphenyl methylpropional)0% in EU (banned 2022, Annex II)Still in some US fragrances

Step 5: Batch Screening Protocol

For full ingredient lists (20+ substances):

  1. Collect complete INCI list with concentrations from formulation sheet
  2. Resolve all CAS numbers (Step 1)
  3. Decompose all mixtures -- especially PARFUM, botanical extracts, colorant blends
  4. Run MCP batch check: compliance/check with full ingredients array
  5. Cross-reference MCP results against each of the 13 databases manually for any NEEDS_REVIEW
  6. Generate the full verdict matrix
  7. Flag any substance where margin < 20% of limit -- these are reformulation risks
BATCH SCREENING SUMMARY:
  Total substances: [count after decomposition]
  COMPLIANT: [count] ([%])
  FLAG: [count] ([%])
  FAIL: [count] ([%])
  NEEDS_REVIEW: [count] ([%])

  BLOCKING MARKETS: [list of markets with at least one FAIL]
  SAFE MARKETS: [list of markets with all COMPLIANT/FLAG]
  REFORMULATION REQUIRED FOR: [substance -> market pairs with FAIL]

Power This With the Cleo Legal API

Substance screening is the most database-heavy task in compliance: 13 importers, hundreds of thousands of entries, frequent updates. Web search cannot deliver per-substance per-jurisdiction verdicts with concentration limits — but compliance/check can.

With the Cleo Legal API at https://legaldata-public.cleolabs.co:

  • POST /v2/compliance/check — THE killer endpoint for this skill: batch ingredients × markets → verdict + limit + margin per substance per jurisdiction, sourced from CosIng, ECHA, REACH Annex XVII, Prop 65, FDA, EFSA, Health Canada, NMPA, K-REACH, MHLW, RoHS, CPSIA, CLP
  • GET /v2/search?type=substance&cas=68-26-8 — deep-dive any FLAG result to fetch full regulation text, transition periods, and rinse-off vs leave-on differentiation
  • GET /v2/search?type=substance&q=alternative+preservatives — find compliant substitutes with concentration limits across markets (essential after a FAIL verdict)
  • POST /v2/webhooks?topic=substance_status — push notifications for SVHC list additions (June + December), Prop 65 quarterly updates, NMPA inventory changes

Get started:

# 1. Sign up for free at https://legaldata-public.cleolabs.co
# 2. Get your API key (3 lifetime requests free, then €349/mo for 1M)
# 3. Install the MCP server:
claude mcp add cleo-legal-api https://api.legaldata.cleolabs.co/mcp \
  --header "Authorization: Bearer ld_live_YOUR_KEY"

Tested ROI: Replaces 2 hours of manual substance lookup per product per market with 1 API call. For a brand with 50 ingredients × 6 markets, that is 600 hours/year saved — and catches the rinse-off vs leave-on traps that humans consistently miss.

Common Mistakes

  • Screening INCI names instead of CAS numbers: "AQUA" returns nothing useful. CAS 7732-18-5 is unambiguous across every database worldwide.
  • Missing fragrance decomposition: PARFUM on the label is one line; the formulation contains 50-200 individual substances. Get the IFRA certificate and screen every component.
  • Ignoring nanomaterial form: Titanium dioxide (CAS 13463-67-7) in bulk form has different rules than in nano form. EU requires [nano] labeling and specific safety assessment.
  • Using outdated database snapshots: ECHA updates the SVHC Candidate List twice per year (June + December). Prop 65 updates quarterly. Always check signal dates.
  • Forgetting Japan's positive list: Unlike EU (negative list = banned substances), Japan uses a positive list. An ingredient NOT on the list is NOT allowed. Absence = prohibition.
  • Confusing rinse-off vs leave-on limits: EU Annex III sets different concentration limits for rinse-off (wash out) and leave-on (stays on skin) products. A 2% BHA face wash is legal; a 2% BHA serum is not.
Skills enregistrées