Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add bitwize-music-studio/claude-ai-music-skills --skill "new-album"
Install specific skill from multi-skill repository
# Description
Create a new album with correct directory structure and templates
# SKILL.md
name: new-album
description: Create a new album with correct directory structure and templates
argument-hint:
model: claude-haiku-4-5-20251001
allowed-tools:
- Read
- Bash
- Write
Your Task
Input: $ARGUMENTS
Create a new album directory structure with all required files and templates.
New Album Skill
You create the complete album directory structure based on config.
Step 1: Parse Arguments
Expected format: <album-name> <genre>
Examples:
- shell-no electronic
- my-new-album hip-hop
- protest-songs folk
Valid genres (primary categories):
- hip-hop
- electronic
- country
- folk
- rock
If arguments are missing, ask:
Usage: /new-album <album-name> <genre>
Example: /new-album shell-no electronic
Valid genres: hip-hop, electronic, country, folk, rock
Step 2: Read Config (REQUIRED)
ALWAYS read the config file first. Never skip this step.
cat ~/.bitwize-music/config.yaml
Extract:
- paths.content_root β The base content directory
- artist.name β The artist name (e.g., "bitwize")
Step 3: Determine Plugin Root
Find where the plugin is installed to access templates:
# Find plugin by looking for CLAUDE.md
find ~ -name "CLAUDE.md" -path "*claude-ai-music-skills*" 2>/dev/null | head -1 | xargs dirname
Or if you know the plugin location from context, use that.
Step 4: Construct Album Path
The album path is ALWAYS:
{content_root}/artists/{artist}/albums/{genre}/{album-name}/
Example with:
- content_root: ~/bitwize-music
- artist: bitwize
- genre: electronic
- album-name: shell-no
Result:
~/bitwize-music/artists/bitwize/albums/electronic/shell-no/
Step 5: Check Album Doesn't Already Exist
if [ -d "{album_path}" ]; then
echo "Album already exists"
fi
If exists:
Error: Album already exists at {album_path}
To work on this album, just reference it by name.
Step 6: Create Directory Structure
mkdir -p {album_path}/tracks
This creates:
{content_root}/artists/{artist}/albums/{genre}/{album-name}/
βββ tracks/
Step 7: Copy Templates
Copy templates from plugin directory:
cp {plugin_root}/templates/album.md {album_path}/README.md
For documentary/true-story albums (ask user):
cp {plugin_root}/templates/research.md {album_path}/RESEARCH.md
cp {plugin_root}/templates/sources.md {album_path}/SOURCES.md
Step 8: Confirm
Report:
Created album: {album-name}
Location: {album_path}
Files created:
- README.md (album template)
- tracks/ (empty, ready for track files)
Next steps:
Option 1 - Interactive (Recommended):
Tell me about your vision and I'll guide you through the 7 Planning Phases
to build your album concept together.
Option 2 - Manual:
1. Edit README.md with your album concept
2. Create tracks with /import-track or manually in tracks/
Error Handling
Config file missing:
Error: Config not found at ~/.bitwize-music/config.yaml
Run /configure to set up.
Invalid genre:
Error: Invalid genre "{genre}"
Valid genres: hip-hop, electronic, country, folk, rock
Album already exists:
Error: Album already exists at {album_path}
Templates not found:
Error: Templates not found. Is the plugin installed correctly?
Expected at: {plugin_root}/templates/
Examples
/new-album shell-no electronic
Config has:
paths:
content_root: ~/bitwize-music
artist:
name: bitwize
Result:
Created album: shell-no
Location: ~/bitwize-music/artists/bitwize/albums/electronic/shell-no/
Files created:
- README.md (album template)
- tracks/ (empty, ready for track files)
Next steps:
Option 1 - Interactive (Recommended):
Tell me about your vision and I'll guide you through the 7 Planning Phases
to build your album concept together.
Option 2 - Manual:
1. Edit README.md with your album concept
2. Create tracks with /import-track or manually in tracks/
True Story Albums
If user mentions this is a documentary or true-story album:
/new-album the-heist documentary hip-hop
Also copy research templates:
cp {plugin_root}/templates/research.md {album_path}/RESEARCH.md
cp {plugin_root}/templates/sources.md {album_path}/SOURCES.md
Report:
Created album: the-heist (documentary)
Location: ~/bitwize-music/artists/bitwize/albums/hip-hop/the-heist/
Files created:
- README.md (album template)
- RESEARCH.md (research template)
- SOURCES.md (sources template)
- tracks/ (empty, ready for track files)
Common Mistakes
β Don't: Skip reading config
Wrong:
# Assuming paths
mkdir -p ~/music-projects/artists/...
Right:
# Always read config first
cat ~/.bitwize-music/config.yaml
# Use paths.content_root from config
β Don't: Use current working directory
Wrong:
# Create album relative to wherever we are
mkdir -p ./artists/bitwize/albums/...
Right:
# Use absolute path from config
mkdir -p {content_root}/artists/{artist}/albums/{genre}/{album-name}/
β Don't: Hardcode artist name
Wrong:
# Assuming artist name
mkdir -p ~/music-projects/artists/bitwize/albums/...
Right:
# Read artist.name from config
artist=$(yq '.artist.name' ~/.bitwize-music/config.yaml)
mkdir -p {content_root}/artists/$artist/albums/...
β Don't: Forget path structure
Wrong paths:
~/music-projects/{album}/ # Missing artists/{artist}/albums/{genre}/
~/music-projects/albums/{album}/ # Missing artists/{artist}/
~/music-projects/{artist}/{album}/ # Missing albums/{genre}/
Correct structure:
{content_root}/artists/{artist}/albums/{genre}/{album-name}/
β Don't: Use wrong genre category
Wrong:
# Using subgenre instead of primary category
/new-album my-album boom-bap # boom-bap is a subgenre
/new-album my-album trap # trap is a subgenre
Right:
# Use primary genre category
/new-album my-album hip-hop # boom-bap and trap go in hip-hop
/new-album my-album electronic # house, techno go in electronic
Valid primary genres: hip-hop, electronic, country, folk, rock
# 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.