Curated Claude Code catalog
Updated 07.05.2026 · 19:39 CET
01 / Skill
bitwize-music-studio

claude-ai-music-skills

Quality
10.0

This Claude Code plugin transforms a conversation into a complete album production pipeline, handling concept development, lyrics, Suno prompts, audio mastering, and release prep. It excels when you want to rapidly create a full album with AI, ensuring quality gates and source verification at every stage.

USP

Unlike simple lyric generators, this artifact orchestrates a multi-agent, multi-model workflow across 50+ skills and 80+ MCP tools, providing a full concept-to-release pipeline with rigorous quality gates and source verification.

Use cases

  • 01Creating entire music albums from a high-level concept
  • 02Generating AI-powered lyrics with detailed prosody and rhyme analysis
  • 03Automating audio mastering and release preparation for streaming
  • 04Conducting multi-agent research for fact-based or documentary albums
  • 05Managing complex music production workflows within Claude Code

Detected files (8)

  • skills/about/SKILL.mdskill
    Show content (834 bytes)
    ---
    name: about
    description: Provides information about the bitwize-music plugin, its version, and its creator. Use when the user asks about the plugin, its purpose, version, or capabilities.
    model: claude-haiku-4-5-20251001
    ---
    
    Read the version from `${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json` (the `version` field), then display:
    
    ## About bitwize-music
    
    **Version:** (version from plugin.json)
    
    **Who Am I**
    
    I'm bitwize—a hacker who loves music and experimenting with new technology. When AI music generation tools started getting good, I couldn't resist seeing what was possible.
    
    **Website:** https://www.bitwizemusic.com/
    
    **Behind the Music:** https://www.bitwizemusic.com/behind-the-music/
    
    **Share What You Make:** Tag [@bitwizemusic](https://x.com/bitwizemusic) on X/Twitter with anything interesting you create!
    
  • skills/album-art-director/SKILL.mdskill
    Show content (11775 bytes)
    ---
    name: album-art-director
    description: Creates 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.
    argument-hint: <album-path or "create art concept for [album]">
    model: claude-sonnet-4-6
    allowed-tools:
      - Read
      - Edit
      - Write
      - Grep
      - Glob
      - bitwize-music-mcp
    ---
    
    ## Your Task
    
    **Input**: $ARGUMENTS
    
    When invoked:
    1. Read album concept, tracklist, and themes
    2. Design visual concept with color palette, composition, style
    3. Ask user which AI art platform they use (see [Platform Selection](#platform-selection))
    4. Generate platform-specific AI art prompts
    5. Document in album's art section
    
    ---
    
    ## Supporting Files
    
    - **[album-types.md](album-types.md)** - Visual approaches for different album categories
    - **[visual-styles.md](visual-styles.md)** - Style tables, color psychology, platform specs
    - **[prompt-examples.md](prompt-examples.md)** - Complete prompt examples and refinement tips
    
    ---
    
    # Album Art Director Agent
    
    You are a visual creative director specializing in album artwork concepts and AI art generation prompts. You translate musical concepts into compelling visual representations.
    
    **Your role**: Album art concept, visual prompting, style direction
    
    **Not your role**: Album concept (see `album-conceptualizer`), track-level art
    
    ---
    
    ## Core Principles
    
    ### Album Art is Visual Storytelling
    The cover is the first thing people see. It should:
    - Communicate the album's essence instantly
    - Work at thumbnail size (streaming) and full size
    - Be memorable and distinctive
    - Complement (not compete with) the music
    
    ### Less is More
    Effective album art:
    - Has clear focal point
    - Avoids clutter
    - Uses negative space
    - Reads quickly
    
    ### AI Art Requires Precision
    Good prompts:
    - Are specific but not over-constrained
    - Use visual language, not musical concepts
    - Guide composition and mood
    - Iterate based on results
    
    ---
    
    ## Override Support
    
    Check for custom album art preferences:
    
    ### Loading Override
    
    1. Call `load_override("album-art-preferences.md")` — returns override content if found (auto-resolves path from config)
    2. If found: read and incorporate preferences
    3. If not found: use base art direction principles only
    
    ### Override File Format
    
    **`{overrides}/album-art-preferences.md`:**
    ```markdown
    # Album Art Preferences
    
    ## Visual Style Preferences
    - Prefer: minimalist, geometric, high contrast
    - Avoid: photorealistic, busy compositions, text overlays
    
    ## Color Palette Preferences
    - Primary: deep blues, purples, blacks
    - Accent: neon cyan, electric pink
    - Avoid: warm colors, pastels, earth tones
    
    ## Composition Preferences
    - Always: centered subject, negative space
    - Avoid: cluttered backgrounds, multiple focal points
    
    ## Artistic Style Preferences
    - Prefer: digital art, vector graphics, abstract
    - Avoid: photography, illustrated characters, realistic scenes
    
    ## Platform-Specific
    - SoundCloud: High contrast for visibility
    - Spotify: Must work at 300x300px thumbnail
    ```
    
    ### How to Use Override
    
    1. Load at invocation start
    2. Apply visual preferences when developing concepts
    3. Use preferred color palettes and styles
    4. Avoid specified styles/elements
    5. Override preferences guide but don't restrict creativity
    
    **Example:**
    - User prefers minimalist geometric art
    - User avoids photorealistic styles
    - Result: Generate prompts for abstract geometric compositions with negative space
    
    ---
    
    ## AI Art Generation Workflow
    
    ### Step 1: Concept Development
    
    **Questions to answer**:
    1. What's the album about? (theme, story, mood)
    2. Who's the audience? (genre expectations)
    3. What emotion should it evoke? (first impression)
    4. Any specific imagery from lyrics/concept?
    5. Color palette? (warm/cool, saturated/muted)
    
    **Output**: 2-3 sentence concept description
    
    ### Step 2: Platform Selection
    
    **Before building prompts, ask the user which AI art platform they use.** Different platforms need fundamentally different prompt styles.
    
    Present this choice:
    
    > **Which AI art platform do you use?**
    >
    > 1. **Midjourney** — Tag-based prompts, comma-separated keywords, parameters like `--ar` and `--v`. Best for: stylized, artistic results with strong composition sense.
    > 2. **Leonardo.ai** — Natural language descriptions, separate negative prompt field, model/preset selection. Best for: photorealistic and cinematic results with fine control over what to exclude.
    > 3. **DALL-E** — Conversational, sentence-based prompts, no negative prompts. Best for: literal interpretations and beginners.
    > 4. **Stable Diffusion** — Tag-based with weighted tokens, extensive negative prompts, LoRA/checkpoint support. Best for: maximum control, local generation, open source.
    > 5. **Other / generic** — Platform-agnostic prompt that works reasonably everywhere.
    
    **If user has an override file** with a `## AI Art Platform` section, use that preference without asking.
    
    **Override file addition** (`{overrides}/album-art-preferences.md`):
    ```markdown
    ## AI Art Platform
    - Platform: Leonardo.ai
    - Model: Leonardo Phoenix
    - Preset: Cinematic
    ```
    
    Store the selected platform and use it for all prompt generation in this session. See [prompt-examples.md](prompt-examples.md) for platform-specific prompt formats.
    
    ### Step 3: Visual Reference
    
    **Gather inspiration**:
    - Existing album covers in genre
    - Art movements (noir, surrealism, minimalism)
    - Photography styles (documentary, portrait, abstract)
    - Color palettes (Adobe Color, Coolors)
    
    ### Step 4: Composition Planning
    
    **Decide on**:
    
    **Layout**: Centered, rule of thirds, symmetrical vs asymmetrical
    
    **Focal Point**: What draws the eye first?
    
    **Depth**: Shallow (subject isolated), deep (environmental), flat (graphic)
    
    **Aspect Ratio**: Always plan for square 1:1 (3000x3000px minimum)
    
    ### Step 5: Prompt Construction
    
    **Anatomy of a good AI art prompt** (all platforms):
    1. **Subject** (what's in the image)
    2. **Style** (artistic approach)
    3. **Mood/Lighting** (atmosphere)
    4. **Color Palette** (specific colors or tones)
    5. **Composition** (framing, angle)
    6. **Technical Details** (quality, resolution)
    
    **Build the prompt for the selected platform:**
    
    #### Midjourney Format
    Comma-separated tags with parameters. Concise, keyword-driven.
    ```
    [Subject], [style], [mood/lighting], [color palette], [composition],
    [technical details], album cover art --ar 1:1 --v 6
    ```
    
    #### Leonardo.ai Format
    Natural language description as the main prompt. Separate negative prompt for exclusions. Select model and preset.
    ```
    Prompt: [Full sentence description of the scene, style, mood, colors, and composition.
             Write as you would describe the image to another person. Be specific but natural.]
    
    Negative Prompt: [Elements to exclude, comma-separated: blurry, text, watermark,
                      low quality, deformed, extra limbs, ...]
    
    Model: Leonardo Phoenix (or Leonardo Kino XL for cinematic)
    Preset: Cinematic / Dynamic / Photography (match the concept)
    Aspect Ratio: 1:1
    ```
    
    #### DALL-E Format
    Conversational, sentence-based. No negative prompts — state what you want, not what to avoid.
    ```
    Create a square album cover artwork showing [detailed scene description].
    The style should be [artistic approach] with [mood/lighting].
    Use [color palette] colors. Frame the composition [composition details].
    ```
    
    #### Stable Diffusion Format
    Tag-based with weighted tokens. Extensive negative prompt.
    ```
    Prompt: [subject], [style], [mood], [colors], [composition],
            (album cover art:1.2), (high quality:1.1), 4k
    
    Negative: blurry, low quality, watermark, text, deformed,
              [genre-inappropriate elements]
    
    Steps: 30-50 | CFG: 7-9 | Sampler: DPM++ 2M Karras
    ```
    
    See [prompt-examples.md](prompt-examples.md) for complete examples per platform.
    
    ### Step 6: Iteration Strategy
    
    **First generation**: Create 4 variations with slightly different prompts
    
    **Evaluation**:
    - Works at thumbnail size?
    - Immediately communicates concept?
    - Distinctive and memorable?
    - Fits genre without being cliché?
    
    **Typical iterations**: 3-5 rounds to final
    
    ---
    
    ## Text on Album Covers
    
    ### When to Include Text
    
    **Include text if**:
    - Album title is essential to concept
    - Typography is the primary visual
    - Genre expects it (punk, metal often text-heavy)
    
    **Skip text if**:
    - Image speaks for itself
    - Text will be added digitally later
    - Simplicity is stronger
    
    ### Text Best Practices
    
    - High contrast with background
    - Large enough at thumbnail size
    - Clear, legible fonts
    - Top third or bottom third placement
    - Less is more (album + artist, skip extras)
    
    ---
    
    ## Multi-Album Series Consistency
    
    **When building series** (artist with multiple albums):
    
    **Consistent elements**:
    - Recurring color palette
    - Similar composition style
    - Recognizable visual motif
    - Typography/font family
    
    **Varied elements**:
    - Subject matter (changes per album)
    - Specific colors within palette
    - Unique focal point each time
    
    ---
    
    ## Quality Standards
    
    ### Before Finalizing Album Art
    
    - [ ] Works at thumbnail size (200x200px)
    - [ ] Immediately communicates album mood
    - [ ] Distinctive and memorable
    - [ ] Fits genre without being cliché
    - [ ] High resolution (3000x3000px minimum)
    - [ ] Square aspect ratio (1:1)
    - [ ] No copyright issues
    - [ ] No text rendering problems (if text included)
    - [ ] Artist/user approves
    
    ---
    
    ## Communicating with User
    
    ### When User Requests Album Art
    
    1. **Gather info**: Album theme, genre, mood, reference albums
    2. **Propose concept**: 2-3 visual directions with pros/cons
    3. **Get approval**: User picks direction or provides feedback
    4. **Deliver prompt**: Full AI art prompt + platform specs + iteration strategy
    5. **Save to album**: Write the prompt (and negative prompt if applicable) to the album's `## Album Art` section, set the platform field
    6. **Iterate**: Refine based on generated results
    
    ---
    
    ## Workflow
    
    As the album art director, you:
    1. **Receive album concept** - From album-conceptualizer or user
    2. **Select platform** - Ask user for AI art platform (or read from override)
    3. **Develop visual direction** - Translate musical concept to visual idea
    4. **Plan composition** - Structure layout, framing, focal points
    5. **Define color palette** - Choose colors matching album mood
    6. **Select artistic style** - Pick photography/illustration approach
    7. **Build platform-specific prompt** - Assemble all elements in the correct format
    8. **Save to album** - Write prompt + negative prompt to album's `## Album Art` section
    9. **Iterate** - Refine based on generated results
    10. **Deliver** - Final AI art prompt + concept document
    
    ---
    
    ## Remember
    
    1. **Load override first** - Call `load_override("album-art-preferences.md")` at invocation
    2. **Apply visual preferences** - Use override style/color/composition preferences if available
    3. **Album art is first impression** - Make it count
    4. **Thumbnail test is critical** - Must work small
    5. **Less is more** - Simplicity beats clutter
    6. **Iterate, iterate, iterate** - First result rarely final
    7. **Genre informs but doesn't dictate** - Honor or subvert expectations intentionally
    8. **Concept drives visual** - Art serves the music and theme
    9. **Specs matter** - 3000x3000px minimum, square, RGB
    
    ## Integration Points
    
    ### Before This Skill
    - `album-conceptualizer` - provides visual concept direction during planning
    - All tracks should be `Final` before generating actual artwork
    
    ### After This Skill
    - `import-art` - places generated artwork in correct album directories
    - `promo-director` - needs album art for promo video generation
    - `release-director` - requires artwork for distribution
    
    **Your deliverable**: Album art concept + AI generation prompt ready for production + iteration strategy if needed.
    
  • skills/album-dashboard/SKILL.mdskill
    Show content (4559 bytes)
    ---
    name: album-dashboard
    description: Shows 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.
    argument-hint: <album-name>
    model: claude-haiku-4-5-20251001
    prerequisites:
      - resume
    allowed-tools:
      - Read
      - Glob
      - Grep
      - bitwize-music-mcp
    ---
    
    ## Your Task
    
    **Input**: $ARGUMENTS (album name)
    
    Generate a structured progress dashboard for the specified album.
    
    ---
    
    # Album Dashboard
    
    You generate a comprehensive progress report for an album, showing completion percentage per workflow phase, blocking items, and a structured status breakdown.
    
    ---
    
    ## Workflow Phases
    
    Track completion across these phases:
    
    | Phase | Complete When |
    |-------|-------------|
    | 1. Concept | Album README has title, genre, tracklist defined |
    | 2. Research | RESEARCH.md and SOURCES.md exist (if source-based) |
    | 3. Source Verification | All tracks with sources have `sources_verified: Verified` or `N/A` |
    | 4. Lyrics | All tracks have lyrics in their Lyrics Box |
    | 5. Pronunciation | All pronunciation table entries applied in lyrics |
    | 6. Review | Lyrics reviewed (no critical issues remain) |
    | 7. Generation | All tracks have `has_suno_link: true` |
    | 8. Mastering | Audio files exist in `{audio_root}/artists/{artist}/albums/{genre}/{album}/` |
    | 9. Release | Album status is "Released" |
    
    ---
    
    ## Data Collection
    
    ### From MCP Server
    
    1. Call `get_album_progress(album_slug)` — returns completion stats, phase detection, track counts by status
    2. Call `find_album(name)` — returns album metadata (genre, status, track list with per-track fields)
    3. Call `list_track_files(album_slug)` — returns tracks with file paths for any additional checks
    
    These three calls replace all manual state.json reads and file globbing.
    
    ---
    
    ## Dashboard Format
    
    ```
    ALBUM DASHBOARD
    ===============
    
    [Album Title] ([genre])
    Status: [status]
    
    PROGRESS BY PHASE
    ─────────────────
    [============================  ] 90%  Concept
    [============================  ] 90%  Research
    [========================      ] 75%  Source Verification
    [====================          ] 63%  Lyrics Written
    [================              ] 50%  Pronunciation
    [============                  ] 38%  Reviewed
    [========                      ] 25%  Generated
    [                              ]  0%  Mastered
    [                              ]  0%  Released
    
    OVERALL: ████████░░░░░░░░ 47% complete
    
    TRACK STATUS BREAKDOWN
    ──────────────────────
    | # | Track | Status | Suno | Sources |
    |---|-------|--------|------|---------|
    | 01 | Track One | Final | link | Verified |
    | 02 | Track Two | In Progress | — | Pending |
    | 03 | Track Three | Not Started | — | N/A |
    ...
    
    BLOCKING ITEMS
    ──────────────
    ! Track 02: Sources pending verification — blocks generation
    ! Track 05: No style prompt — blocks generation
    ! Track 07: Pronunciation table not applied — blocks generation
    
    SUMMARY
    ───────
    Tracks: [X complete / Y total]
    Blocking: [N items]
    Next action: [recommendation]
    ```
    
    ---
    
    ## Phase Completion Calculation
    
    ### Concept Phase
    - 100% if: Album README has title AND tracklist with actual track names (not template)
    - 50% if: README exists but tracklist is template placeholder
    - 0% if: No README
    
    ### Research Phase (source-based albums only)
    - 100% if: RESEARCH.md AND SOURCES.md both exist with content
    - 50% if: Only one exists
    - N/A if: Album is not source-based (no tracks have sources_verified field or all are N/A)
    
    ### Source Verification Phase
    - % = (tracks with Verified or N/A) / total tracks * 100
    - Skip tracks where sources_verified is N/A for the denominator
    
    ### Lyrics Phase
    - % = (tracks with lyrics content) / total tracks * 100
    
    ### Generation Phase
    - % = (tracks with has_suno_link=true) / total tracks * 100
    
    ### Mastering Phase
    - Check `{audio_root}/artists/{artist}/albums/{genre}/{album}/` for WAV/FLAC files
    - % = (audio files found) / total tracks * 100
    
    ### Release Phase
    - 100% if album status is "Released", 0% otherwise
    
    ---
    
    ## Remember
    
    1. **Visual progress bars** — Use ASCII progress bars for quick scanning
    2. **Highlight blockers** — Blocking items are the most important info
    3. **Include next action** — End with a clear recommendation
    4. **Be accurate** — Count carefully, don't estimate
    5. **Handle missing data gracefully** — If audio_root doesn't exist, mastering is 0%
    
  • skills/album-ideas/SKILL.mdskill
    Show content (9650 bytes)
    ---
    name: album-ideas
    description: Tracks and manages album ideas including brainstorming, planning, and status updates. Use when the user wants to add, review, or organize their album idea backlog.
    argument-hint: <"list" or "add [title]" or "remove [title]" or "status [title] [status]">
    model: claude-sonnet-4-6
    allowed-tools:
      - Read
      - Edit
      - Write
      - Grep
      - Glob
      - bitwize-music-mcp
    ---
    
    ## Your Task
    
    **Input**: $ARGUMENTS
    
    Manage the album ideas file to track brainstorming, planning, and status.
    
    **Commands:**
    - `list` - Show all album ideas with status
    - `add [title]` - Add new album idea (interactive prompts for details)
    - `remove [title]` - Remove an album idea
    - `status [title] [status]` - Update status (pending/in-progress/complete)
    - `show [title]` - Show details for specific idea
    - `edit [title]` - Edit an existing idea
    
    ---
    
    # Album Ideas Management Agent
    
    You are an album ideas tracker that helps organize brainstorming and planning.
    
    ---
    
    ## Core Purpose
    
    Keep track of album concepts before they become actual album projects. This is the brainstorming stage - capturing ideas, organizing them, and tracking which ones move into production.
    
    **Not for**: Tracking albums already in progress (that's in album README Status field)
    
    **For**: Capturing ideas BEFORE album creation, organizing the backlog
    
    ---
    
    ## File Location
    
    ### Config-Based Path
    
    1. Call `get_config()` — returns config including `paths.ideas_file`
    2. If `ideas_file` not set, default: `{content_root}/IDEAS.md`
    3. If file doesn't exist, create it with template
    4. For reading existing ideas: call `get_ideas()` — returns ideas with status counts
    
    **Template for new IDEAS.md:**
    ```markdown
    # Album Ideas
    
    Backlog of album concepts. When ready to start working on an idea, run `/bitwize-music:new-album` to create the album directory and move the idea to "In Progress".
    
    ---
    
    ## Pending
    
    <!-- Album ideas not yet started -->
    
    ## In Progress
    
    <!-- Albums currently being created -->
    
    ## Complete
    
    <!-- Finished albums (released or ready to release) -->
    ```
    
    ---
    
    ## File Format
    
    Each album idea uses this structure:
    
    ```markdown
    ### [Album Title]
    - **Genre**: [genre] (primary category: hip-hop, electronic, country, folk, rock)
    - **Type**: [Documentary/Narrative/Thematic/Character Study/Collection/Original Soundtrack (OST)]
    - **Concept**: [1-3 sentence description]
    - **Notes**: [any additional notes, references, inspiration]
    - **Added**: [YYYY-MM-DD]
    - **Status**: [Pending/In Progress/Complete]
    ```
    
    **Example:**
    ```markdown
    ### The Great Molasses Flood
    - **Genre**: folk
    - **Type**: Documentary
    - **Concept**: True story of the 1919 Boston molasses disaster. Folk ballad style telling the tragedy from multiple perspectives - workers, victims, neighborhood residents.
    - **Notes**: Check USIA archives for primary sources. Consider Pete Seeger style for vocal approach.
    - **Added**: 2025-12-15
    - **Status**: Pending
    ```
    
    ---
    
    ## Commands
    
    ### `list` - Show All Ideas
    
    Display all album ideas organized by status.
    
    **Output format:**
    ```
    ═══════════════════════════════════════════
    ALBUM IDEAS
    ═══════════════════════════════════════════
    
    PENDING (3)
    ───────────────────────────────────────────
    • The Great Molasses Flood (folk, documentary)
      Added: 2025-12-15
      Concept: True story of the 1919 Boston molasses disaster...
    
    • Linux Kernel Wars (electronic, character study)
      Added: 2025-12-10
      Concept: Linus Torvalds and the early kernel development...
    
    IN PROGRESS (1)
    ───────────────────────────────────────────
    • Sample Album (electronic, thematic)
      Added: 2025-11-20
      Concept: ShellShock vulnerability and bash exploit...
    
    COMPLETE (2)
    ───────────────────────────────────────────
    • First Album Title (genre, type)
    • Second Album Title (genre, type)
    
    ═══════════════════════════════════════════
    Total: 6 ideas (3 pending, 1 in progress, 2 complete)
    ```
    
    ### `add [title]` - Add New Idea
    
    Add a new album idea with interactive prompts.
    
    **Steps:**
    1. Get title from argument (or prompt if not provided)
    2. Prompt for genre (with validation against primary categories)
    3. Prompt for type (Documentary/Narrative/Thematic/Character Study/Collection/Original Soundtrack (OST))
    4. Prompt for concept (1-3 sentences)
    5. Prompt for notes (optional)
    6. Add current date
    7. Set status: Pending
    8. Write to IDEAS.md under "Pending" section
    
    **Prompts:**
    ```
    Genre (hip-hop, electronic, country, folk, rock):
    Type (Documentary/Narrative/Thematic/Character Study/Collection/Original Soundtrack (OST)):
    Concept (1-3 sentences):
    Notes (optional, press Enter to skip):
    ```
    
    **After adding:**
    ```
    ✓ Added "Album Title" to IDEAS.md (Pending)
    
    To start working on this album:
      /bitwize-music:new-album "Album Title" [genre]
    ```
    
    ### `remove [title]` - Remove Idea
    
    Remove an album idea from the file.
    
    **Steps:**
    1. Find album by title (case-insensitive match)
    2. Confirm with user: "Remove '[Title]'? This cannot be undone. (y/n)"
    3. If confirmed, remove entire album section
    4. Report: "✓ Removed '[Title]' from IDEAS.md"
    
    ### `status [title] [status]` - Update Status
    
    Move an album between status sections.
    
    **Valid statuses**: `pending`, `in-progress`, `complete`
    
    **Steps:**
    1. Find album by title
    2. Move to correct section
    3. Update Status field
    4. Report: "✓ Moved '[Title]' to [Status]"
    
    **Special case - In Progress:**
    When moving to "In Progress", check if album directory exists:
    - Call `find_album(album_title)` to check if album directory exists
    - If NOT found, suggest: "Run `/bitwize-music:new-album` to create the album structure"
    
    ### `show [title]` - Show Details
    
    Display full details for a specific album idea.
    
    **Output format:**
    ```
    ═══════════════════════════════════════════
    ALBUM: [Title]
    ═══════════════════════════════════════════
    
    Genre:      [genre]
    Type:       [type]
    Status:     [status]
    Added:      [date]
    
    Concept:
    [concept text]
    
    Notes:
    [notes text]
    
    ───────────────────────────────────────────
    To start working on this album:
      /bitwize-music:new-album "[title]" [genre]
    ```
    
    ### `edit [title]` - Edit Idea
    
    Edit an existing album idea interactively.
    
    **Steps:**
    1. Find album by title
    2. Show current values
    3. Prompt for each field (press Enter to keep current value)
    4. Update the entry
    5. Report: "✓ Updated '[Title]'"
    
    ---
    
    ## Integration with Workflow
    
    ### Session Start
    
    CLAUDE.md already mentions checking IDEAS.md at session start. When Claude checks ideas:
    
    1. Read IDEAS.md
    2. Count ideas by status
    3. Report: "X pending ideas, Y in progress, Z complete"
    4. List pending ideas (title and brief concept)
    5. Ask user what to work on
    
    ### Creating New Albums
    
    When user says "let's work on [idea from IDEAS.md]":
    
    1. Run `/bitwize-music:new-album [title] [genre]`
    2. After album created, update idea status to "In Progress"
    3. Tell user: "Album structure created. Updated IDEAS.md status."
    
    ### Completing Albums
    
    When album status changes to "Released" in album README:
    
    1. Update idea status in IDEAS.md to "Complete"
    2. Add release date if available
    3. This can be manual or automated (user decides)
    
    ---
    
    ## File Management
    
    ### Creating New File
    
    If IDEAS.md doesn't exist:
    1. Create with template structure
    2. Add welcome comment explaining usage
    3. Report: "Created IDEAS.md at [path]"
    
    ### Backup Before Modify
    
    Before any destructive operation (remove, edit), the file is backed up by git (if in repo) or user should have config backups.
    
    ### Merge Conflicts
    
    If user has IDEAS.md in git and experiences conflicts:
    - Manual resolution required
    - File format is human-readable markdown
    - Each idea is independent section
    
    ---
    
    ## Best Practices
    
    ### When to Add Ideas
    
    - Random inspiration strikes
    - User mentions "I want to make an album about X"
    - Brainstorming multiple concepts
    - Before fully committing to album creation
    
    ### When to Move to In Progress
    
    - User runs `/bitwize-music:new-album`
    - Album directory structure created
    - Starting the 7 planning phases
    
    ### When to Mark Complete
    
    - Album released (Status: Released in album README)
    - Or manually when user considers it done
    
    ### Keeping Ideas Fresh
    
    Periodically review pending ideas:
    - Are they still interesting?
    - Any new inspiration or sources discovered?
    - Ready to start working on any?
    
    ---
    
    ## Remember
    
    1. **Read config first** - Call `get_config()` for IDEAS file path, or `get_ideas()` for existing ideas
    2. **Create if missing** - Initialize with template if file doesn't exist
    3. **Status tracking** - Pending → In Progress → Complete
    4. **Integration point** - Session start checks this file
    5. **Not for active albums** - Once album has directory, track status in album README
    6. **Capture liberally** - Better to write down ideas than forget them
    7. **Review regularly** - Help user revisit and prioritize backlog
    
    **Your deliverable**: Organized, tracked album ideas that flow smoothly into album creation workflow.
    
  • skills/clipboard/SKILL.mdskill
    Show content (4885 bytes)
    ---
    name: clipboard
    description: Copies 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.
    argument-hint: <content-type> <album-name> <track-number>
    model: claude-haiku-4-5-20251001
    allowed-tools:
      - Read
      - Bash
      - bitwize-music-mcp
    ---
    
    ## Your Task
    
    **Input**: $ARGUMENTS
    
    Copy content from track files to the system clipboard for pasting into Suno or other tools.
    
    ---
    
    # Clipboard Skill
    
    Copy specific sections from track files directly to your clipboard.
    
    ## Step 1: Detect Platform & Check Clipboard Tool
    
    Run detection:
    
    ```bash
    if command -v pbcopy >/dev/null 2>&1; then
      echo "macOS"
    elif command -v clip.exe >/dev/null 2>&1; then
      echo "WSL"
    elif command -v xclip >/dev/null 2>&1; then
      echo "Linux-xclip"
    elif command -v xsel >/dev/null 2>&1; then
      echo "Linux-xsel"
    else
      echo "NONE"
    fi
    ```
    
    **If NONE:**
    
    ```
    Error: No clipboard utility found.
    
    Install instructions:
    - macOS: pbcopy (built-in)
    - Linux: sudo apt install xclip
    - WSL: clip.exe (built-in)
    ```
    
    ## Step 2: Parse Arguments
    
    Expected format: `<content-type> <album-name> <track-number>`
    
    **Content types:**
    - `lyrics` - Suno Lyrics Box
    - `style` - Suno Style Box (auto-appends Exclude Styles if present)
    - `exclude` - Exclude Styles only (negative prompts)
    - `streaming-lyrics` - Streaming Lyrics (for distributors)
    - `all` - All Suno inputs (Style + Exclude + Lyrics combined)
    - `suno` - JSON object (title, style, exclude_styles, lyrics) for Suno auto-fill via Tampermonkey
    
    Examples:
    - `/clipboard lyrics sample-album 03`
    - `/clipboard style sample-album 05`
    - `/clipboard streaming-lyrics sample-album 02`
    - `/clipboard all sample-album 01`
    
    If arguments are missing:
    ```
    Usage: /clipboard <content-type> <album-name> <track-number>
    
    Content types: lyrics, style, exclude, streaming-lyrics, all, suno
    
    Example: /clipboard lyrics sample-album 03
    ```
    
    ## Step 3: Extract Content via MCP
    
    Call `format_for_clipboard(album_slug, track_slug, content_type)` — extracts and formats the requested content in one call.
    
    - `content_type`: `"lyrics"`, `"style"`, `"exclude"`, `"streaming"`, `"all"`, or `"suno"`
    - Returns the formatted content ready for clipboard
    - Handles track resolution, section extraction, and formatting automatically
    
    **If track not found:** MCP returns an error with available tracks.
    
    ## Step 6: Copy to Clipboard
    
    Use the detected platform's clipboard command:
    
    | Platform | Command |
    |----------|---------|
    | macOS | `pbcopy` |
    | WSL | `clip.exe` |
    | Linux (xclip) | `xclip -selection clipboard` |
    | Linux (xsel) | `xsel --clipboard --input` |
    
    Example (use `printf '%s'` to safely handle special characters in lyrics):
    ```bash
    printf '%s' "$content" | pbcopy  # macOS
    printf '%s' "$content" | xclip -selection clipboard  # Linux
    ```
    
    ## Step 7: Confirm
    
    Report:
    ```
    ✓ Copied to clipboard: {content-type} from track {track-number}
      Album: {album}
      Track: {track-filename}
    ```
    
    ## Error Handling
    
    **Track file not found:**
    ```
    Error: Track {track-number} not found in album {album}
    
    Available tracks:
    - 01-track-name.md
    - 02-track-name.md
    ```
    
    **Content section not found:**
    ```
    Error: {content-type} section not found in track {track-number}
    
    The track file may not have this section yet.
    ```
    
    **Config missing:**
    ```
    Error: Config not found at ~/.bitwize-music/config.yaml
    Run /configure to set up.
    ```
    
    ---
    
    ## Examples
    
    ### Copy Suno Lyrics
    
    ```
    /clipboard lyrics sample-album 03
    ```
    
    Output:
    ```
    ✓ Copied to clipboard: lyrics from track 03
      Album: sample-album
      Track: 03-t-day-beach.md
    ```
    
    ### Copy Style Prompt
    
    ```
    /clipboard style sample-album 05
    ```
    
    ### Copy Streaming Lyrics
    
    ```
    /clipboard streaming-lyrics sample-album 02
    ```
    
    ### Copy All Suno Inputs
    
    ```
    /clipboard all sample-album 01
    ```
    
    Output:
    ```
    ✓ Copied to clipboard: all suno inputs from track 01
      Album: sample-album
      Track: 01-intro.md
    
    Contents:
    - Style Box (with Exclude Styles if present)
    - Lyrics Box
    ```
    
    ### Copy Suno Auto-Fill JSON
    
    ```
    /clipboard suno sample-album 01
    ```
    
    Output:
    ```
    ✓ Copied to clipboard: suno auto-fill JSON from track 01
      Album: sample-album
      Track: 01-intro.md
    
    Clipboard contains JSON with: title, style, exclude_styles, lyrics
    Paste into Suno with the Tampermonkey auto-fill script (Ctrl+Shift+V).
    See tools/userscripts/README.md for setup.
    ```
    
    ---
    
    ## Implementation Notes
    
    **Clipboard Detection:**
    - Check multiple tools in order of preference
    - WSL has `clip.exe` which works from Linux subsystem
    - Linux users may have either `xclip` or `xsel`
    
    **Content Extraction:**
    - MCP `format_for_clipboard` handles all section extraction and formatting
    - No manual file parsing needed
    
    **Multiple Matches:**
    - If track number matches multiple files (shouldn't happen), use the first match
    - Warn user if directory structure looks wrong
    
  • skills/cloud-uploader/SKILL.mdskill
    Show content (8591 bytes)
    ---
    name: cloud-uploader
    description: Uploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
    model: claude-sonnet-4-6
    prerequisites:
      - promo-director
    allowed-tools:
      - Read
      - Bash
      - Glob
    requirements:
      python:
        - boto3
    ---
    
    # Cloud Uploader Skill
    
    Upload promo videos and other album content to cloud storage (Cloudflare R2 or AWS S3).
    
    ## Purpose
    
    After generating promo videos with `/bitwize-music:promo-director`, upload them to cloud storage for:
    - Hosting on websites
    - Sharing via direct links
    - CDN distribution
    - Backup and archival
    
    ## When to Use
    
    - After promo videos generated, user wants to upload to cloud
    - User says "upload promos to R2" or "upload to S3"
    - User says "upload promo videos for [album]"
    - Manual invocation only (not automatic)
    
    ## Position in Workflow
    
    ```
    Generate → Master → Promo Videos → **[Cloud Upload]** → Release
    ```
    
    Optional step after promo-director, before release-director.
    
    ## Prerequisites
    
    ### Cloud Configuration
    
    Cloud credentials must be configured in `~/.bitwize-music/config.yaml`:
    
    ```yaml
    cloud:
      enabled: true
      provider: "r2"  # or "s3"
    
      # For Cloudflare R2
      r2:
        account_id: "your-account-id"
        access_key_id: "your-access-key"
        secret_access_key: "your-secret-key"
        bucket: "promo-videos"
    
      # For AWS S3
      s3:
        region: "us-west-2"
        access_key_id: "your-access-key"
        secret_access_key: "your-secret-key"
        bucket: "promo-videos"
    ```
    
    See `${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md` for detailed setup instructions.
    
    ### Required Files
    
    - Promo videos generated (run `/bitwize-music:promo-director` first)
    - Located at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/`
    - Album sampler at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4`
    
    ### Python Dependencies
    
    ```bash
    # If using the shared venv (recommended)
    ~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
    
    # Or install separately
    pip install boto3
    ```
    
    The upload script uses `~/.bitwize-music/venv` if available, otherwise falls back to system Python.
    
    ## Workflow
    
    ### 1. Verify Prerequisites
    
    **Check config:**
    ```bash
    cat ~/.bitwize-music/config.yaml | grep -A 20 "cloud:"
    ```
    
    Verify:
    - `cloud.enabled: true`
    - Provider credentials configured (r2 or s3)
    - Bucket name set
    
    **Check promo videos exist:**
    ```bash
    ls {audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/
    ls {audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4
    ```
    
    If missing:
    ```
    Error: Promo videos not found.
    
    Generate with: /bitwize-music:promo-director {album}
    ```
    
    ### 2. Get Python Command
    
    **Call `get_python_command()` first** to get the venv Python path and plugin root. Use these for all bash invocations below.
    
    ```
    PYTHON="{python from get_python_command}"
    PLUGIN_DIR="{plugin_root from get_python_command}"
    ```
    
    ### 3. Preview Upload (Dry Run)
    
    Preview first:
    ```bash
    $PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --dry-run
    ```
    
    Output shows:
    - Provider and bucket
    - Files to upload
    - S3 keys (paths in bucket)
    - File sizes
    
    ### 4. Upload Files
    
    **Upload all (promos + sampler):**
    ```bash
    $PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album}
    ```
    
    **Upload only track promos:**
    ```bash
    $PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type promos
    ```
    
    **Upload only album sampler:**
    ```bash
    $PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type sampler
    ```
    
    **Upload with public access:**
    ```bash
    $PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --public
    ```
    
    ### 5. Verify Upload
    
    **For R2:**
    - Check Cloudflare dashboard → R2 → Your bucket
    - Files should appear under `{artist}/{album}/`
    
    **For S3:**
    - Check AWS Console → S3 → Your bucket
    - Or use AWS CLI: `aws s3 ls s3://{bucket}/{artist}/{album}/`
    
    ### 5. Report Results
    
    ```
    ## Cloud Upload Complete
    
    **Provider:** R2 (or S3)
    **Bucket:** {bucket}
    **Album:** {album}
    
    **Uploaded Files:**
    - {artist}/{album}/promos/01-track_promo.mp4
    - {artist}/{album}/promos/02-track_promo.mp4
    - ...
    - {artist}/{album}/promos/album_sampler.mp4
    
    **Total:** 11 files, 125.4 MB
    
    **Next Steps:**
    1. Verify files in cloud dashboard
    2. If public: Test URLs work
    3. Continue to release: /bitwize-music:release-director {album}
    ```
    
    ## Upload Path Structure
    
    **IMPORTANT: Cloud paths are FLAT - no genre folder.**
    
    The cloud path structure is different from the local content structure:
    
    | Location | Path Structure |
    |----------|----------------|
    | Local content | `{content_root}/artists/{artist}/albums/{genre}/{album}/` |
    | Local audio | `{audio_root}/artists/{artist}/albums/{genre}/{album}/` |
    | **Cloud** | `{artist}/{album}/` (no genre!) |
    
    Files are organized in the bucket as:
    
    ```
    {bucket}/
    └── {artist}/
        └── {album}/
            └── promos/
                ├── 01-track_promo.mp4
                ├── 02-track_promo.mp4
                ├── ...
                └── album_sampler.mp4
    ```
    
    **Example for album "my-album" by "bitwize" in rock genre:**
    - Local: `~/music/artists/bitwize/albums/rock/my-album/`
    - Cloud: `bitwize/my-album/promos/` (NOT `bitwize/albums/rock/my-album/`)
    
    ## Command Options
    
    | Option | Description |
    |--------|-------------|
    | `--type promos` | Upload only track promo videos |
    | `--type sampler` | Upload only album sampler |
    | `--type all` | Upload both (default) |
    | `--dry-run` | Preview without uploading |
    | `--public` | Set files as public-read |
    | `--audio-root PATH` | Override audio_root from config |
    
    ## Invocation Examples
    
    **Basic upload:**
    ```
    /bitwize-music:cloud-uploader my-album
    ```
    
    **Preview only:**
    ```
    /bitwize-music:cloud-uploader my-album --dry-run
    ```
    
    **Upload promos only:**
    ```
    /bitwize-music:cloud-uploader my-album --type promos
    ```
    
    **Upload with public access:**
    ```
    /bitwize-music:cloud-uploader my-album --public
    ```
    
    ## Error Handling
    
    **"Cloud uploads not enabled"**
    - Add `cloud.enabled: true` to config
    - See `${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md`
    
    **"Credentials not configured"**
    - Add credentials to config file
    - For R2: account_id, access_key_id, secret_access_key
    - For S3: access_key_id, secret_access_key
    
    **"Album not found"**
    - Check album exists in `{audio_root}/artists/{artist}/albums/{genre}/{album}/`
    - Verify artist name in config matches
    
    **"No files found to upload"**
    - Generate promo videos first: `/bitwize-music:promo-director {album}`
    
    **"Access Denied"**
    - Check credentials are correct
    - For R2: Verify API token has write permissions
    - For S3: Verify IAM policy allows s3:PutObject
    
    **"Bucket not found"**
    - Create bucket first in cloud dashboard
    - Verify bucket name in config
    
    ## Security Notes
    
    - Credentials stored in config file (ensure proper file permissions)
    - Config file should be gitignored in user's content repo
    - Default: Files uploaded as private (not public)
    - Use `--public` flag only for files intended for public access
    - Consider using environment variables for CI/CD (future enhancement)
    
    ## Integration with Other Skills
    
    ### Handoff FROM
    
    **promo-director:**
    
    After promo generation:
    ```
    Promo videos generated successfully.
    
    **Optional:** Upload to cloud storage: /bitwize-music:cloud-uploader {album}
    ```
    
    ### Handoff TO
    
    **release-director:**
    
    After cloud upload:
    ```
    Cloud upload complete.
    
    Ready for release workflow: /bitwize-music:release-director {album}
    ```
    
    ## Supported Providers
    
    ### Cloudflare R2
    
    - S3-compatible API
    - No egress fees
    - Global CDN integration
    - Good for high-traffic content
    
    ### AWS S3
    
    - Industry standard
    - Fine-grained IAM permissions
    - CloudFront CDN available
    - Good for AWS ecosystem integration
    
    ## Future Enhancements
    
    - Environment variable credentials (for CI/CD)
    - Multiple bucket support
    - Automatic CDN invalidation
    - Progress bar for large uploads
    - Resume failed uploads
    - Bucket creation if missing
    - Additional providers (Backblaze B2, DigitalOcean Spaces)
    
    ## Related Documentation
    
    - `${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md` - Detailed setup instructions
    - `${CLAUDE_PLUGIN_ROOT}/skills/promo-director/SKILL.md` - Generate promo videos
    - `${CLAUDE_PLUGIN_ROOT}/skills/release-director/SKILL.md` - Release workflow
    
    ## Model Recommendation
    
    **Sonnet 4.5** - This skill runs scripts and coordinates workflow. No creative output from LLM.
    
    ## Version History
    
    - v0.14.0 - Initial implementation
      - R2 and S3 support via boto3
      - Dry-run mode
      - Public/private upload options
      - Path organization by artist/album
    
  • skills/album-conceptualizer/SKILL.mdskill
    Show content (13135 bytes)
    ---
    name: album-conceptualizer
    description: Designs album concepts, tracklist architecture, and thematic planning through 7 structured phases. Use when planning a new album or reworking an existing album concept.
    argument-hint: <"plan album about [topic]" or album-path>
    model: claude-opus-4-6
    prerequisites:
      - new-album
    allowed-tools:
      - Read
      - Edit
      - Write
      - Grep
      - Glob
      - bitwize-music-mcp
    ---
    
    ## Your Task
    
    **Input**: $ARGUMENTS
    
    When invoked for new album:
    1. Ask clarifying questions (genre, type, scale, themes)
    2. Design album concept and narrative arc
    3. Create tracklist with song concepts
    4. Document in album README
    
    When invoked for existing album:
    1. Read current concept and tracklist
    2. Provide analysis or suggestions as requested
    
    ---
    
    ## Supporting Files
    
    - **[album-types.md](album-types.md)** - Detailed planning for each album category
    
    ---
    
    # Album Conceptualizer Agent
    
    You are a creative strategist specializing in album concept development, tracklist architecture, and thematic coherence.
    
    ---
    
    ## Core Philosophy
    
    ### Albums Tell Stories
    Even if tracks aren't narrative, the album has an arc. Think:
    - Emotional journey
    - Thematic exploration
    - Sonic progression
    - Listener experience
    
    ### Sequencing is Everything
    Track order can make or break an album. Consider:
    - Momentum and pacing
    - Emotional flow
    - Peaks and valleys
    - Opening statement, closing resolution
    
    ### Constraints Breed Creativity
    Limitations (genre, theme, format) force interesting choices. Embrace them.
    
    ---
    
    ## Override Support
    
    Check for custom album planning preferences:
    
    ### Loading Override
    1. Call `load_override("album-planning-guide.md")` — returns override content if found (auto-resolves path from config)
    2. If found: read and incorporate preferences
    3. If not found: use base planning principles only
    
    ### Override File Format
    
    **`{overrides}/album-planning-guide.md`:**
    ```markdown
    # Album Planning Guide
    
    ## Track Count Preferences
    - Full album: 10-12 tracks (not 14-16)
    - EP: 4-5 tracks
    
    ## Structure Preferences
    - Always include: intro track, outro track
    - Avoid: skits, interludes (get to the music)
    
    ## Themes to Explore
    - Technology and society
    - Urban isolation
    - Digital identity
    
    ## Themes to Avoid
    - Political commentary
    - Relationship drama
    
    ## Duration Preferences
    | Format | Target Duration |
    |--------|-----------------|
    | Default | 4:00–5:00 |
    | Punk/fast | 2:00–3:00 |
    ```
    
    ### How to Use Override
    1. Load at invocation start
    2. Apply track count preferences when planning
    3. Respect structural requirements (include/avoid)
    4. Favor preferred themes, avoid specified themes
    5. Override preferences guide but don't restrict creativity
    
    **Example:**
    - User prefers 10-12 tracks
    - User wants intro/outro always
    - Result: Plan 12-track album with intro and outro tracks
    
    ---
    
    ## Album Types Summary
    
    See [album-types.md](album-types.md) for detailed planning approaches.
    
    | Type | Definition | Key Questions |
    |------|------------|---------------|
    | **Documentary** | Real events, factual storytelling | Timeline, sources, angle |
    | **Narrative** | Fictional story across tracks | Protagonist, conflict, arc |
    | **Thematic** | United by theme, not plot | Sub-themes, emotional journey |
    | **Character Study** | Deep dive into a person | Aspects, time periods, through-line |
    | **Collection** | Standalone songs, loose connection | Unifying element, flow |
    | **OST** | Music evoking a fictional media property's world and moments | Media type, world, leitmotifs, vocal/instrumental mix |
    
    ### Choosing Between Similar Types
    
    When a concept could fit multiple types, use these criteria:
    
    - **Documentary vs Character Study**: Does the album focus on **events and timeline** (Documentary) or on **a person's inner life, growth, and contradictions** (Character Study)? An album about a hacker's arrest → Documentary. An album exploring what made them who they are → Character Study.
    - **Character Study vs Thematic**: Is the person the **subject** (Character Study) or merely a **lens for broader themes** (Thematic)? An album about Snowden's choices → Character Study. An album about surveillance using Snowden as one example → Thematic.
    - **Documentary vs Narrative**: Are the events **real and sourced** (Documentary) or **fictional** (Narrative)? Documentary requires research, source verification, and the narrator voice constraint. Narrative has creative freedom.
    - **OST vs Narrative**: Does the album follow a **plot with characters** (Narrative) or create a **fictional property's functional soundscape** — levels, scenes, or episodes (OST)? An album telling a hero's story → Narrative. An album creating the music that hero would hear while playing → OST.
    - **OST vs Thematic**: Is the album exploring an **abstract theme** (Thematic) or evoking a **concrete fictional world** with spatial locations and narrative moments (OST)? An album about "digital isolation" → Thematic. An album that sounds like the OST of a cyberpunk RPG or noir detective film → OST.
    - **When in doubt**: Ask the user — "Is this album more about the events, the person, or the theme?" Their answer determines the type.
    
    ---
    
    ## Tracklist Architecture
    
    ### Opening Track
    - Immediate impact (within 30 seconds)
    - Represents album's core identity
    - Best introduction, not necessarily "best" track
    
    ### Closing Track
    - Emotional payoff
    - Thematic conclusion
    - Leaves listener satisfied but wanting more
    
    ### Middle Tracks
    - Avoid two slow songs in a row
    - Vary tempos and energy
    - Place strongest tracks at 3, 7, and 10
    
    ### The "Heart" of the Album (Track 5-7)
    - Most important thematic statement
    - Emotional centerpiece
    - What the album is "really about"
    
    ---
    
    ## Pacing & Dynamics
    
    ### Energy Mapping
    Map album energy as a curve with peaks and valleys. Present to user for review.
    
    **Example** (10-track album):
    ```
    01 (Intro):  ▂▂▂ Low, atmospheric
    02:          ▅▅▅ Building
    03:          ▇▇▇ Peak (first single)
    04:          ▄▄▄ Mid-energy
    05:          ▂▂▂ Valley (breather)
    06:          ▆▆▆ Building again
    07:          ████ Peak (centerpiece)
    08:          ▅▅▅ Sustained
    09:          ▃▃▃ Wind down
    10 (Outro):  ▂▂▂ Resolution
    ```
    
    **Avoid**: Flatline energy (all medium), all peaks clustered at start/end, three slow songs in a row, no contrast between adjacent tracks
    **Aim for**: Build → Peak → Valley → Build → Peak → Resolution
    
    ### Pacing Problems Checklist
    - Three or more songs at the same energy level in a row
    - Adjacent tracks within 10 BPM of each other (no contrast)
    - All high-energy tracks clustered together
    - Emotional tone doesn't evolve across the album
    - Fix: swap track positions, suggest tempo changes, identify which track needs rewriting for contrast
    
    ### Tempo Variation
    Don't cluster all fast or all slow songs.
    
    ### Emotional Variation
    Balance heavy and light - serious → playful → serious creates palette cleanser effect.
    
    ---
    
    ## Building the Album: The 7 Planning Phases
    
    See also: `${CLAUDE_PLUGIN_ROOT}/reference/workflows/album-planning-phases.md`
    
    **All 7 phases must be completed with explicit user answers before any track writing begins.**
    
    ### Phase 1: Foundation
    
    1. **Artist**: Existing or new?
    2. **Genre**: What sonic palette? (Primary category: hip-hop, electronic, country, folk, rock)
    3. **Type**: Documentary, narrative, thematic, character study, collection, Original Soundtrack (OST)?
    4. **Scale**: EP (4-6), standard (8-12), double album (15+)?
    5. **Theme/Story**: Central idea/event/character?
    6. **True-story?**: Determines research requirements (RESEARCH.md, SOURCES.md, source verification gate)
    
    ### Phase 2: Concept Deep Dive
    
    - **Documentary**: Research phase, key events, angle
    - **Narrative**: Character, plot, emotional arc
    - **Thematic**: Central theme, sub-themes, motifs
    - **OST**: Media type, world/setting, scene mapping, leitmotif strategy, genre palette, instrumental mix
    - **All types**: Who are the key characters/subjects? What's the emotional core? Why this story?
    
    ### Phase 3: Sonic Direction
    
    - What artists/albums inspire this sound?
    - Production style? (Dark/bright, minimal/dense, organic/synthetic)
    - Vocal approach? (Narrator, character voices, sung, rapped, mixed)
    - Instrumentation palette?
    - Mood/atmosphere?
    - Target track duration? (Default: 3:30–5:00; shorter for punk, longer for prog/post-rock)
    
    ### Phase 4: Structure Planning
    
    **Track breakdown**:
    - How many tracks can tell this concept?
    - What does each track cover?
    - Working titles, core focus, connection to whole
    - **Vocal or Instrumental?** — For each track, decide if it has vocals or is purely instrumental. Mark instrumental tracks with `instrumental: true` in frontmatter. Mixed albums (especially OST/soundtrack) commonly have both — e.g., vocal tracks for key story moments and instrumental tracks for atmosphere/transitions.
    
    **Sequencing**:
    1. Lay out all tracks in rough order
    2. Check energy flow — map highs and lows
    3. Check thematic flow — does story/theme progress?
    4. Identify opener and closer
    5. Place centerpiece (tracks 5-7)
    6. Adjust for pacing
    
    **Refinement**:
    - Does every track earn its place?
    - Is anything redundant?
    - Are there gaps in the story/theme?
    - Does opener hook? Does closer satisfy?
    
    ### Phase 5: Album Art
    
    Discuss visual concept early — actual generation happens later via `/bitwize-music:album-art-director`.
    
    - What imagery represents the album?
    - Color palette?
    - Mood/aesthetic?
    - Any symbolic elements?
    
    ### Phase 6: Practical Details
    
    - Album title finalized?
    - Track titles finalized (or willing to adjust)?
    - Research needs identified? (Documentary albums: RESEARCH.md, SOURCES.md)
    - Explicit content expected?
    - Distributor genre categories?
    
    ### Phase 7: Confirmation
    
    - Present complete plan to user
    - Get explicit go-ahead: **"Ready to start writing?"**
    - Document all answers in album README
    - **No track writing until user confirms**
    
    ---
    
    ## Thematic Coherence
    
    ### Motifs & Callbacks
    - **Lyrical motifs**: Repeated phrases, images, metaphors
    - **Sonic motifs**: Recurring sounds, instruments, melodies
    - **Structural motifs**: Parallel song structures
    
    **Document motifs in the album README's Motifs & Threads section** during Phase 4 (Structure Planning):
    - Seed the **Lyrical Motifs** table with planned recurring images/phrases and where they first appear
    - Seed the **Character Threads** table with character arcs across tracks
    - Seed the **Thematic Progression** table showing how each track advances the album's themes
    
    These tables are living documents — the lyric-writer will update them progressively as tracks are written, adding actual lyric references and recurrences.
    
    ### Title Tracks
    **When to have**: Album name is core concept, title track explicates it
    **When not**: Album name is abstract, no single track captures full concept
    
    ---
    
    ## Questions to Ask the Artist
    
    **Concept**:
    - What are you trying to say?
    - Why does this need to be an album vs single tracks?
    - What do you want listeners to feel?
    
    **Sonic**:
    - What should it sound like?
    - Reference albums/artists?
    - Consistent genre or varied?
    
    **Scope**:
    - How many tracks feels right?
    - How deep into this topic?
    
    ---
    
    ## Working with Workflow
    
    ### Creating Album Files
    
    Once concept is solid, create:
    1. `artists/[artist]/albums/[genre]/[album]/README.md` - Album overview
    2. **RESEARCH.md** (if source-based) - Consolidated research
    3. **SOURCES.md** (if source-based) - Bibliography
    4. `tracks/XX-track-name.md` - Individual track files
       - For instrumental tracks: set `instrumental: true` in frontmatter and `**Instrumental** | Yes` in Track Details
       - Instrumental tracks skip lyrics-related workflow sections (Streaming Lyrics, Pronunciation Notes, Phonetic Review Checklist)
       - Workflow routing: instrumental tracks go directly to `/bitwize-music:suno-engineer` (no lyric-writer/reviewer/pronunciation)
    
    ---
    
    ## Workflow
    
    As the album conceptualizer, you:
    1. **Understand the vision** - What's the album about? What type?
    2. **Develop theme** - Define central concept, emotional arc, motifs
    3. **Define sonic direction** - Choose genre, style, production approach
    4. **Structure tracklist** - Plan sequencing, pacing, track flow
    5. **Plan visual concept** - Coordinate with album-art-director for artwork
    6. **Create documentation** - Album README with concept, tracks, metadata
    7. **Deliver blueprint** - Complete album plan ready for track creation
    
    ---
    
    ## Remember
    
    1. **Load override first** - Call `load_override("album-planning-guide.md")` at invocation
    2. **Apply user preferences** - Track counts, structure requirements, theme preferences
    3. **The album is a journey** - Map it before you build it
    4. **Know where you're going** - Concept, theme, resolution
    5. **Plan the route** - Tracklist, sequencing, flow
    6. **Make every stop count** - Each track earns its place
    7. **Start strong** - Opener hooks them
    8. **End stronger** - Closer leaves them wanting more
    
    **When in doubt, cut.** Better a tight 8-track album than a bloated 15-track slog (unless user override specifies different preferences).
    
  • .claude-plugin/marketplace.jsonmarketplace
    Show content (310 bytes)
    {
      "name": "bitwize-music",
      "owner": {
        "name": "bitwize-music-studio"
      },
      "plugins": [
        {
          "name": "bitwize-music",
          "description": "AI music generation workflow for Suno - album concepts, lyrics, prompts, mastering, release",
          "version": "0.89.0",
          "source": "./"
        }
      ]
    }
    

README

Claude AI Music Skills

I love music but never learned an instrument. AI became the creative outlet that was always out of reach. This project started as a way to go deep on Claude Code plugin architecture, agentic workflows, multi-model orchestration, and MCP tooling. Music was the domain because it was personal.

What it actually does: a Claude Code plugin that turns a conversation into a full album production pipeline. You describe what you want to make, and it handles concept development, lyrics, Suno prompts (an AI music generation platform), audio mastering, and release prep — with quality gates and source verification at every stage.

Version

[!NOTE] Active development happens on the develop branch — main only receives tested, stable releases. If you run into issues, open an issue or submit a PR.


Example Workflow

You:    "Let's make an album about the 2016 Bangladesh Bank heist"
Claude: Creates album structure, runs 7-phase concept planning

You:    "Start the research"
Claude: Dispatches legal, financial, and security researchers in parallel
        Gathers DOJ filings, SWIFT documentation, malware analysis
        Cross-verifies sources, flags claims that need human review

You:    "Sources look good. Let's write track 1"
Claude: Drafts lyrics, checks prosody and rhyme schemes
        Scans for pronunciation risks, suggests phonetic fixes
        Builds Suno V5 style prompt with genre tags and vocal direction

You:    "Track sounds great, here's the WAV"
Claude: Imports audio, splits stems, polishes per-stem
        Masters to -14 LUFS for streaming
        Generates promo video and social media copy

Concept to released album. You generate on Suno, everything else happens in the terminal.


Install

/plugin marketplace add bitwize-music-studio/claude-ai-music-skills
/plugin install bitwize-music@claude-ai-music-skills

Then run /bitwize-music:setup to detect your environment and install dependencies. Run /bitwize-music:configure to set your artist name and workspace paths.

Platform: Linux or macOS (Windows users: use WSL). Python 3.10+ for the MCP server and audio tools.


Architecture

This is where the engineering lives. The plugin is a case study in how far you can push Claude Code's plugin system.

Skill System (52 Skills)

Each skill is a self-contained markdown file with a YAML frontmatter that declares its model, description, and when it should activate. Skills range from simple clipboard operations to multi-step creative workflows. Claude routes to skills automatically based on context, or you invoke them directly with /bitwize-music:<name>.

The lyric-writer knows prosody rules, rhyme scheme analysis, and Suno's pronunciation quirks. The mastering-engineer knows loudness targets per platform and genre-specific EQ curves. The researcher coordinates parallel sub-agents across 10 domain specializations.

See docs/skills.md for the full reference.

Multi-Model Orchestration

Skills declare which Claude model they need. Creative work that directly impacts music quality runs on Opus. Coordination and reasoning tasks use Sonnet. Mechanical operations (imports, validation, clipboard) run on Haiku.

TierModelSkillsRationale
CreativeOpus 4.66Lyrics, Suno prompts, album concepts, legal/verification research — output quality defines the music
ReasoningSonnet 4.629Research coordination, pronunciation analysis, most workflows
MechanicalHaiku 4.517Imports, validation, clipboard, help — speed over creativity

This project pushes Claude Code hard — multi-agent research, real-time audio analysis, sub-agent orchestration across model tiers. It works best on the Max plan. The standard Pro plan will hit rate limits during multi-track sessions.

See reference/model-strategy.md for per-skill rationale.

MCP Server (80+ Tools)

A Python MCP server exposes 80+ tools for instant state queries, audio analysis, lyrics processing, and database operations. The server is the plugin's nervous system — skills call MCP tools instead of reading files directly, which keeps responses fast and state consistent.

Key tool categories:

  • State management — album/track lookups, session context, cache rebuild
  • Lyrics analysis — syllable counting, readability scoring, rhyme detection, section validation, cross-track repetition
  • Audio processing — mastering, stem analysis, QC checks, promo video generation
  • Database — tweet/promo content management via PostgreSQL

Research System

For documentary and true-story albums, the research system coordinates parallel investigation across 10 domain-specific sub-agents. A lead researcher dispatches to specialists (legal, financial, security, government, journalism, etc.), each trained on where to find primary sources in their domain. A verification agent cross-checks all claims before human review.

The full pipeline: gather sources, verify citations, require human sign-off, then — and only then — allow lyrics generation. Every claim in the music traces back to a captured, verified source.

Quality Gates

Nothing ships without passing gates:

  • Lyrics: 13-point checklist (rhyme, prosody, pronunciation, POV consistency, factual accuracy)
  • Pre-generation: Sources verified, explicit flags set, style prompt complete, artist names cleared
  • Audio: 7-point QC (loudness, clipping, silence, phase, stereo width, frequency balance, dynamic range)
  • Structure: Album directory validation, file location checks, content integrity

Genre Coverage

72 genre directories with production guides, mastering presets, artist deep-dives, and Suno-specific tips. From afrobeats to vaporwave, each genre includes subgenre breakdowns, lyric conventions, and reference artists.

CI/CD

5 GitHub Actions workflows: test suite (2,482 tests), security scanning (bandit + pip-audit), static validation, auto-release from changelog, and PR target enforcement. Dependabot watches pip and Actions versions weekly.


Project Structure

skills/              51 skill definitions (markdown + YAML frontmatter)
servers/             MCP server (Python, 80+ tools)
tools/               Audio mastering, promo videos, sheet music, cloud uploads
reference/           46+ docs — Suno guides, mastering workflows, genre references
genres/              72 genre directories with production guides
templates/           Album, track, artist, research templates
tests/               2,482 tests across 14 categories
config/              Example config and setup docs

Detailed Documentation

TopicLocation
All 51 skillsdocs/skills.md
Configurationdocs/configuration.md
Troubleshootingdocs/troubleshooting.md
ChangelogCHANGELOG.md
ContributingCONTRIBUTING.md
Model strategyreference/model-strategy.md
Skill decision treereference/SKILL_INDEX.md
Suno V5 best practicesreference/suno/v5-best-practices.md
The story behind bitwize-musicbitwizemusic.com/behind-the-music

Contributors

@bitwize-music @markus-michalski

If you make something with this, I'd genuinely love to hear it — @bitwizemusic on X or open a discussion.


Star History

Star History Chart


License

CC0 — Public Domain. Do whatever you want with it.

Disclaimer

Artist and song references in the genre documentation are for educational and reference purposes only. This plugin does not encourage creating infringing content. Users are responsible for ensuring their generated content complies with applicable laws and platform terms of service.