bitwize-music-studio

validate-album

2
0
# Install this skill:
npx skills add bitwize-music-studio/claude-ai-music-skills --skill "validate-album"

Install specific skill from multi-skill repository

# Description

Validate album structure, file locations, and content integrity

# SKILL.md


name: validate-album
description: "Validate album structure, file locations, and content integrity"
argument-hint:
model: claude-haiku-4-5-20251001
allowed-tools:
- Read
- Bash
- Glob
- Grep


Your Task

Input: $ARGUMENTS (album name, e.g., shell-no)

Validate that an album has all required files in the correct locations, catching path issues and missing content before they become problems.


Step 1: Read Config (REQUIRED)

cat ~/.bitwize-music/config.yaml

Extract:
- paths.content_root β†’ {content_root}
- paths.audio_root β†’ {audio_root}
- paths.documents_root β†’ {documents_root}
- artist.name β†’ {artist}

If config missing, STOP and report:

[FAIL] Config file missing: ~/.bitwize-music/config.yaml
       Run /configure to set up the plugin.

Step 2: Find Album

find {content_root}/artists/{artist}/albums -type d -name "{album-name}" 2>/dev/null

Extract genre from path: {content_root}/artists/{artist}/albums/{genre}/{album}/

If album not found, STOP and report:

[FAIL] Album not found: {album-name}
       Searched: {content_root}/artists/{artist}/albums/*/

Step 3: Run Validations

Initialize Counters

  • passed = 0
  • failed = 0
  • warnings = 0
  • skipped = 0
  • issues = [] (list of fix commands)

Output Header

═══════════════════════════════════════════════════════════
ALBUM VALIDATION: {album-name}
═══════════════════════════════════════════════════════════

Validation Categories

CONFIG

CONFIG
──────
Check Pass Fail
Config file exists [PASS] Config file exists [FAIL] Config file missing
content_root defined [PASS] content_root: {value} [FAIL] content_root not defined
audio_root defined [PASS] audio_root: {value} [FAIL] audio_root not defined
artist defined [PASS] artist: {value} [FAIL] artist.name not defined

ALBUM STRUCTURE

ALBUM STRUCTURE
───────────────
Check How Pass Fail
Album dir exists test -d {album_path} [PASS] Album directory: {path} [FAIL] Album directory missing
README.md exists test -f {album_path}/README.md [PASS] README.md exists [FAIL] README.md missing
tracks/ dir exists test -d {album_path}/tracks [PASS] tracks/ directory exists [FAIL] tracks/ directory missing
Track files exist ls {album_path}/tracks/*.md [PASS] {N} track files found [WARN] No track files found

For documentary albums (check README.md for type):
| Check | How | Pass | Fail |
|-------|-----|------|------|
| RESEARCH.md exists | test -f {album_path}/RESEARCH.md | [PASS] RESEARCH.md exists | [WARN] RESEARCH.md missing (documentary album) |
| SOURCES.md exists | test -f {album_path}/SOURCES.md | [PASS] SOURCES.md exists | [WARN] SOURCES.md missing (documentary album) |

AUDIO FILES

AUDIO FILES
───────────

Expected path: {audio_root}/{artist}/{album}/

Check How Pass Fail
Audio dir exists (correct path) test -d {audio_root}/{artist}/{album} [PASS] Audio directory: {path} See below
Audio dir in wrong location test -d {audio_root}/{album} N/A [FAIL] Audio in wrong location (missing artist folder)

If audio in wrong location, add to issues:

β†’ Expected: {audio_root}/{artist}/{album}/
β†’ Found at: {audio_root}/{album}/ (WRONG - missing artist folder)
β†’ Fix: mv {audio_root}/{album}/ {audio_root}/{artist}/{album}/
Check How Pass Skip
WAV files present ls {audio_path}/*.wav [PASS] {N} WAV files found [SKIP] No audio files yet
mastered/ exists test -d {audio_path}/mastered [PASS] mastered/ directory exists [SKIP] Not mastered yet

ALBUM ART

ALBUM ART
─────────
Check How Pass Skip
Art in audio folder test -f {audio_path}/album.png [PASS] album.png in audio folder [SKIP] No album art yet
Art in content folder test -f {album_path}/album-art.* [PASS] album-art in content folder [SKIP] No album art yet

TRACKS

TRACKS
──────

For each track file in {album_path}/tracks/*.md:

  1. Read the file
  2. Check for required fields:
  3. Status field exists
  4. Suno Style Box exists (has ## Suno Inputs section)
  5. Suno Lyrics Box exists
  6. If Status is Generated or Final: Suno Link present
  7. If documentary: Sources Verified status

Output per track:
- [PASS] {filename} - Status: {status}, Suno Link: {present/missing}
- [WARN] {filename} - Status: {status}, missing {what}
- [FAIL] {filename} - No Status field


Step 4: Summary

═══════════════════════════════════════════════════════════
SUMMARY: {passed} passed, {failed} failed, {warnings} warning(s), {skipped} skipped
═══════════════════════════════════════════════════════════

If any issues:

ISSUES TO FIX:
1. {issue description}
   {fix command}
2. ...

Example Output

═══════════════════════════════════════════════════════════
ALBUM VALIDATION: shell-no
═══════════════════════════════════════════════════════════

CONFIG
──────
[PASS] Config file exists
[PASS] content_root: ~/bitwize-music
[PASS] audio_root: ~/bitwize-music/audio
[PASS] artist: bitwize

ALBUM STRUCTURE
───────────────
[PASS] Album directory: ~/bitwize-music/artists/bitwize/albums/electronic/shell-no/
[PASS] README.md exists
[PASS] tracks/ directory exists
[PASS] 5 track files found

AUDIO FILES
───────────
[FAIL] Audio directory in wrong location
       β†’ Expected: ~/bitwize-music/audio/bitwize/shell-no/
       β†’ Found at: ~/bitwize-music/audio/shell-no/
       β†’ Fix: mv ~/bitwize-music/audio/shell-no/ ~/bitwize-music/audio/bitwize/shell-no/

ALBUM ART
─────────
[SKIP] No album art yet

TRACKS
──────
[PASS] 01-intro.md - Status: Final, Suno Link: present
[PASS] 02-track.md - Status: Final, Suno Link: present
[WARN] 03-t-day-beach.md - Status: Generated, Suno Link: missing

═══════════════════════════════════════════════════════════
SUMMARY: 8 passed, 1 failed, 1 warning, 1 skipped
═══════════════════════════════════════════════════════════

ISSUES TO FIX:
1. Move audio folder to include artist:
   mv ~/bitwize-music/audio/shell-no/ ~/bitwize-music/audio/bitwize/shell-no/

Important Notes

  1. Always read config first - Never assume paths
  2. Check both correct AND wrong locations - Catch misplaced files
  3. Provide actionable fixes - Include exact commands to fix issues
  4. Use appropriate status - PASS/FAIL/WARN/SKIP based on severity
  5. Count everything - Report totals in summary

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.