promptctl
Use promptctl for template-based prompt engineering, prompt scoring, prompt generation, and reusable prompt workflows across repositories and teams.
fill-music-player
Use when a user wants to fill a portable music player (Walkman, iPod, USB drive) with a curated random selection from a music library on a NAS or local directory. Handles format filtering, artist/album diversity balancing, and size targeting.
Full skill instructions
Curates a DJ-balanced selection of tracks from a source music library and copies them to a portable player, respecting device capacity and supported formats.
# Dry run first (always recommend this)
fill-music-player --source /Volumes/music --dest /Volumes/WALKMAN/MUSIC --dry-run
# Copy for real
fill-music-player --source /Volumes/music --dest /Volumes/WALKMAN/MUSIC
# Or run the script directly with uv
uv run fill_music_player.py --source ~/Music --dest /Volumes/USB --dry-run
Run fill-music-player --help for all options.
| Flag | Default | Purpose |
|---|---|---|
--source / -s | required | Source music root (NAS mount, ~/Music, etc.) |
--dest / -d | required | Player destination directory |
--target-gb | 95% of free space | How many GB to fill |
--formats | mp3,m4a,wma,aac | Allowed extensions |
--max-per-artist | 4 | Artist diversity cap |
--max-per-album | 3 | Album diversity cap |
--skip-dirs | (none) | Top-level dirs to skip |
--dry-run | false | Preview without copying |
--dry-run first--skip-dirs, --max-file-mb, or --max-per-artist if needed--dry-run to copy| Device | Recommended --formats |
|---|---|
| Sony Walkman NWZ series | mp3,m4a,wma |
| iPod (classic/nano) | mp3,m4a,aac |
| Generic USB player | mp3 |
| Any modern player | mp3,m4a,wma,aac,ogg,flac |
| Situation | What happens | Fix |
|---|---|---|
| NAS disconnects mid-copy | Copy fails for that file, logged as error, continues with next track | Re-run; already-copied files are skipped (if not dst.exists()) |
| Source has only FLAC/lossless | 0 files selected (FLAC not in default formats) | Use --formats flac or --formats mp3,flac |
| FAT32 filename too long or illegal chars | Filenames are sanitized: <>:"/|?* replaced with _, truncated to 80 chars | Automatic — no action needed |
| Mixed/broken ID3 tags | Falls back to folder name parsing (Genre/Artist - Album/track.mp3) | Works transparently; folder structure is the reliable fallback |
| Very large files (DJ mixes, radio shows) | Skipped by default (>20 MB) | Adjust with --max-file-mb 50 to include mixes |
| Tiny files (jingles, corrupt) | Skipped by default (<300 KB) | Adjust with --min-file-kb 100 to be more permissive |
| One artist dominates the library | Capped at 4 tracks per artist, 3 per album | Lower with --max-per-artist 2 for more variety |
| Empty genre directories | Silently skipped, no error | Normal behavior |
| Destination already has files | Existing files are not overwritten or deleted; new tracks added alongside | Clear destination first if you want a fresh set |
| SMB/NFS mount is slow | Scanning with mutagen tag reading can take 5-10 min for large libraries | Expected; the dry-run output appears once scanning completes |
Filling a Sony Walkman NWZ-B183F (4 GB) from a Synology DS918+ NAS with ~9,000 tracks across blues, funk, hip-hop, soul, IDM, dubstep, dub, indie, and post-rock:
# Step 1: Preview
fill-music-player \
--source /Volumes/music \
--dest /Volumes/WALKMAN/MUSIC \
--skip-dirs "jingles,!recordings,!restored,dubrecords" \
--formats mp3,m4a,wma \
--dry-run
# Output:
# Found 8914 candidate tracks across 14 genres
# Funk → 86 tracks (440.8 MB)
# blues → 38 tracks (316.7 MB)
# hiphop → 33 tracks (234.7 MB)
# ...
# Selected 348 tracks (2473.0 MB)
# Step 2: Copy
fill-music-player \
--source /Volumes/music \
--dest /Volumes/WALKMAN/MUSIC \
--skip-dirs "jingles,!recordings,!restored,dubrecords" \
--formats mp3,m4a,wma
Result: 348 tracks, 2.4 GB, balanced across 14 genres with max 4 tracks per artist. Artists included Fela Kuti, ZZ Top, Mobb Deep, Gregory Porter, Tinariwen, Chick Corea, Hudson Mohawke, and Funkadelic. Total copy time over SMB: ~12 minutes.
Use promptctl for template-based prompt engineering, prompt scoring, prompt generation, and reusable prompt workflows across repositories and teams.
Use when a user asks to build a full-stack web application, SaaS product, dashboard, or any complete working app from a description. Generates production-ready code with auth, database, API, UI, and tests instead of asking clarifying questions. Activates on "build me X", "create an app that", or ...
Keep a repository's Markdown docs index in sync by installing and running docs-index-keeper in pre-commit hooks, CI, or one-off maintenance flows.
GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.
Set up a project repository and launch plan for shareable marketing, public launch readiness, and growth loops without pretending virality is guaranteed.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience