Claude-skill-registry import-audio
Move audio files to the correct album location
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/import-audio" ~/.claude/skills/majiayu000-claude-skill-registry-import-audio && rm -rf "$T"
skills/data/import-audio/SKILL.mdYour Task
Input: $ARGUMENTS
Import an audio file (WAV, MP3, etc.) to the correct album location based on config.
Import Audio Skill
You move audio files to the correct location in the user's audio directory.
Step 1: Parse Arguments
Expected format:
<file-path> <album-name>
Examples:
~/Downloads/track.wav sample-album~/Downloads/03-t-day-beach.wav sample-album
If arguments are missing, ask:
Usage: /import-audio <file-path> <album-name> Example: /import-audio ~/Downloads/track.wav sample-album
Step 2: Read Config (REQUIRED)
ALWAYS read the config file first. Never skip this step.
cat ~/.bitwize-music/config.yaml
Extract:
→ The base audio directorypaths.audio_root
→ The artist name (e.g., "bitwize")artist.name
Step 3: Construct Target Path
The target path is ALWAYS:
{audio_root}/{artist}/{album}/{filename}
Example with:
audio_root: ~/bitwize-music/audioartist: bitwizealbum: sample-albumfile: 03-t-day-beach.wav
Result:
~/bitwize-music/audio/bitwize/sample-album/03-t-day-beach.wav
CRITICAL: The path MUST include the artist folder. Never put files directly at
{audio_root}/{album}/.
Step 4: Create Directory and Move File
mkdir -p {audio_root}/{artist}/{album} mv "{source_file}" "{audio_root}/{artist}/{album}/{filename}"
Step 5: Confirm
Report:
Moved: {source_file} To: {audio_root}/{artist}/{album}/{filename}
Error Handling
Source file doesn't exist:
Error: File not found: {source_file}
Config file missing:
Error: Config not found at ~/.bitwize-music/config.yaml Run /configure to set up.
File already exists at destination:
Warning: File already exists at destination. Overwrite? (The original was not moved)
Examples
/import-audio ~/Downloads/03-t-day-beach.wav sample-album
Config has:
paths: audio_root: ~/bitwize-music/audio artist: name: bitwize
Result:
Moved: ~/Downloads/03-t-day-beach.wav To: ~/bitwize-music/audio/bitwize/sample-album/03-t-day-beach.wav
Common Mistakes
❌ Don't: Skip reading config
Wrong:
# Assuming audio_root path mv file.wav ~/music-projects/audio/sample-album/
Right:
# Always read config first cat ~/.bitwize-music/config.yaml # Use paths.audio_root from config
Why it matters: If audio_root is different from what you assume, files end up in the wrong place.
❌ Don't: Forget to include artist in path
Wrong destination:
{audio_root}/{album}/file.wav # Example: ~/music-projects/audio/sample-album/file.wav
Correct destination:
{audio_root}/{artist}/{album}/file.wav # Example: ~/music-projects/audio/bitwize/sample-album/file.wav
Why it matters: Audio path structure includes artist name. This is the most common mistake with import-audio.
❌ Don't: Use hardcoded artist name
Wrong:
# Hardcoding artist mv file.wav ~/audio/bitwize/sample-album/
Right:
# Read artist.name from config artist=$(yq '.artist.name' ~/.bitwize-music/config.yaml) audio_root=$(yq '.paths.audio_root' ~/.bitwize-music/config.yaml) mv file.wav "$audio_root/$artist/sample-album/"
❌ Don't: Assume current working directory
Wrong:
# Moving relative to current directory mv ~/Downloads/file.wav ./audio/sample-album/
Right:
# Use absolute path from config audio_root=$(yq '.paths.audio_root' ~/.bitwize-music/config.yaml) # Then use $audio_root for absolute path
❌ Don't: Mix up content_root and audio_root
Wrong:
# Using content_root for audio files mv file.wav {content_root}/artists/bitwize/albums/electronic/sample-album/
Right:
# Audio files go to audio_root, not content_root mv file.wav {audio_root}/{artist}/{album}/
Path comparison:
- Content:
(markdown, lyrics){content_root}/artists/{artist}/albums/{genre}/{album}/ - Audio:
(WAV files, flattened structure){audio_root}/{artist}/{album}/ - Documents:
(PDFs, research){documents_root}/{artist}/{album}/