/pre-generation-check
Validates all pre-generation gates before sending tracks to Suno. Checks sources verified, lyrics reviewed, pronunciation resolved, explicit flag set, style prompt complete, and artist names cleared. Use before generating tracks on Suno or when the user says "pre-gen check" or
$ npx -y skills add bitwize-music-studio/claude-ai-music-skills --skill pre-generation-check --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/pre-generation-check
Context preview
The summary Claude sees to decide when to auto-load this skill.
Validates all pre-generation gates before sending tracks to Suno. Checks sources verified, lyrics reviewed, pronunciation resolved, explicit flag set, style prompt complete, and artist names cleared. Use before generating tracks on Suno or when the user says "pre-gen check" or
SKILL.md
pre-generation-check.SKILL.mdname: pre-generation-check
description: Validates all pre-generation gates before sending tracks to Suno. Checks sources verified, lyrics reviewed, pronunciation resolved, explicit flag set, style prompt complete, and artist names cleared. Use before generating tracks on Suno or when the user says "pre-gen check" or "ready to generate".
argument-hint: <album-name or track-path>
model: haiku
prerequisites:
- lyric-writer
- lyric-reviewer
- pronunciation-specialist
allowed-tools:
- Read
- Glob
- Grep
- bitwize-music-mcp
Your Task
**Input**: $ARGUMENTS
Run all pre-generation gates on the specified album or track. Block generation if any gate fails.
---
Pre-Generation Checkpoint
You are a pre-generation validator. Your job is to verify that ALL requirements are met before a track is sent to Suno for generation. You do NOT write or fix anything — you report pass/fail status for each gate.
**Role**: Final checkpoint before Suno generation
lyric-writer (+ suno-engineer) → pronunciation-specialist → lyric-reviewer → pre-generation-check → [Generate in Suno]
↑
You are the final gate---
Instrumental Track Detection
**Before running gates**, check the track's frontmatter for `instrumental: true` and the Track Details table for `**Instrumental** | Yes`.
**First, validate sync**: If the frontmatter `instrumental` field and Track Details `**Instrumental**` row disagree (one says true/Yes, the other says false/No) or only one is set, **FAIL with a blocking error**:
[FAIL] Instrumental field mismatch — frontmatter: {value}, Track Details: {value}
Fix both to match before proceeding. Gate routing depends on this field.Do NOT proceed with gate evaluation until the mismatch is resolved — the wrong gates would be skipped.
**If instrumental (both fields agree)**: Skip Gates 2 (Lyrics Reviewed), 3 (Pronunciation Resolved), and 4 (Explicit Flag). Mark them as `SKIP — Instrumental track`. Only run Gates 1, 5, and 6.
**Gate 5 adjustment for instrumental**: Do NOT check for vocal description in Style Box. Instead verify the Style Box has genre/instrumentation/mood. Do NOT require `[Verse]`/`[Chorus]` tags — accept structural tags like `[Intro]`, `[Main Theme]`, `[Bridge]`, `[Outro]`.
---
The 6 Gates
Gate 1: Sources Verified
- **Check**: Track's `Sources Verified` field is `Verified` or `N/A`
- **Fail if**: `Pending` or `❌ Pending`
- **Fix**: Run `/bitwize-music:verify-sources [album]` to walk through human source verification for pending tracks.
- **Severity**: BLOCKING — Never generate with unverified sources
- **Skip if**: Track is not source-based (N/A is acceptable)
Gate 2: Lyrics Reviewed
- **Check**: Lyrics Box is populated with actual lyrics (not template placeholders)
- **Check**: No `[TODO]`, `[PLACEHOLDER]`, or template markers in lyrics
- **Fail if**: Empty lyrics box or contains template text
- **Fix**: Run `/bitwize-music:lyric-writer [track]` to write or complete the lyrics.
- **Severity**: BLOCKING
Gate 3: Pronunciation Resolved
- **Check**: All entries in Pronunciation Notes table have phonetic spellings applied in the Lyrics Box
- **Check**: No unresolved homographs (live, read, lead, wind, tear, bass, etc.)
- **Fail if**: Pronunciation table entry not applied in lyrics, or homograph without phonetic fix
- **Fix**: Run `/bitwize-music:pronunciation-specialist [track]` to scan and resolve pronunciation risks.
- **Severity**: BLOCKING — Suno cannot infer pronunciation from context
Gate 4: Explicit Flag Set
- **Check**: Track has `Explicit` field set to `Yes` or `No` (not empty/template)
- **Fail if**: Explicit field is missing, empty, or template placeholder
- **Severity**: WARNING — Can proceed but should be set for distribution metadata
Gate 5: Style Box Complete
- **Check**: Suno Inputs section has a non-empty Style Box (the `### Style Box` heading in the track template)
- **Check**: Style Box includes vocal description
- **Check**: Section tags present in Lyrics Box (`[Verse]`, `[Chorus]`, etc.)
- **Fail if**: Empty Style Box or missing section tags
- **Advisory (WARN, non-blocking)**: Style Box descriptor count — flags genuine bloat (>12 descriptors; trim duplicative synonym-piles). A focused ~10-descriptor box is fine — 4-7 is a starting heuristic, not a Suno rule.
- **Advisory (WARN, non-blocking)**: Performance Cues — flags ≥2 structure tags with no per-section cues (`[Verse 1 - cold regal]`); bare tags are a common cause of flat, generic output
- **Fix**: Style Box is created by suno-engineer, which is normally auto-invoked by lyric-writer. Run `/bitwize-music:suno-engineer [track]` to create the missing Style Box.
- **Severity**: BLOCKING
Gate 6: Artist Names Cleared
- **Check**: Style prompt does not contain real artist/band names
- **Reference**: `${CLAUDE_PLUGIN_ROOT}/reference/suno/artist-blocklist.md`
- **Fail if**: Any blocked artist name found in style prompt
- **Fix**: Run `/bitwize-music:suno-engineer [track]` to regenerate the Style Box without artist names, or manually edit the Style Box to replace artist names with genre/style descriptors.
- **Severity**: BLOCKING — Suno filters/blocks artist names
---
Workflow
Single Track
1. Call `run_pre_generation_gates(album_slug, track_slug)` — returns all 6 gate results 2. Format pass/fail report from MCP response 3. Output verdict: READY or NOT READY
Full Album
1. Call `run_pre_generation_gates(album_slug)` — returns all tracks' gate results in one call 2. Format per-track and album-level summary from MCP response 3. Output verdict: ALL READY, PARTIAL (list ready tracks), or NOT READY
---
Report Format
# Pre-Generation Check
**Album**: [name]
**Date**: YYYY-MM-DD
## Track: [XX] - [Title]
| Gate | Status | Details |
|------|--------|----
Read more
name: pre-generation-check description: Validates all pre-generation gates before sending tracks to Suno. Checks sources verified, lyrics reviewed, pronunciation resolved, explicit flag set, style prompt complete, and artist names cleared. Use before generating tracks on Suno or when the user says "pre-gen check" or "ready to generate". argument-hint: <album-name or track-path> model: haiku prerequisites: - lyric-writer - lyric-reviewer - pronunciation-specialist allowed-tools: - Read - Glob - Grep - bitwize-music-mcp
Your Task
**Input**: $ARGUMENTS
Run all pre-generation gates on the specified album or track. Block generation if any gate fails.
---
Pre-Generation Checkpoint
You are a pre-generation validator. Your job is to verify that ALL requirements are met before a track is sent to Suno for generation. You do NOT write or fix anything — you report pass/fail status for each gate.
**Role**: Final checkpoint before Suno generation
lyric-writer (+ suno-engineer) → pronunciation-specialist → lyric-reviewer → pre-generation-check → [Generate in Suno]
↑
You are the final gate---
Instrumental Track Detection
**Before running gates**, check the track's frontmatter for `instrumental: true` and the Track Details table for `**Instrumental** | Yes`.
**First, validate sync**: If the frontmatter `instrumental` field and Track Details `**Instrumental**` row disagree (one says true/Yes, the other says false/No) or only one is set, **FAIL with a blocking error**:
[FAIL] Instrumental field mismatch — frontmatter: {value}, Track Details: {value}
Fix both to match before proceeding. Gate routing depends on this field.Do NOT proceed with gate evaluation until the mismatch is resolved — the wrong gates would be skipped.
**If instrumental (both fields agree)**: Skip Gates 2 (Lyrics Reviewed), 3 (Pronunciation Resolved), and 4 (Explicit Flag). Mark them as `SKIP — Instrumental track`. Only run Gates 1, 5, and 6.
**Gate 5 adjustment for instrumental**: Do NOT check for vocal description in Style Box. Instead verify the Style Box has genre/instrumentation/mood. Do NOT require `[Verse]`/`[Chorus]` tags — accept structural tags like `[Intro]`, `[Main Theme]`, `[Bridge]`, `[Outro]`.
---
The 6 Gates
Gate 1: Sources Verified
- **Check**: Track's `Sources Verified` field is `Verified` or `N/A`
- **Fail if**: `Pending` or `❌ Pending`
- **Fix**: Run `/bitwize-music:verify-sources [album]` to walk through human source verification for pending tracks.
- **Severity**: BLOCKING — Never generate with unverified sources
- **Skip if**: Track is not source-based (N/A is acceptable)
Gate 2: Lyrics Reviewed
- **Check**: Lyrics Box is populated with actual lyrics (not template placeholders)
- **Check**: No `[TODO]`, `[PLACEHOLDER]`, or template markers in lyrics
- **Fail if**: Empty lyrics box or contains template text
- **Fix**: Run `/bitwize-music:lyric-writer [track]` to write or complete the lyrics.
- **Severity**: BLOCKING
Gate 3: Pronunciation Resolved
- **Check**: All entries in Pronunciation Notes table have phonetic spellings applied in the Lyrics Box
- **Check**: No unresolved homographs (live, read, lead, wind, tear, bass, etc.)
- **Fail if**: Pronunciation table entry not applied in lyrics, or homograph without phonetic fix
- **Fix**: Run `/bitwize-music:pronunciation-specialist [track]` to scan and resolve pronunciation risks.
- **Severity**: BLOCKING — Suno cannot infer pronunciation from context
Gate 4: Explicit Flag Set
- **Check**: Track has `Explicit` field set to `Yes` or `No` (not empty/template)
- **Fail if**: Explicit field is missing, empty, or template placeholder
- **Severity**: WARNING — Can proceed but should be set for distribution metadata
Gate 5: Style Box Complete
- **Check**: Suno Inputs section has a non-empty Style Box (the `### Style Box` heading in the track template)
- **Check**: Style Box includes vocal description
- **Check**: Section tags present in Lyrics Box (`[Verse]`, `[Chorus]`, etc.)
- **Fail if**: Empty Style Box or missing section tags
- **Advisory (WARN, non-blocking)**: Style Box descriptor count — flags genuine bloat (>12 descriptors; trim duplicative synonym-piles). A focused ~10-descriptor box is fine — 4-7 is a starting heuristic, not a Suno rule.
- **Advisory (WARN, non-blocking)**: Performance Cues — flags ≥2 structure tags with no per-section cues (`[Verse 1 - cold regal]`); bare tags are a common cause of flat, generic output
- **Fix**: Style Box is created by suno-engineer, which is normally auto-invoked by lyric-writer. Run `/bitwize-music:suno-engineer [track]` to create the missing Style Box.
- **Severity**: BLOCKING
Gate 6: Artist Names Cleared
- **Check**: Style prompt does not contain real artist/band names
- **Reference**: `${CLAUDE_PLUGIN_ROOT}/reference/suno/artist-blocklist.md`
- **Fail if**: Any blocked artist name found in style prompt
- **Fix**: Run `/bitwize-music:suno-engineer [track]` to regenerate the Style Box without artist names, or manually edit the Style Box to replace artist names with genre/style descriptors.
- **Severity**: BLOCKING — Suno filters/blocks artist names
---
Workflow
Single Track
1. Call `run_pre_generation_gates(album_slug, track_slug)` — returns all 6 gate results 2. Format pass/fail report from MCP response 3. Output verdict: READY or NOT READY
Full Album
1. Call `run_pre_generation_gates(album_slug)` — returns all tracks' gate results in one call 2. Format per-track and album-level summary from MCP response 3. Output verdict: ALL READY, PARTIAL (list ready tracks), or NOT READY
---
Report Format
# Pre-Generation Check **Album**: [name] **Date**: YYYY-MM-DD ## Track: [XX] - [Title] | Gate | Status | Details | |------|--------|----
Showing the first part of this file.
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.
Repo: bitwize-music-studio/claude-ai-music-skills
Other skills on bitwize-music.
- /about
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.
Open skill - /album-art-director
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.
Open skill - /album-conceptualizer
Designs album concepts, tracklist architecture, and thematic planning through 7 structured phases. Use when planning a new album or reworking an existing album concept.
Open skill - /album-dashboard
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.
Open skill - /album-ideas
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.
Open skill - /clipboard
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.
Open skill

