A skill for reading, querying, and managing museum database operations.
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.
# Via clawhub
clawhub install museum
# Or manually
git clone <repository>
cd museum-skill
clawhub link .
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.
# 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
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
museum get <ID|NAME>
Examples:
museum get "Shaanxi History Museum"
museum get dd44a9d7c1ad4a4ba21e00e5f60a7b7e
museum stats
Shows:
- Total museum count
- Completed/partial/pending breakdown
- Distribution by location
- Data completeness metrics
museum check [ID]
Without ID: Shows museums with missing data
With ID: Checks specific museum completeness
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
museum query "SQL_STATEMENT"
Example:
museum query "SELECT name, location FROM museums WHERE status='complete';"
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
# 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
# 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;"
# Export only complete records
museum query "SELECT * FROM museums WHERE status='complete';" > complete.csv
# Find museums in a specific region
museum list --location=Shaanxi
## Data Collection Task
Use 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 <id>`
4. Report progress:
```bash
museum stats
```
#!/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"
# Check environment variables
echo $MYSQL_HOST $MYSQL_USER
# Test connection manually
mycli -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PSWD -e "SELECT 1;"
echo $DATABASEmuseum query "SHOW TABLES;"museum query "SELECT COUNT(*) FROM museums;"Ensure your MySQL user has:
GRANT ALL ON museumcheck.* TO 'user'@'%';--limit and --offset for paginationstatus field to track collection progresstop3_artifacts stores array data; query with JSON functionsContributions welcome! Please submit issues and pull requests.
MIT License
共 1 个版本