chemical-storage-sorter
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.
Best use case
chemical-storage-sorter is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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.
Teams using chemical-storage-sorter should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/chemical-storage-sorter/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How chemical-storage-sorter Compares
| Feature / Agent | chemical-storage-sorter | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
# 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
```bash
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
```python
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
```python
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
```python
groups = sorter.sort_chemicals(inventory)
sorter.print_storage_plan(groups)
```
---
## CLI Usage
```text
# 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.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
| 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)Related Skills
chemical-structure-converter
Convert between IUPAC names, SMILES strings, molecular formulas, and common names for chemical compounds. Supports SMILES validation, batch processing, structure standardization, and cheminformatics database preparation for drug discovery workflows.
skill-auditor
A comprehensive auditor for any agent skill — including Manus, OpenClaw/ClawHub, Claude, LobeHub, or custom SKILL.md-based skills. Use this skill whenever a user wants to evaluate, audit, review, score, or quality-check an agent skill before publishing, updating, or deploying. Covers two hard veto gates (structural redlines + research integrity redlines), static quality scoring across 25 criteria (ISO 25010 + OpenSSF + Agent), dynamic test input generation, multi-mode execution testing, multi-layer output evaluation with five specialized category rubrics (Evidence Insight / Protocol Design / Data Analysis / Academic Writing / Other), a Research Veto that applies to all four research categories, human eval viewer generation, actionable P0/P1/P2 optimization recommendations, and automatic skill improvement that outputs a polished, production-ready SKILL.md. Also use whenever a user says "audit my skill", "evaluate my skill", "improve my skill", or wants a corrected version after evaluation.
two-sample-mr-research-planner
Generates complete two-sample Mendelian randomization (MR) research designs from a user-provided research direction. Use when users want to design, plan, or build a study using two-sample MR to test causal relationships. Triggers:"design a two-sample MR study", "build a publishable MR paper", "test whether this biomarker causally affects this disease", "generate Lite/Standard/Advanced MR plans", "screen multiple exposures with MR", "bidirectional MR design", "causal inference using GWAS summary statistics", or "I want to study X and Y using MR". Always outputs four workload configurations (Lite / Standard / Advanced / Publication+) with a recommended primary plan, step-by-step workflow, figure plan, validation strategy, minimal executable version, and publication upgrade path.
research-proposal-generator
Generates a comprehensive research proposal design based on input literature, including hypothesis, mechanism verification, and budget. Use when the user wants to design a research project from a paper.
research-grants
Write competitive research proposals for NSF, NIH, DOE, DARPA, and Taiwan's NSTC when you need agency-compliant narratives, budgets, and review-criteria alignment for a specific solicitation/FOA/BAA.
protocol-standardization
Standardize fragmented experimental steps into reproducible protocol documents when you need method organization, lab SOP drafting, or cross-operator reproducibility; missing parameters must be explicitly marked as "To be supplemented/Not provided".
prospero-registration-helper
Assists researchers in generating PROSPERO registration content for meta-analyses from a title and optional protocol. Use when the user wants to draft a PROSPERO registration form.
non-tumor-ml-research-planner
Generates complete non-tumor biomedical machine learning research designs from a user-provided research direction. Always use this skill when users want to plan bioinformatics + ML papers for non-cancer diseases (metabolic, cardiovascular, kidney, inflammatory, autoimmune, infectious, neurological, endocrine, wound healing, chronic multifactor), design diagnostic biomarker studies, combine GEO datasets with feature selection and ML modeling, or generate Lite/Standard/Advanced/Publication+ workload plans. Trigger for:"non-tumor ML study", "bioinformatics paper outside oncology", "key genes and diagnostic model for a disease", "pyroptosis/ferroptosis/senescence/autophagy + disease", "GEO datasets + machine learning", "RF + LASSO diagnostic model", "DEG + feature selection + validation", "immune infiltration + biomarker", "non-cancer biomarker paper". Trigger even for casual phrasings like "I want to study X using machine learning", "help me design a non-tumor bioinformatics paper", or "how do I build a diagnostic model for disease Y".
network-tox-docking-research-planner
Generates complete network toxicology + molecular docking research designs from a user-provided toxicant and disease/phenotype. Always use this skill when users want to investigate how an environmental toxicant, endocrine disruptor, heavy metal, food contaminant, pharmaceutical residue, or consumer product chemical may contribute to a disease through shared molecular targets, hub genes, pathways, and docking evidence. Trigger for:"network toxicology study", "toxicology mechanism paper", "target prediction + PPI + docking", "environmental pollutant and disease mechanism", "hub genes and docking for toxicant", "Lite/Standard/Advanced toxicology plan", "CTD + SwissTargetPrediction + GeneCards + STRING", "CB-Dock2 docking study", "triclosan/BPA/cadmium/PFAS + disease". Also triggers for Chinese phrasings:"网络毒理学研究设计"、"毒物机制论文"、"靶点预测+PPI+对接"、"环境污染物与疾病机制". Trigger even for casual phrasings like "I want to study how chemical X affects disease Y" or "help me design a toxicology paper". Always output four workload configurations (Lite / Standard / Advanced / Publication+) with a recommended primary plan, step-by-step workflow, figure plan, validation strategy, minimal executable version, and publication upgrade path.
meta-protocol-writer
Generates a PROSPERO-compliant Meta-analysis protocol based on Title and PICOS. Use when the user wants to write a protocol for a systematic review or meta-analysis.
hypothesis-generation
Structured scientific hypothesis formulation from observations; use when you have experimental observations or preliminary data and need testable hypotheses with predictions, mechanisms, and validation experiments.
hypogenic
Automated LLM-driven hypothesis generation and testing for tabular datasets; use when you need systematic exploration of empirical patterns (e.g., fraud detection, content analysis) and want to combine literature insights with data-driven hypothesis evaluation.