Sort laboratory chemicals into safe storage groups by hazard classification (acids, bases, oxidizers, flammables, toxics). Identifies incompatible pairs, generates storage plans with warnings, and supports OSHA/NFPA compliance for lab safety.
Organize laboratory chemicals into safe storage groups based on chemical compatibility and hazard classification. Prevents dangerous reactions by identifying incompatible pairs and providing segregation guidelines compliant with OSHA, NFPA, and institutional safety standards.
Key Capabilities:
This skill accepts: a list of chemical names (comma-separated or one per line), or a single chemical name for compatibility checking. Chemical names should be standard IUPAC or common names; CAS numbers are also accepted.
If the request does not involve sorting or checking laboratory chemicals for safe storage — for example, asking to synthesize chemicals, interpret SDS documents, or provide medical advice about chemical exposure — do not proceed. Instead respond:
"Chemical Storage Sorter is designed to classify and sort laboratory chemicals for safe storage. Please provide a list of chemical names. For other chemical safety tasks, use a more appropriate tool."
python -m py_compile scripts/main.py
python scripts/main.py --help
Fallback: If no chemicals are provided, respond: "No chemical list provided. Please supply chemical names via --chemicals or as a text list. Cannot sort without input chemicals."
from scripts.main import ChemicalStorageSorter
sorter = ChemicalStorageSorter()
group = sorter.classify_chemical("Hydrochloric acid") # → "acids"
| Group | Examples | Storage Requirements |
|---|---|---|
| Acids | HCl, H₂SO₄, HNO₃ | Acid cabinet, secondary containment |
| Bases | NaOH, KOH, ammonia | Base cabinet, separate from acids |
| Oxidizers | H₂O₂, KMnO₄, nitrates | Cool, dry, away from organics |
| Flammables | Ethanol, acetone, hexane | Flammable storage cabinet |
| Toxics | Cyanides, mercury, arsenic | Locked cabinet, limited access |
| General | NaCl, PBS, sucrose | Standard storage |
compatible, message = sorter.check_compatibility("Hydrochloric acid", "Sodium hydroxide")
# → False, "INCOMPATIBLE: acids cannot be stored with bases"
| Chemical Group | Incompatible With | Reaction Risk |
|---|---|---|
| Acids | Bases, oxidizers, cyanides | Violent neutralization, toxic gas |
| Oxidizers | Flammables, acids, bases | Fire, explosion |
| Flammables | Oxidizers, acids | Fire, combustion |
groups = sorter.sort_chemicals(inventory)
sorter.print_storage_plan(groups)
# Sort list of chemicals
python scripts/main.py --chemicals "HCl,NaOH,ethanol,H2O2"
# Check compatibility between two chemicals
python scripts/main.py --chemicals "HCl" --check "NaOH"
# List all storage groups
python scripts/main.py --list-groups
| Parameter | Type | Required | Description |
|---|---|---|---|
--chemicals, -c | string | No | Comma-separated chemical list |
--check | string | No | Check compatibility with another chemical |
--list-groups, -l | flag | No | List all storage groups |
Every final response must make these explicit:
scripts/main.py fails, report the failure point and provide manual classification fallback using the hazard group table above.| Group | Cabinet Type | Special Requirements |
|---|---|---|
| Acids | Acid cabinet | Secondary containment, corrosion-resistant |
| Bases | Base cabinet | Minimum 3 feet from acids |
| Oxidizers | Standard/oxidizer | Away from ignition sources |
| Flammables | Flammable cabinet | Bonding/grounding for dispensing |
| Toxics | Locked cabinet | Access log, limited quantities |