Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
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 = 0failed = 0warnings = 0skipped = 0issues = [](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:
- Read the file
- Check for required fields:
- Status field exists
- Suno Style Box exists (has
## Suno Inputssection) - Suno Lyrics Box exists
- If Status is
GeneratedorFinal: Suno Link present - 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
- Always read config first - Never assume paths
- Check both correct AND wrong locations - Catch misplaced files
- Provide actionable fixes - Include exact commands to fix issues
- Use appropriate status - PASS/FAIL/WARN/SKIP based on severity
- 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.