# Chemical Safety (SDS Author)

> Author and validate Safety Data Sheets (SDS / FISPQ) compliant with REACH Annex II, GHS, CLP Regulation, and ABNT NBR 14725-4 for EU and Brazilian markets. Validates the 16 mandatory sections and cross-checks chemical concentrations against CLP thresholds to auto-suggest H and P phrases.



Tags: Chemicals, Compliance, REACH, GHS, NBR 14725, Safety, Validation, Brazil, European Union


## Example Prompts

- Draft an SDS for our industrial degreaser containing 10% sodium hydroxide and 5% isopropanol for the EU market
- Validate this Safety Data Sheet against REACH Annex II — check all 16 mandatory sections
- Cross-check our hazard phrases — our mixture contains 25% hydrochloric acid, are the H and P statements correct?

URL: https://rakenne.app/skills/sds-author/index.md

Try this skill: https://rakenne.app/a/?skill=sds-author



## Overview

Author and validate Safety Data Sheets (SDS / FISPQ) compliant with REACH Annex II, GHS, CLP Regulation, and ABNT NBR 14725-4 for EU and Brazilian markets. Validates the 16 mandatory sections and cross-checks chemical concentrations against CLP thresholds to auto-suggest H and P phrases.

The skill covers **two key regulatory markets** with distinct requirements:

- **EU (REACH Annex II)** — Full 16-section SDS per Commission Regulation (EU) 2020/878, including REACH registration numbers, DNELs/PNECs, Seveso III assessment, and EUH supplemental phrases.
- **Brazil (NBR 14725-4)** — FISPQ with NR-15 occupational exposure limits, ANTT transport classification, NBR 10004 waste codes, and CONAMA/Anvisa/IBAMA regulatory references.

## Getting Started

Add your chemical data — formulation sheets, existing SDS drafts, or raw composition data — to the project workspace. Then activate the *Chemical Safety (SDS Author)* skill. The agent will scope your product, determine the hazard classification from composition, draft all 16 sections using the built-in template, and validate the result with both automated tools.

## Example Conversation

Below is an example of how a typical SDS authoring session unfolds. The agent scopes the product, derives the hazard classification, drafts the document, and validates it.

> **You:** We need to draft an SDS for our industrial surface cleaner, "CleanPro X200". It's a mixture sold in the EU and Brazil. Composition: 10% sodium hydroxide (CAS 1310-73-2), 5% isopropanol (CAS 67-63-0), 2% sodium hypochlorite (CAS 7681-52-9), balance is water. We don't have a classification yet.
>
> **Agent:** I'll guide you through the full SDS. Let me confirm a few details:
>
> 1. **Physical form:** Is this a liquid solution? What colour and odour?
> 2. **Packaging:** How is it supplied (drums, bottles, IBCs)?
> 3. **REACH registration:** Do you hold REACH registrations for these substances, or do you purchase from registered EU suppliers?
> 4. **Emergency telephone:** Do you have a 24/7 EU emergency number, and a Brazilian one (CEATOX or PRÓ-QUÍMICA)?
>
> Meanwhile, let me derive the classification. At 10%, **sodium hydroxide** (CAS 1310-73-2) well exceeds the Skin Corr. 1A threshold of 1% — this drives the mixture to **Skin Corr. 1A; H314**. The **isopropanol** at 5% is above its 1% threshold — it contributes **Flam. Liq. 2; H225** and **Eye Irrit. 2; H319**. The **sodium hypochlorite** at 2% is above 1% — contributing **Skin Corr. 1B; H314** (already covered by the NaOH classification) and **Aquatic Acute 1; H400**.
>
> **Overall mixture classification:**
> - Flam. Liq. 2 — H225
> - Skin Corr. 1A — H314
> - Eye Dam. 1 — H318 (subsumed by H314)
> - Aquatic Acute 1 — H400
> - Met. Corr. 1 — H290
>
> **Signal word:** Danger
> **Pictograms:** GHS02, GHS05, GHS09
>
> **You:** It's a clear, pale yellow liquid with a chlorine-like odour. Supplied in 5L and 20L HDPE containers. We buy from registered EU suppliers — we're a downstream user. For emergency: we use the National Poisons Information Service (UK +44 344 892 0111) for EU, and PRÓ-QUÍMICA 0800-118270 for Brazil.
>
> **Agent:** I've started the SDS from the template. A few important points I've flagged:
>
> 1. **Flammability note:** At 5% isopropanol in aqueous solution, the mixture's overall flash point is likely above 60°C — which would make Flam. Liq. 2 (H225) inapplicable. Do you have flash point test data? If the flash point is > 60°C, we can remove the flammability classification. If not, I'll keep it as a conservative classification.
>
> 2. **Sodium hypochlorite instability:** NaClO decomposes in the presence of acids and generates chlorine gas. I've added "EUH206: Warning! Do not use together with other products. May release dangerous gases (chlorine)." to Section 2 for the EU version. This is an EU-specific supplemental phrase.
>
> 3. **Aquatic toxicity M-factor:** For sodium hypochlorite with M-factor = 10, at 2% concentration the effective concentration for classification is 20%, which keeps us in Aquatic Acute 1.
>
> I've now populated all 16 sections. Let me run validation.
>
> I've run the `sds_16_point_validator` — all 16 sections present, EU and Brazilian regulatory references included. Two warnings: Section 8 is missing the NR-15 OEL for sodium hydroxide (I've found it: LT = valor teto 8 mg/m³) and Section 14 needs the ANTT hazard class. Let me fix those.
>
> I've also run the `hazard_phrase_mapper` — it confirmed all H phrases are present for the three active ingredients above their thresholds. It flagged two missing P phrases (P273 for environmental protection, P391 for spill collection) which I've now added.
>
> The SDS is complete. Shall I review any specific section in detail?

## Sample Output Excerpt

Below is a representative excerpt from a validated SDS, showing the Section 2 label elements and Section 3 composition — the two sections most scrutinised by REACH inspectors and downstream users.

---

### Section 2: Hazards Identification — CleanPro X200

**Classification per CLP (EC 1272/2008):**

| Hazard Class | Category | H Phrase |
|-------------|----------|----------|
| Skin Corr. | 1A | H314 |
| Aquatic Acute | 1 | H400 |
| Met. Corr. | 1 | H290 |

**Label Elements:**

| Element | Value |
|---------|-------|
| Signal word | **Danger** |
| Pictograms | GHS05, GHS09 |

**Hazard statements:**
- H290 — May be corrosive to metals
- H314 — Causes severe skin burns and eye damage
- H400 — Very toxic to aquatic life

**Precautionary statements:**
- P260 — Do not breathe mist/vapours/spray
- P264 — Wash hands thoroughly after handling
- P273 — Avoid release to the environment
- P280 — Wear protective gloves/protective clothing/eye protection/face protection
- P301+P330+P331 — IF SWALLOWED: Rinse mouth. Do NOT induce vomiting
- P303+P361+P353 — IF ON SKIN (or hair): Take off immediately all contaminated clothing. Rinse skin with water/shower
- P304+P340 — IF INHALED: Remove person to fresh air and keep comfortable for breathing
- P305+P351+P338 — IF IN EYES: Rinse cautiously with water for several minutes. Remove contact lenses, if present and easy to do. Continue rinsing
- P310 — Immediately call a POISON CENTER/doctor
- P391 — Collect spillage
- P405 — Store locked up
- P501 — Dispose of contents/container in accordance with local regulations

**Supplemental information (EU):**
- EUH206 — Warning! Do not use together with other products. May release dangerous gases (chlorine)

### Section 3: Composition — CleanPro X200

| Component | CAS No. | EC No. | REACH Reg. No. | Concentration (%) | CLP Classification |
|-----------|---------|--------|----------------|-------------------|-------------------|
| Sodium hydroxide | 1310-73-2 | 215-185-5 | 01-2119457892-27 | 10 | Skin Corr. 1A; H314, Met. Corr. 1; H290 |
| Isopropanol | 67-63-0 | 200-661-7 | 01-2119457558-25 | 5 | Flam. Liq. 2; H225, Eye Irrit. 2; H319, STOT SE 3; H336 |
| Sodium hypochlorite | 7681-52-9 | 231-668-3 | 01-2119488154-34 | 2 | Skin Corr. 1B; H314, Aquatic Acute 1; H400 (M=10) |
| Water | 7732-18-5 | 231-791-2 | — | Balance | Not classified |

---

## Built-in Validation Tools

The skill includes two automated validation tools that run against the SDS document during and after drafting:

### `sds_16_point_validator`

Validates SDS structural completeness and market compliance. Checks performed:

- **Section coverage** — Verifies all 16 mandatory section headings are present (Sections 1–16 per REACH Annex II / GHS / NBR 14725-4)
- **Sub-section content** — Detects empty or under-populated sections by checking for expected keywords within each section boundary
- **GHS labelling elements** — Checks for signal words (Danger/Warning), pictogram codes (GHS01–GHS09), H phrases, and P phrases
- **EU market compliance** — REACH references, CLP references, registration numbers, Seveso III
- **Brazil market compliance** — NBR 14725/ABNT references, NR-15 OELs, CONAMA/IBAMA/Anvisa/ANTT references
- **Placeholder detection** — Finds unfilled markers ([INSERT], [TODO], [TBD], [PREENCHER], etc.)

Accepts an optional `market` parameter ("eu", "br", or "both") to tailor checks.

**Example output:**

```
======================================================================
SDS 16-SECTION VALIDATION REPORT
REACH Annex II / GHS Rev.8 / NBR 14725-4
======================================================================
Document: output/sds-document.md
Target market: BOTH
Sections found: 16 / 16

--- SECTION COVERAGE ---
  ✓ Section 1: Identification of the substance/mixture ...
  ✓ Section 2: Hazards identification
  ...
  ✓ Section 16: Other information

--- SUMMARY ---
  Sections present: 16 / 16
  Errors:   0
  Warnings: 1
  Info:     3

RESULT: REVIEW NEEDED — address warnings to strengthen compliance.
======================================================================
```

### `hazard_phrase_mapper`

Cross-checks composition against the CLP Regulation to verify H/P phrase correctness. Checks performed:

- **Substance identification** — Extracts chemical names, CAS numbers, and concentrations from the document
- **CLP threshold comparison** — Compares each substance's concentration against its classification threshold (built-in database of ~16 common industrial chemicals)
- **H phrase verification** — Reports missing H phrases for substances above their CLP classification threshold
- **P phrase verification** — Reports missing recommended P phrases
- **GHS pictogram consistency** — Verifies expected pictograms are declared in the document
- **Unknown substances** — Flags substances not in the built-in database for manual verification via the ECHA C&L Inventory

**Example output:**

```
======================================================================
HAZARD PHRASE MAPPING REPORT
CLP Regulation (EC 1272/2008) / GHS
======================================================================
Document: output/sds-document.md
Substances found: 3
Substances in CLP database: 3

--- SUBSTANCE ANALYSIS ---
  Sodium hydroxide (CAS 1310-73-2, line 45):
    Concentration: 10%
    CLP classification: Skin Corr. 1A; Eye Dam. 1
    Classification threshold: 1%
    Above threshold: YES
    Expected H phrases: H314, H290
    Matched H phrases: H314, H290
    Pictograms: GHS05
    Signal word: Danger

--- SUMMARY ---
  Substances analysed: 3
  Database matches:    3
  Above threshold:     3
  Errors:   0
  Warnings: 0

RESULT: COMPLIANT — all identified substances have correct H/P phrase coverage.
======================================================================
```

The agent runs both tools iteratively — first the `sds_16_point_validator` for structural completeness and market compliance, then the `hazard_phrase_mapper` for hazard phrase verification — and surfaces findings inline so issues are resolved before distribution to customers or regulatory submission.


---

Back to [Skill Library](https://rakenne.app/skills/index.md)
