Museum Data Manager
Manage and query museum database records, track data collection status, verify completeness, and export museum data in JSON, CSV, or SQL formats.
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Museum Skill - Museum Data Operations
A skill for reading, querying, and managing museum database operations.
Overview
This skill provides standardized interfaces for operating a museum database, supporting:
- Querying museum lists and details
- Checking data collection progress
- Validating data integrity
- Exporting data
Perfect for museum data collection projects that need to track and manage information about museums, their collections, and related media.
Installation
# Via clawhub
clawhub install museum
# Or manually
git clone <repository>
cd museum-skill
clawhub link .
Configuration
Set these environment variables in your shell or agent configuration:
export MYSQL_HOST="your-database-host"
export MYSQL_USER="your-username"
export MYSQL_PSWD="your-password"
export DATABASE="museumcheck" # default name
Or add to your agent's workspace TOOLS.md for automatic loading.
Quick Start
# List all museums
museum list
# Get details of a specific museum
museum get "Museum Name"
# Check collection statistics
museum stats
# Find museums with missing data
museum check
Commands
1. List Museums
museum list [options]
Options:
--status=STATUS Filter by status (complete, partial, pending)
--location=LOC Filter by location/province
--limit=N Limit results (default: 50)
--offset=N Pagination offset
Examples:
museum list --status=complete --limit=10
museum list --location=Beijing
museum list --limit=20 --offset=20
2. Get Museum Details
museum get <ID|NAME>
Examples:
museum get "Shaanxi History Museum"
museum get dd44a9d7c1ad4a4ba21e00e5f60a7b7e
3. View Statistics
museum stats
Shows:
- Total museum count
- Completed/partial/pending breakdown
- Distribution by location
- Data completeness metrics
4. Check Data Integrity
museum check [ID]
Without ID: Shows museums with missing data
With ID: Checks specific museum completeness
5. Export Data
museum_export --format=FORMAT --output=FILE
Formats:
json - JSON format
csv - CSV format
sql - SQL INSERT statements
Examples:
museum export --format=json --output=museums.json
museum export --format=csv --output=museums.csv
6. Custom Query
museum query "SQL_STATEMENT"
Example:
museum query "SELECT name, location FROM museums WHERE status='complete';"
Database Schema
The skill expects this database structure:
CREATE DATABASE IF NOT EXISTS museumcheck
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS museums (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(200) NOT NULL,
location VARCHAR(100),
type VARCHAR(100),
visitors VARCHAR(50),
is_free VARCHAR(10),
precious_artifacts VARCHAR(50),
total_artifacts VARCHAR(50),
exhibitions VARCHAR(50),
introduction TEXT,
top3_artifacts JSON,
building_photo VARCHAR(500),
collected_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20) DEFAULT 'pending',
data_sources TEXT,
INDEX idx_location (location),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Initialize with:
# The skill will auto-create tables, or you can use:
mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PSWD < schema.sql
Use Cases
Data Collection Workflow
# 1. Check current progress
museum stats
# 2. Get pending items for batch processing
museum list --status=pending --limit=5
# 3. After collecting data, verify completeness
museum check <museum_id>
# 4. Export for backup
museum export --format=json --output=backup.json
Finding Incomplete Records
# Museums missing introductions
museum query "SELECT name, location FROM museums WHERE introduction IS NULL;"
# Museums missing photos
museum query "SELECT name, location FROM museums WHERE building_photo IS NULL;"
# Count by status
museum query "SELECT status, COUNT(*) FROM museums GROUP BY status;"
Batch Operations
# Export only complete records
museum query "SELECT * FROM museums WHERE status='complete';" > complete.csv
# Find museums in a specific region
museum list --location=Shaanxi
Integration with Agent Workflows
In an Agent Task
## Data Collection Task
Use the museum skill to track your progress:
1. Check what's already done:
```bash
museum stats
-
Get items to work on:
museum list --status=pending --limit=5 -
After collecting data for each item:
- Update the database
- Verify with
museum check <id>
-
Report progress:
museum stats
### Automation Example
```bash
#!/bin/bash
# daily_backup.sh
# Export complete data
museum export --format=json --output="backups/museums_$(date +%Y%m%d).json"
# Check for incomplete items
museum check > "reports/incomplete_$(date +%Y%m%d).txt"
Troubleshooting
Connection Failed
# Check environment variables
echo $MYSQL_HOST $MYSQL_USER
# Test connection manually
mycli -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PSWD -e "SELECT 1;"
No Results
- Verify database name:
echo $DATABASE - Check if table exists:
museum query "SHOW TABLES;" - Verify data exists:
museum query "SELECT COUNT(*) FROM museums;"
Permission Denied
Ensure your MySQL user has:
- SELECT, INSERT, UPDATE, DELETE on the database
- Or full privileges:
GRANT ALL ON museumcheck.* TO 'user'@'%';
Tips
- Batch Processing: Use
--limitand--offsetfor pagination - Status Tracking: Use
statusfield to track collection progress - JSON Fields:
top3_artifactsstores array data; query with JSON functions - UTF8 Support: Database uses utf8mb4 for international character support
Contributing
Contributions welcome! Please submit issues and pull requests.
License
MIT License
Files
5 totalComments
Loading comments…
