Agent Skills
LabManagement

Chemical Storage Sorter

AIPOCH

Sort laboratory chemicals into safe storage groups by hazard classification (acids, bases, oxidizers, flammables, toxics).

23
0
FILES
chemical-storage-sorter/
skill.md
scripts
main.py
__pycache__
chemical-storage-sorter_audit_result_v2.json

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

  1. Confirm the chemical list, required inputs, and any special constraints (custom classifications, lab-specific rules).
  2. Validate that the request matches the documented scope; stop if the task requires unsupported assumptions.
  3. Run the script or apply the documented classification path with only the inputs available.
  4. Return a structured result separating assumptions, deliverables, risks, and unresolved items.
  5. 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"
GroupExamplesStorage Requirements
AcidsHCl, H₂SO₄, HNO₃Acid cabinet, secondary containment
BasesNaOH, KOH, ammoniaBase cabinet, separate from acids
OxidizersH₂O₂, KMnO₄, nitratesCool, dry, away from organics
FlammablesEthanol, acetone, hexaneFlammable storage cabinet
ToxicsCyanides, mercury, arsenicLocked cabinet, limited access
GeneralNaCl, PBS, sucroseStandard storage

2. Compatibility Checking

compatible, message = sorter.check_compatibility("Hydrochloric acid", "Sodium hydroxide")
# → False, "INCOMPATIBLE: acids cannot be stored with bases"
Chemical GroupIncompatible WithReaction Risk
AcidsBases, oxidizers, cyanidesViolent neutralization, toxic gas
OxidizersFlammables, acids, basesFire, explosion
FlammablesOxidizers, acidsFire, 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

ParameterTypeRequiredDescription
--chemicals, -cstringNoComma-separated chemical list
--checkstringNoCheck compatibility with another chemical
--list-groups, -lflagNoList 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.py fails, 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

GroupCabinet TypeSpecial Requirements
AcidsAcid cabinetSecondary containment, corrosion-resistant
BasesBase cabinetMinimum 3 feet from acids
OxidizersStandard/oxidizerAway from ignition sources
FlammablesFlammable cabinetBonding/grounding for dispensing
ToxicsLocked cabinetAccess 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)