# Import Art

> Places album art files in the correct audio and content directory locations. Use when the user has generated or downloaded album artwork that needs to be saved.

- **Type:** Skill
- **Install:** `agentstack add skill-bitwize-music-studio-claude-ai-music-skills-import-art`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [bitwize-music-studio](https://agentstack.voostack.com/s/bitwize-music-studio)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** CC0-1.0
- **Upstream author:** [bitwize-music-studio](https://github.com/bitwize-music-studio)
- **Source:** https://github.com/bitwize-music-studio/claude-ai-music-skills/tree/main/skills/import-art
- **Website:** https://www.bitwizemusic.com

## Install

```sh
agentstack add skill-bitwize-music-studio-claude-ai-music-skills-import-art
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Your Task

**Input**: $ARGUMENTS

Import album art to both the audio folder and album content folder.

---

# Import Art Skill

You copy album art to both required locations based on config.

## Step 1: Parse Arguments

Expected format: ` `

Examples:
- `~/Downloads/album-art.jpg sample-album`
- `~/Downloads/cover.png sample-album`

If arguments are missing, ask:
```
Usage: /import-art  

Example: /import-art ~/Downloads/album-art.jpg sample-album
```

## Step 2: Find Album and Resolve Paths via MCP

1. Call `find_album(album_name)` — fuzzy match, returns album metadata including genre
2. Call `resolve_path("audio", album_slug)` — returns audio directory path
3. Call `resolve_path("content", album_slug)` — returns content directory path

If album not found:
```
Error: Album "{album-name}" not found.
Create it first with: /new-album {album-name} 
```

## Step 3: Construct Target Paths

**TWO destinations required** (paths from MCP `resolve_path` calls):

1. **Audio folder** (for platforms/mastering): `{audio_path}/album.png`
2. **Content folder** (for documentation): `{content_path}/album-art.{ext}`

**CRITICAL**: `resolve_path` includes the artist folder automatically.

## Step 4: Create Directories and Copy Files

```bash
# Create audio directory (includes artist folder!)
mkdir -p {audio_root}/artists/{artist}/albums/{genre}/{album}

# Copy to audio folder as album.png
cp "{source_file}" "{audio_root}/artists/{artist}/albums/{genre}/{album}/album.png"

# Copy to content folder preserving extension
cp "{source_file}" "{content_root}/artists/{artist}/albums/{genre}/{album}/album-art.{ext}"
```

## Step 5: Confirm

Report:
```
Album art imported for: {album-name}

Copied to:
1. {audio_root}/artists/{artist}/albums/{genre}/{album}/album.png (for platforms)
2. {content_root}/artists/{artist}/albums/{genre}/{album}/album-art.{ext} (for docs)
```

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

**Album not found:**
```
Error: Album "{album-name}" not found.
Create it first with: /new-album {album-name} 
```

**Not an image file:**
```
Warning: File doesn't appear to be an image: {source_file}
Expected: .jpg, .jpeg, .png, .webp

Continue anyway? (y/n)
```

---

## Examples

```
/import-art ~/Downloads/sample-album-cover.jpg sample-album
```

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

Album found at: `~/bitwize-music/artists/bitwize/albums/electronic/sample-album/`

Result:
```
Album art imported for: sample-album

Copied to:
1. ~/bitwize-music/audio/artists/bitwize/albums/electronic/sample-album/album.png (for platforms)
2. ~/bitwize-music/artists/bitwize/albums/electronic/sample-album/album-art.jpg (for docs)
```

---

## Common Mistakes

### ❌ Don't: Manually read config and construct paths

**Wrong:**
```bash
cat ~/.bitwize-music/config.yaml
cp art.png ~/music-projects/audio/sample-album/
```

**Right:**
```
# Use MCP to find album and resolve both paths
find_album(album_name) → returns album metadata
resolve_path("audio", album_slug) → audio path with artist folder
resolve_path("content", album_slug) → content path with genre
```

**Why it matters:** `resolve_path` handles config reading, artist folder, and genre resolution automatically.

### ❌ Don't: Place art in only one location

**Wrong:**
```bash
# Only copying to audio folder
cp art.png {audio_root}/artists/{artist}/albums/{genre}/{album}/album.png
# Missing: content folder copy
```

**Right:**
```bash
# Copy to BOTH locations
# 1. Audio location (for streaming platforms)
cp art.png {audio_root}/artists/{artist}/albums/{genre}/{album}/album.png
# 2. Content location (for documentation)
cp art.jpg {album_path}/album-art.jpg
```

**Why it matters:** Album art needs to be in both locations - audio folder for release, content folder for documentation.

### ❌ Don't: Mix up the filenames

**Wrong:**
```bash
# Using same filename in both locations
cp art.png {audio_root}/artists/{artist}/albums/{genre}/{album}/album-art.png
cp art.png {album_path}/album.png
```

**Correct naming:**
```
Audio location: album.png (or album.jpg)
Content location: album-art.jpg (or album-art.png)
```

**Why it matters:** Different locations use different naming conventions to avoid confusion.

### ❌ Don't: Search for albums manually

**Wrong:**
```bash
find . -name "README.md" -path "*albums/$album_name*"
```

**Right:**
```
find_album(album_name) → returns album data including path and genre
```

### ❌ Don't: Forget to create directories

**Wrong:**
```bash
# Copying without ensuring directory exists
cp art.png {audio_root}/artists/{artist}/albums/{genre}/{album}/album.png
# Fails if directory doesn't exist
```

**Right:**
```bash
# Create directory first
mkdir -p {audio_root}/artists/{artist}/albums/{genre}/{album}/
cp art.png {audio_root}/artists/{artist}/albums/{genre}/{album}/album.png
```

**Why it matters:** Audio directory might not exist yet, especially for new albums.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [bitwize-music-studio](https://github.com/bitwize-music-studio)
- **Source:** [bitwize-music-studio/claude-ai-music-skills](https://github.com/bitwize-music-studio/claude-ai-music-skills)
- **License:** CC0-1.0
- **Homepage:** https://www.bitwizemusic.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-bitwize-music-studio-claude-ai-music-skills-import-art
- Seller: https://agentstack.voostack.com/s/bitwize-music-studio
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
