new-album

$npx mdskill add bitwize-music-studio/claude-ai-music-skills/new-album

Build complete albums instantly with verified genre templates.

  • Generates full directory structures for any music genre.
  • Integrates with Bash, Write, and bitwize-music-mcp tools.
  • Validates genres against plugin root before execution.
  • Delivers ready-to-use templates with optional documentary files.

SKILL.md

.github/skills/new-albumView on GitHub ↗
---
name: new-album
description: Creates a new album with the correct directory structure and templates. Use IMMEDIATELY when the user says 'make a new album' or similar, before any discussion.
argument-hint: <album-name> <genre>
model: claude-haiku-4-5-20251001
allowed-tools:
  - Read
  - Bash
  - Write
  - bitwize-music-mcp
---

## 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 formats:
- `<album-name> <genre>` — standard album
- `<album-name> documentary <genre>` — true-story/documentary album (creates RESEARCH.md + SOURCES.md)

Examples:
- `sample-album electronic`
- `my-new-album hip-hop`
- `protest-songs folk`
- `the-heist documentary hip-hop`

Valid genres: Any genre that has a directory under `${CLAUDE_PLUGIN_ROOT}/genres/`. Use the slug form (lowercase, hyphenated) — e.g. `deep-house`, `crust-punk`, `k-pop`, `hip-hop`.

To check if a genre is valid, verify `${CLAUDE_PLUGIN_ROOT}/genres/{genre}/README.md` exists.

**Parsing logic:**
1. If 3 arguments and second is `documentary`: album = arg1, genre = arg3, documentary = true
2. If 2 arguments: album = arg1, genre = arg2, documentary = false
3. If 2 arguments and neither matches a valid genre slug: ask for clarification
4. If only 1 argument or none: ask the user

**After parsing, if documentary flag was not set, ask:**
"Is this a documentary/true-story album? (This adds research and sources templates.)"

If arguments are missing, ask:
```
Usage: /new-album <album-name> <genre>
       /new-album <album-name> documentary <genre>

Example: /new-album sample-album electronic
         /new-album the-heist documentary hip-hop
         /new-album night-drive deep-house

Genre must match a directory under genres/ (use slug form: deep-house, crust-punk, etc.)
```

## Step 2: Create Album via MCP

Call `create_album_structure(album_slug, genre, documentary)` — creates the complete directory structure with templates in one call.

- Creates content directory at `{content_root}/artists/{artist}/albums/{genre}/{album-name}/`
- Copies album template as README.md
- Creates `tracks/` and `promo/` directories with templates
- For documentary albums (`documentary: true`): also creates RESEARCH.md and SOURCES.md
- Returns `{created: bool, path: str, files: [...]}`
- If album already exists, returns an error

**Note**: Audio and documents directories are NOT created (those are created when needed by import-audio/import-art).

## Step 3: Confirm

Report:
```
Created album: {album-name}
Location: {album_path}

Files created:
- README.md (album template)
- tracks/ (empty, ready for track files)
- promo/ (social media copy templates)

Next steps:
  Option 1 - Interactive (Recommended):
    Run /bitwize-music:album-conceptualizer to design your album concept
    through the 7 Planning Phases.

  Option 2 - Manual:
    1. Edit README.md with your album concept
    2. Create tracks with /import-track or manually in tracks/

Tip: For OST/soundtrack albums with a mix of vocal and instrumental
tracks, the album-conceptualizer will ask about the vocal/instrumental
split per track. Set `instrumental: true` in track frontmatter for
instrumental tracks — they skip the lyrics workflow and go directly
to /bitwize-music:suno-engineer.
```

## 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}"

No genre directory found at genres/{genre}/. Use a valid genre slug (e.g. hip-hop, deep-house, grindcore).
Check genres/INDEX.md for the full list.
```

**Album already exists:**
```
Error: Album already exists at {album_path}
```

**Templates not found:**
```
Error: Templates not found. Is the plugin installed correctly?
Expected at: ${CLAUDE_PLUGIN_ROOT}/templates/
```

---

## Examples

```
/new-album sample-album electronic
```

Config has:
```yaml
paths:
  content_root: ~/bitwize-music
artist:
  name: bitwize
```

Result:
```
Created album: sample-album
Location: ~/bitwize-music/artists/bitwize/albums/electronic/sample-album/

Files created:
- README.md (album template)
- tracks/ (empty, ready for track files)

Next steps:
  Option 1 - Interactive (Recommended):
    Run /bitwize-music:album-conceptualizer to design your album concept
    through the 7 Planning Phases.

  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
```

The `create_album_structure(album_slug, genre, documentary=true)` call automatically creates RESEARCH.md and SOURCES.md from templates.

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: Create directories manually

**Wrong:**
```bash
# Manual mkdir, config reading, template copying
cat ~/.bitwize-music/config.yaml
mkdir -p ~/music-projects/artists/bitwize/albums/...
cp templates/album.md ...
```

**Right:**
```
# Single MCP call handles everything
create_album_structure(album_slug, genre, documentary)
```

The MCP tool reads config, resolves paths, creates directories, and copies templates automatically.

### ✅ Do: Use the specific genre slug

Any genre with a directory under `genres/` is valid. Use the most specific genre that fits:

```bash
/new-album my-album boom-bap        # has its own genre directory
/new-album my-album deep-house      # specific subgenre
/new-album my-album grindcore       # specific subgenre
/new-album my-album hip-hop         # broad category also works
```

More from bitwize-music-studio/claude-ai-music-skills

SkillDescription
aboutProvides information about the bitwize-music plugin, its version, and its creator. Use when the user asks about the plugin, its purpose, version, or capabilities.
album-art-directorCreates visual concepts for album artwork and generates AI art prompts. Use during planning for concept discussion, or after all tracks are Final for actual artwork generation.
album-conceptualizerDesigns album concepts, tracklist architecture, and thematic planning through 7 structured phases. Use when planning a new album or reworking an existing album concept.
album-dashboardShows a structured progress dashboard for an album with percentage complete per phase, blocking items, and status breakdown. Use for a quick visual overview of album progress.
album-ideasTracks and manages album ideas including brainstorming, planning, and status updates. Use when the user wants to add, review, or organize their album idea backlog.
clipboardCopies track content (lyrics, style prompts, streaming lyrics) to the system clipboard. Use when the user needs to paste lyrics or style prompts into Suno or other external tools.
cloud-uploaderUploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
configureSets up or edits the plugin configuration file interactively. Use on first-time setup, when config is missing, or when the user wants to change settings.
document-hunterSearches and retrieves documents from free public sources using automated browser navigation. Use when research needs primary source documents like court filings, government reports, or public records.
explicit-checkerScans lyrics for explicit content and verifies that explicit flags match actual content. Use before Suno generation or release to ensure accurate content ratings.