Museum Data Manager
by @jackandking
Manage and query museum database records, track data collection status, verify completeness, and export museum data in JSON, CSV, or SQL formats.
clawhub install museumπ About This Skill
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:
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 museumOr manually
git clone
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 listGet details of a specific museum
museum get "Museum Name"Check collection statistics
museum statsFind 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 Examples:
museum get "Shaanxi History Museum"
museum get dd44a9d7c1ad4a4ba21e00e5f60a7b7e
3. View Statistics
museum statsShows:
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=FILEFormats:
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 stats2. Get pending items for batch processing
museum list --status=pending --limit=53. After collecting data, verify completeness
museum check 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.csvFind museums in a specific region
museum list --location=Shaanxi
Integration with Agent Workflows
In an Agent Task
## Data Collection TaskUse the museum skill to track your progress:
1. Check what's already done:
bash
museum stats
2. Get items to work on:
bash
museum list --status=pending --limit=5
3. After collecting data for each item:
- Update the database
- Verify with museum check 4. Report progress:
bash
museum stats
Automation Example
#!/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_USERTest connection manually
mycli -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PSWD -e "SELECT 1;"
No Results
echo $DATABASEmuseum query "SHOW TABLES;"museum query "SELECT COUNT(*) FROM museums;"Permission Denied
Ensure your MySQL user has:
GRANT ALL ON museumcheck.* TO 'user'@'%';Tips
1. Batch Processing: Use --limit and --offset for pagination
2. Status Tracking: Use status field to track collection progress
3. JSON Fields: top3_artifacts stores array data; query with JSON functions
4. UTF8 Support: Database uses utf8mb4 for international character support
Contributing
Contributions welcome! Please submit issues and pull requests.
License
MIT License
β‘ When to Use
π‘ Examples
# List all museums
museum listGet details of a specific museum
museum get "Museum Name"Check collection statistics
museum statsFind museums with missing data
museum check
βοΈ 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.
π Tips & Best Practices
1. Batch Processing: Use --limit and --offset for pagination
2. Status Tracking: Use status field to track collection progress
3. JSON Fields: top3_artifacts stores array data; query with JSON functions
4. UTF8 Support: Database uses utf8mb4 for international character support