Chemical Storage Sorter
Sort laboratory chemicals into safe storage groups by hazard classification (acids, bases, oxidizers, flammables, toxics).
SKILL.md
Chemical Storage Sorter
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:
- Automatic Chemical Classification: Categorize chemicals into hazard groups
- Compatibility Checking: Identify incompatible pairs that could react dangerously
- Storage Grouping: Sort chemical inventories into safe storage arrangements
- Safety Warnings: Generate warnings for incompatible combinations
- Regulatory Compliance: Follow OSHA and NFPA segregation rules
Input Validation
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."
Quick Check
python -m py_compile scripts/main.py
python scripts/main.py --help
Workflow
- Confirm the chemical list, required inputs, and any special constraints (custom classifications, lab-specific rules).
- Validate that the request matches the documented scope; stop if the task requires unsupported assumptions.
- Run the script or apply the documented classification path with only the inputs available.
- Return a structured result separating assumptions, deliverables, risks, and unresolved items.
- If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.
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."
Core Capabilities
1. Chemical Classification
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 |
2. Compatibility Checking
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 |
3. Storage Plan Generation
groups = sorter.sort_chemicals(inventory)
sorter.print_storage_plan(groups)
CLI Usage
# 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
Parameters
| 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 |
Output Requirements
Every final response must make these explicit:
- Objective or requested deliverable
- Inputs used (chemical list) and assumptions introduced
- Classification method and any manual overrides applied
- Core result: storage groups with chemicals assigned, incompatibility warnings
- Constraints and risks (tool is first-check only; always verify with SDS)
- Unresolved items and next-step checks
Error Handling
- If no chemicals are provided, list the required input format and request it.
- If a chemical cannot be classified, assign to "general" and flag for manual review. Suggest: (1) provide the CAS number for lookup, (2) consult the SDS for GHS hazard classification, (3) contact the institutional safety officer.
- If
scripts/main.pyfails, report the failure point and provide manual classification fallback using the hazard group table above. - Do not fabricate classifications or compatibility results.
Common Pitfalls
- Assuming dilute = safe: Even dilute acids/bases need proper storage
- Storing by alphabetical order: Acetic acid next to acetone — always prioritize compatibility
- Inadequate separation: Use physical barriers (cabinets), not just distance
- Outdated storage plans: Update documentation whenever chemicals are relocated
- Ignoring multi-hazard chemicals: Concentrated HNO₃ is both acid and oxidizer — store in most restrictive group; multi-hazard chemicals are automatically assigned to the most restrictive applicable group
Storage Requirements by Group
| 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 |
References
- OSHA Chemical Storage Guidelines: https://www.osha.gov/chemical-storage
- NFPA 45: Fire Protection for Laboratories Using Chemicals
- Prudent Practices in the Laboratory (National Research Council)