Freezer Sample Locator
name: freezer-sample-locator
by aipoch-ai · published 2026-04-01
$ claw add gh:aipoch-ai/aipoch-ai-freezer-sample-locator---
name: freezer-sample-locator
description: 'Track and retrieve sample locations in -80°C freezers with hierarchical
storage organization.
Trigger conditions:
- User needs to record sample storage positions (freezer ID, level, rack, box, grid
position)
- User requests to search samples by name, project, date, or location
- User requires sample inventory management and export functionality
Input: Sample metadata (name, project, quantity) and storage coordinates
Output: Structured sample location records with search and export capabilities
Success criteria:
- Accurate position recording without conflicts
- Fast search and retrieval (<1 second for 1000+ samples)
- Data integrity maintained across operations
- Export in multiple formats (JSON, CSV)
Risk level: MEDIUM (Script execution with file system access)
Technical difficulty: INTERMEDIATE
Version: v1.0
Owner: 研发部
Last updated: 2026-02-06'
version: 1.0.0
category: Operations
tags: []
author: AIPOCH
license: MIT
status: Draft
risk_level: Medium
skill_type: Tool/Script
owner: AIPOCH
reviewer: ''
last_updated: '2026-02-06'
---
# Freezer Sample Locator
**Purpose**: Systematically manage and retrieve sample locations in -80°C freezers using hierarchical storage organization.
**Classification**: Tool/Script型 (本地脚本执行)
🎯 Core Functions
Primary Operations
Data Integrity Features
Data Structure
Sample location information is stored in JSON files:
{
"samples": [
{
"id": "uuid",
"name": "Sample Name",
"project": "Project Name",
"freezer": "F01",
"level": 1,
"rack": "A",
"box": "01",
"position": "A1",
"quantity": 1,
"date_stored": "2024-01-15",
"notes": "Notes",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
]
}Parameters
Global Parameters
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `command` | string | - | Yes | Command to execute (add, search, list, update, delete, export, stats) |
| `--config` | string | - | No | Path to configuration file |
Add Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--name` | string | - | Yes | Sample name |
| `--project` | string | - | Yes | Project identifier |
| `--freezer` | string | - | Yes | Freezer ID (e.g., F01) |
| `--level` | int | - | Yes | Shelf level number |
| `--rack` | string | - | Yes | Rack identifier |
| `--box` | string | - | Yes | Box number |
| `--position` | string | - | Yes | Position within box (e.g., A1) |
| `--quantity` | int | 1 | No | Sample quantity |
| `--notes` | string | - | No | Additional notes |
Search Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--name` | string | - | No | Search by sample name (fuzzy) |
| `--project` | string | - | No | Search by project (exact) |
| `--freezer` | string | - | No | Search by freezer ID |
| `--id` | string | - | No | Search by sample UUID |
List Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--freezer` | string | - | No | Filter by freezer ID |
Update Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--id` | string | - | Yes | Sample UUID to update |
| `--position` | string | - | No | New position |
| `--quantity` | int | - | No | New quantity |
| `--notes` | string | - | No | New notes |
Delete Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--id` | string | - | Yes | Sample UUID to delete |
Export Command
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--output`, `-o` | string | - | Yes | Output file path |
| `--freezer` | string | - | No | Filter by freezer ID |
Stats Command
No additional parameters required.
Usage
🚀 Usage Guide
Command Line Interface
#### Sample Management
# Add new sample
python scripts/main.py add \
--name "Sample-001" \
--project "Project-A" \
--freezer "F01" \
--level 1 \
--rack "A" \
--box "01" \
--position "A1" \
--quantity 2 \
--notes "Primary culture"
# Search operations
python scripts/main.py search --name "Sample-001" # Name search (fuzzy)
python scripts/main.py search --project "Project-A" # Project search (exact)
python scripts/main.py search --freezer "F01" # Freezer search
python scripts/main.py search --id "uuid-string" # ID search (exact)
# List with optional filtering
python scripts/main.py list # All samples
python scripts/main.py list --freezer "F01" # Specific freezer
# Update sample information
python scripts/main.py update --id "uuid" --position "B2" --quantity 1
# Delete sample record
python scripts/main.py delete --id "uuid"
# Export functionality
python scripts/main.py export --output samples.csv --freezer "F01"
# Statistics
python scripts/main.py stats#### Python API Usage
from scripts.main import FreezerSampleLocator
# Initialize locator
locator = FreezerSampleLocator()
# Add sample with validation
sample = locator.add_sample(
name="Sample-001",
project="Project-A",
freezer="F01",
level=1,
rack="A",
box="01",
position="A1",
quantity=2,
notes="Primary culture"
)
# Search with multiple criteria
results = locator.search_samples(
name="Sample-001",
project="Project-A"
)
# Get formatted location
location = locator.get_sample_location(sample_id)
print(location["location_str"]) # "F01 > L1 > RA > B01 > A1"
# Export data
locator.export_csv("inventory.csv", freezer="F01")🧪 Evaluation & Testing
Success Criteria
1. **Functional Accuracy**: 100% correct position recording and retrieval
2. **Performance**: <1 second response time for 1000+ sample database
3. **Data Integrity**: Zero corruption in concurrent operations
4. **User Experience**: Clear error messages and intuitive commands
Test Suite
# Core functionality tests
def test_add_sample():
"""Test sample addition with validation"""
def test_search_operations():
"""Test search by name, project, freezer"""
def test_conflict_prevention():
"""Test duplicate position detection"""
def test_export_functionality():
"""Test CSV/JSON export formats"""
def test_data_integrity():
"""Test concurrent access safety"""Validation Checklist
📊 Monitoring & Maintenance
Usage Metrics
Maintenance Tasks
Health Checks
# Verify database integrity
python scripts/main.py stats
# Test search performance
python scripts/main.py search --name "test"
# Export validation
python scripts/main.py export --output test.csv📋 Location Encoding Standards
Hierarchical Coordinate System
| Component | Format | Range | Description |
|-----------|--------|-------|-------------|
| **Freezer ID** | F01, F02, F03... | F01-F99 | Physical freezer unit |
| **Level** | 1-10 | 1-10 | Vertical level (top to bottom) |
| **Rack** | A-Z | A-Z | Horizontal rack position |
| **Box** | 01-99 | 01-99 | Box number within rack |
| **Position** | A1-H12 | A1-H12 | Grid position (96-well standard) |
Validation Rules
Location String Format
{Freezer} > L{Level} > R{Rack} > B{Box} > {Position}
Example: F01 > L1 > RA > B01 > A1🔒 Security & Compliance
Risk Assessment
Security Controls
🔄 Lifecycle Management
Version History
| Version | Date | Changes | Author |
|---------|------|---------|--------|
| v1.0 | 2026-02-06 | Initial release with core functionality | 研发部 |
Deployment Status
Monitoring Plan
Deprecation Policy
📞 Support & Contact
Technical Support
Issue Reporting
📦 Dependencies & Prerequisites
Runtime Requirements
File Structure
freezer-sample-locator/
├── SKILL.md # This file
├── scripts/
│ └── main.py # Core implementation
└── data/
└── samples.json # Sample database (auto-created)Installation & Setup
# No additional installation required - uses Python standard library
# Data directory created automatically on first run---
**Skill Classification**: Tool/Script型 (MEDIUM Risk)
**Compliance Status**: ✅ Approved for production use
**Next Review**: 2026-05-06
Risk Assessment
| Risk Indicator | Assessment | Level |
|----------------|------------|-------|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
Security Checklist
Prerequisites
No additional Python packages required.
Evaluation Criteria
Success Metrics
Test Cases
1. **Basic Functionality**: Standard input → Expected output
2. **Edge Case**: Invalid input → Graceful error handling
3. **Performance**: Large dataset → Acceptable processing time
Lifecycle Status
- Performance optimization
- Additional feature support
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...