verify-sources
About
The verify-sources skill guides developers through a human review checkpoint for music track sources before generation. It identifies tracks needing verification, timestamps approvals, and updates track files when sources require human validation. This ensures all sources are real and accessible, acting as a critical gate between research and Suno generation.
Quick Install
Claude Code
Recommendednpx skills add bitwize-music-studio/claude-ai-music-skills -a claude-code/plugin add https://github.com/bitwize-music-studio/claude-ai-music-skillsgit clone https://github.com/bitwize-music-studio/claude-ai-music-skills.git ~/.claude/skills/verify-sourcesCopy and paste this command in Claude Code to install this skill
Documentation
Your Task
Input: $ARGUMENTS (album name)
Guide the user through source verification for all tracks with pending sources in the specified album.
Source Verification Skill
You facilitate the human source verification gate — the critical checkpoint between research and generation. No track should be generated on Suno until a human has verified that all sources are real, accessible, and accurately represented.
Step 1: Find the Album
- Call
find_album(name)— fuzzy match by name, slug, or partial - If not found, MCP returns available albums
Step 2: Identify Pending Tracks
- Call
get_pending_verifications(album_slug="{album}")— returns pending tracks for the target album - If no album specified, call
get_pending_verifications()for all albums
If no pending tracks:
All tracks in [album] have been verified. No action needed.
If pending tracks exist, list them:
SOURCE VERIFICATION: [Album Title]
===================================
Tracks needing verification:
1. [track-slug] — [track-title]
2. [track-slug] — [track-title]
...
Total: X tracks pending verification
Step 3: Walk Through Each Track
For each pending track:
- Call
extract_links(album_slug, track_slug)— extracts markdown links from the track file - Call
extract_links(album_slug, "SOURCES.md")— get the full citation list - Read RESEARCH.md (if it exists) for evidence chains, confidence levels, and claim-to-source mappings — this gives the human verifier context for what each source is supposed to support, not just the URL
- Present sources to the user:
TRACK: [track-title]
--------------------
Sources referenced in this track:
1. [Source Name](URL) — [brief description of what it supports]
2. [Source Name](URL) — [brief description]
...
Please verify:
- Each URL is accessible and contains the claimed information
- No sources are fabricated or hallucinated
- Claims in lyrics are supported by cited sources
Type "verified" to confirm, or describe any issues.
- Wait for user response:
- If "verified" (or equivalent affirmative) → update the track
- If issues reported → note them, ask user how to proceed
Step 4: Update Track Files
When user confirms verification for a track:
-
Call
update_track_field(album_slug, track_slug, "sources-verified", "✅ Verified (YYYY-MM-DD)")— updates the field and auto-rebuilds state cache- Use today's date
-
Confirm the update:
✅ [track-title] — Sources verified (2025-02-06)
- Move to next pending track
Step 5: Update Album Status (Auto-Advance)
After processing all tracks, check if the album status should advance:
-
Call
get_album_progress(album_slug)— check how many tracks are now verified -
If ALL tracks are verified (no more pending):
- Read the album README to check current album status
- If album status is
Research Complete:- Update album README: change
| **Status** | Research Complete |→| **Status** | Sources Verified | - Report: "Album status advanced: Research Complete → Sources Verified"
- Update album README: change
- If album status is
In Progress:- Report: "All track sources verified. Album status stays In Progress (already past research phase)."
-
If some tracks still pending:
- Report how many remain and which ones
-
Rebuild state cache: Call
rebuild_state()to ensure MCP server has fresh data -
Summary report:
VERIFICATION COMPLETE
=====================
Album: [title]
Tracks verified: X/Y
Album status: [previous] → [new status]
Date: YYYY-MM-DD
All sources verified. This album is cleared for lyric writing.
Next step: /bitwize-music:lyric-writer [track] (write lyrics from verified sources)
Partial verification report (if some tracks still pending):
VERIFICATION PROGRESS
=====================
Album: [title]
Tracks verified this session: X
Tracks still pending: Y
- [track-slug] — [reason if known]
Album status: unchanged ([current])
Resume verification later with /bitwize-music:verify-sources [album]
Handling Issues
If the user reports a problem with a source:
- Document the issue in the track file as a comment or note
- Do NOT mark as verified — keep status as Pending
- Suggest resolution:
- Source URL broken → "Can you find an updated URL?"
- Source doesn't support claim → "Should we revise the lyric, or find a supporting source?"
- Source is fabricated → "I'll remove this source. Do we need to revise the track?"
- After resolution, re-present for verification
Remember
- Never auto-verify — this skill exists specifically for human review
- Present sources clearly — the user needs to actually check each URL
- Date-stamp everything — verification dates matter for audit trail
- One track at a time — don't rush through, each track matters
- Update state cache — after changes, run indexer update so MCP server has fresh data
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
polymarket
MetaThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
creating-opencode-plugins
MetaThis skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
