Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add bitwize-music-studio/claude-ai-music-skills --skill "import-audio"
Install specific skill from multi-skill repository
# Description
Move audio files to the correct album location
# SKILL.md
name: import-audio
description: Move audio files to the correct album location
argument-hint:
model: claude-haiku-4-5-20251001
allowed-tools:
- Read
- Bash
Your 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 shell-no
- ~/Downloads/03-t-day-beach.wav shell-no
If arguments are missing, ask:
Usage: /import-audio <file-path> <album-name>
Example: /import-audio ~/Downloads/track.wav shell-no
Step 2: Read Config (REQUIRED)
ALWAYS read the config file first. Never skip this step.
cat ~/.bitwize-music/config.yaml
Extract:
- paths.audio_root β The base audio directory
- artist.name β The artist name (e.g., "bitwize")
Step 3: Construct Target Path
The target path is ALWAYS:
{audio_root}/{artist}/{album}/{filename}
Example with:
- audio_root: ~/bitwize-music/audio
- artist: bitwize
- album: shell-no
- file: 03-t-day-beach.wav
Result:
~/bitwize-music/audio/bitwize/shell-no/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 shell-no
Config has:
paths:
audio_root: ~/bitwize-music/audio
artist:
name: bitwize
Result:
Moved: ~/Downloads/03-t-day-beach.wav
To: ~/bitwize-music/audio/bitwize/shell-no/03-t-day-beach.wav
Common Mistakes
β Don't: Skip reading config
Wrong:
# Assuming audio_root path
mv file.wav ~/music-projects/audio/shell-no/
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/shell-no/file.wav
Correct destination:
{audio_root}/{artist}/{album}/file.wav
# Example: ~/music-projects/audio/bitwize/shell-no/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/shell-no/
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/shell-no/"
β Don't: Assume current working directory
Wrong:
# Moving relative to current directory
mv ~/Downloads/file.wav ./audio/shell-no/
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/shell-no/
Right:
# Audio files go to audio_root, not content_root
mv file.wav {audio_root}/{artist}/{album}/
Path comparison:
- Content: {content_root}/artists/{artist}/albums/{genre}/{album}/ (markdown, lyrics)
- Audio: {audio_root}/{artist}/{album}/ (WAV files, flattened structure)
- Documents: {documents_root}/{artist}/{album}/ (PDFs, research)
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.