MCP HubMCP Hub
Вернуться к навыкам

import-art

bitwize-music-studio
Обновлено 2 days ago
7 просмотров
211
37
211
Посмотреть на GitHub
Метаgeneral

О программе

Этот навык Claude импортирует обложки альбомов, размещая файлы изображений как в аудио-каталогах, так и в директориях с контентом. Он использует инструменты MCP для поиска альбомов через нечёткое сравнение и определения корректных путей, когда пользователи создали или скачали обложки, требующие сохранения. Разработчикам следует применять его для автоматизированного размещения обложек альбомов в рабочих процессах управления музыкальными библиотеками.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add bitwize-music-studio/claude-ai-music-skills -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/bitwize-music-studio/claude-ai-music-skills
Git клонированиеАльтернативный
git clone https://github.com/bitwize-music-studio/claude-ai-music-skills.git ~/.claude/skills/import-art

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

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: <file-path> <album-name>

Examples:

  • ~/Downloads/album-art.jpg sample-album
  • ~/Downloads/cover.png sample-album

If arguments are missing, ask:

Usage: /import-art <file-path> <album-name>

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} <genre>

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

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

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:

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:

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:

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

Right:

# 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:

# 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:

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:

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

Right:

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

GitHub репозиторий

bitwize-music-studio/claude-ai-music-skills
Путь: skills/import-art
0
ai-musicai-music-toolsaudio-masteringclaudeclaude-codeclaude-code-plugin

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык