Reagent Expiry Alert
Scan reagent barcodes or IDs, log expiration dates, and generate multi-level alerts before reagent expiry to support laboratory inventory management.
SKILL.md
Reagent Expiry Alert
Scan reagent bottle barcodes or IDs, log expiration dates, and alert before expiry to support safe laboratory inventory management.
Quick Check
python -m py_compile scripts/main.py
python scripts/main.py --help
When to Use
- Use this skill when logging a new reagent with its expiry date into the inventory.
- Use this skill when checking for reagents approaching expiration (30/60/90-day alerts).
- Do not use this skill to manage controlled substances, biological hazards requiring special disposal, or reagents subject to regulatory chain-of-custody requirements.
Workflow
- Confirm the reagent barcode/ID, expiry date, and action (scan/log or check alerts).
- Validate that the request is for reagent expiry tracking, not chemical safety assessment or disposal guidance.
- Date validation: If
--expiryis provided, validate that it is a valid YYYY-MM-DD date. If the date is in the past, emit a warning: "This reagent is already expired as of [date]. It will be logged with an Expired alert status." - Log the reagent or run the alert check using the packaged script.
- Return expiration status, alert level, and reorder recommendations.
- If inputs are incomplete, state which fields are missing and request only the minimum additional information.
Usage
# Log a new reagent
python scripts/main.py --scan "REAGENT-001" --name "Tris Buffer" --expiry 2025-12-31 --location "Shelf A"
# Check for upcoming expirations
python scripts/main.py --check-alerts --alert-days 30
# Check with custom alert window
python scripts/main.py --check-alerts --alert-days 60
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
--scan | string | No | — | Reagent barcode or ID |
--name | string | No | — | Reagent name |
--expiry | date | No | — | Expiration date (YYYY-MM-DD) |
--location | string | No | — | Storage location |
--quantity | string | No | — | Quantity on hand |
--check-alerts | flag | No | — | Check for upcoming expirations |
--alert-days | integer | No | 30 | Days before expiry to alert |
Alert Levels
- 🔴 Expired — reagent past expiry date
- 🟠 Critical — expiring within 30 days
- 🟡 Warning — expiring within 60 days
- 🟢 OK — expiring beyond 60 days
Output
- Expiration alert report with alert level per reagent
- Inventory summary
- Reorder recommendations for critical/expired items
Stress-Case Rules
For complex multi-constraint requests, always include these explicit blocks:
- Assumptions
- Reagents Checked
- Alert Report
- Reorder Recommendations
- Risks and Manual Checks
Error Handling
- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
- If
scripts/main.pyfails, report the failure point, summarize what still can be completed safely, and provide a manual fallback. - Do not fabricate expiry dates, inventory counts, or reorder thresholds.
Input Validation
This skill accepts: reagent barcode/ID and expiry date for logging, or a check-alerts request for inventory review.
If the request does not involve reagent expiry tracking — for example, asking for chemical hazard assessment, waste disposal guidance, or controlled substance management — do not proceed with the workflow. Instead respond:
"reagent-expiry-alert is designed to log reagent expiry dates and generate alerts before expiration. Your request appears to be outside this scope. Please provide a reagent ID and expiry date, or use a more appropriate tool."
Response Template
Use the following fixed structure for non-trivial requests:
- Objective
- Inputs Received
- Assumptions
- Workflow
- Deliverable
- Risks and Limits
- Next Checks
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.