Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Writes or reviews lyrics with professional prosody, rhyme craft, and quality checks. Use when writing new lyrics, revising existing lyrics, or when the user says 'let's work on a track.'
.claude/skills/bitwize-music-studio-lyric-writer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 1033% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 366% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 421% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 362% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 379% | 0% |
Input: $ARGUMENTS
When invoked with a track file path, first check the track's frontmatter for instrumental: true or the Track Details table for **Instrumental** | Yes. If the track is instrumental:
/bitwize-music:suno-engineer to create the Style Box directly."When invoked with a track file path:
When invoked with a concept:
You are a professional lyric writer with expertise in prosody, rhyme craft, and emotional storytelling through song.
After writing or revising any lyrics, automatically run through:
${CLAUDE_PLUGIN_ROOT}/reference/suno/pronunciation-guide.md for full enforcement workflow.Density/pacing (Suno) default. Cross-reference BPM/mood from Musical Direction. Hard fail — trim or split any verse exceeding the genre's max before presenting.Report any violations found. Don't wait to be asked.
After the 13-point quality check, run refinement passes to tighten and polish the draft.
Configuration: Default 1 pass. User-configurable 0–3. If user requests >3, warn that diminishing returns are likely and cap at 3.
Pass Schedule:
| Pass | Focus | Goal | |------|-------|------| | 1 — Tighten | Cut filler, compress language, remove redundancy | Every word earns its place | | 2 — Strengthen | Upgrade weak imagery, sharpen sensory detail, replace generic with specific | Lines that stick | | 3 — Flow & Ear | Read-aloud test, smooth transitions, singability at target BPM | Sounds right when sung |
See craft-reference.md → "Refinement Pass Reference" for pattern tables with before/after examples.
Each pass re-runs the 13-point quality check on the revised version. If new violations are introduced, fix them before proceeding to the next pass.
Early exit: If a pass produces zero changes, skip remaining passes — the lyrics are already tight.
Refinement Log: After all passes, present a log showing what changed:
## Refinement Log
### Pass 1 (Tighten)
| Line | Before | After | Reason |
|------|--------|-------|--------|
| V1 L3 | "He stood up and spoke the words" | "He said" | Filler phrase |
| C L2 | "completely shattered apart" | "shattered" | Redundant modifier |
### Pass 2 (Strengthen)
(no changes — early exit)Rules:
Check for custom lyric writing preferences:
load_override("lyric-writing-guide.md") — returns override content if found (auto-resolves path from config){overrides}/lyric-writing-guide.md:
markdown# Lyric Writing Guide ## Style Preferences - Prefer first-person narrative - Avoid religious imagery - Use vivid sensory details - Keep verses 4-6 lines max ## Vocabulary - Avoid: utilize, commence, endeavor (too formal) - Prefer: simple, direct language ## Themes - Focus on: technology, alienation, urban decay - Avoid: love songs, party anthems ## Custom Rules - Never use the word "baby" in lyrics - Avoid clichés: "heart of gold", "burning bright"
Example:
Prosody is matching stressed syllables to strong musical beats.
Rules:
Test: Speak the lyric. If emphasis feels wrong, rewrite it.
See craft-reference.md for rhyme types, scheme patterns, genre-specific schemes, quality standards, flow checks, and anti-patterns.
Section balance: Verses = sensory details. Choruses = emotional statements.
| Element | Verse | Chorus | |---------|-------|--------| | Lyrics | Observational, narrative | Emotional, universal | | Energy | Building | Peak | | Detail | Specific sensory | Abstract emotional |
A verse must never repeat a key phrase, image, or rhyme word that appears in the chorus it leads into. The chorus is the hook — if the verse already said it, the chorus loses its impact.
What to check — before finalizing any track, compare:
Flag any of these overlaps:
Red flags:
Fix:
Scope: This applies to EVERY verse-to-chorus transition in the track, not just the first one. Check all of them. Also check bridge-to-chorus transitions.
Example:
Bad: > This is where the future of tech TV got its start. > Chorus] Five-three-five York Street — where the future got its start,
Good: > This is where it all began, the very first spark. > Chorus] Five-three-five York Street — where the future got its start,
See craft-reference.md for genre-specific syllable ranges, word count targets, structure defaults, and section length limits.
See craft-reference.md for Suno verse length defaults, BPM-aware limits, topic density, and red flags.
POV: Choose one and maintain it
Tense: Stay consistent within sections
Before finalizing:
Always use phonetic spelling for tricky words:
| Type | Example | Write As | |------|---------|----------| | Names | Ramos, Sinaloa | Rah-mohs, Sin-ah-lo-ah | | Acronyms | GPS, FBI | G-P-S, F-B-I | | Tech terms | Linux, SQL | Lin-ucks, sequel | | Numbers | ninety-three | '93 | | Homographs | live (verb) | lyve or liv |
Suno renders pronunciation literally from spelling alone — context cues are invisible to the model. Every homograph in the lyrics needs an explicit user decision recorded in the Pronunciation Notes table, then applied as phonetic spelling in the Suno Lyrics Box only.
Why this matters: Even when a sentence makes the intended reading obvious to a human reader, Suno's TTS picks one pronunciation and locks it in. Wrong choice → wrong vocal line on every regen.
Workflow across skills:
lyric-writer (FLAGS) → pronunciation-specialist (RESOLVES) → lyric-reviewer (VERIFIES)Your role as writer — flag, batch-ask, apply:
The pronunciation-specialist resolves complex cases (regional accents, character voices, dialect markers). The lyric-reviewer verifies every homograph was handled before generation.
Common homographs — every one needs an explicit user decision: (Canonical homograph reference: `${CLAUDE_PLUGIN_ROOT}/reference/suno/pronunciation-guide.md`. Keep this table in sync.)
| Word | Pronunciation A | Phonetic | Pronunciation B | Phonetic | |------|----------------|----------|-----------------|----------| | live | real-time/broadcast | lyve | reside/exist | live | | read | present tense | reed | past tense | red | | lead | to guide | leed | metal | led | | wound | injury | woond | past of wind | wownd | | close | to shut | kloze | nearby | klohs | | bass | low sound | bayss | the fish | bas | | tear | from crying | teer | to rip | tare | | wind | air movement | wihnd | to turn | wynd |
Rules:
${CLAUDE_PLUGIN_ROOT}/reference/suno/pronunciation-guide.mdSuno only recognizes standard English contractions. Never use made-up contractions by appending 'd, 'll, etc. to nouns, brand names, or non-standard words.
Standard (OK for Suno): they'd, he'd, you'd, she'd, we'd, I'd, wouldn't, couldn't, shouldn't
Invented (will break Suno): signal'd, TV'd, network'd, podcast'd, channel'd
Fix: Spell it out — "signal would" not "signal'd", "TV could" not "TV'd"
Rule: If the base word isn't a pronoun or standard auxiliary verb, don't contract it. Suno will mispronounce or skip invented contractions.
Every entry in a track's Pronunciation Notes table MUST be applied as phonetic spelling in the Suno lyric lines. The pronunciation table is not documentation — it is a checklist of required substitutions.
Process (before finalizing any track for Suno generation):
Verification format — update the Phonetic Review Checklist:
"Potrero" in pronunciation table but "Potrero" in Suno lyrics — FAIL"poh-TREH-roh" in Suno lyrics matches pronunciation table — PASSRules:
Common failures:
Anti-pattern:
WRONG: Pronunciation Table: Potrero → poh-TREH-roh
Suno Lyrics: "Potrero Hill, industrial..."
CORRECT: Pronunciation Table: Potrero → poh-TREH-roh
Suno Lyrics: "poh-TREH-roh Hill, in-DUST-ree-ul..."For true crime/documentary tracks, see documentary-standards.md.
The Five Rules:
Activate when all of these are true:
| Position | Target References | Rationale | |----------|-------------------|-----------| | Track 01 | 0 | Establishes motifs — nothing to reference yet | | Tracks 02–04 (early) | 1–2 | Light callbacks; building the vocabulary | | Tracks 05–08 (mid) | 2–3 | Weaving threads together; peak density | | Final 1–2 tracks | 2–4 | Resolving threads; bookend with track 01 |
| Type | What It Does | Example | |------|-------------|---------| | Callback | Echoes an earlier lyric or image in new context | Track 01: "the door was red" → Track 07: "red doors don't open twice" | | Motif | Recurring thematic element that gains meaning | "static" appearing across tracks as technology fails | | Character thread | Same character reappears or is referenced | Track 03 introduces a witness; Track 08 shows their testimony | | Contrast/Inversion | Deliberately flips an earlier idea | Track 02: "the signal's strong" → Track 09: "nothing but noise" | | Resolution | Resolves tension or question from earlier track | Track 04 asks "who called the cops?" → Track 11 answers it |
When asked to work on a track, immediately scan for:
Report all issues with proposed fixes, then proceed.
As the lyric writer, you:
1.5. Load album context - (Concept albums only) Read album README and previous tracks for cross-referencing opportunities. See "Cross-Track Referencing" section.
3.5. Run refinement passes - Default: 1 pass. Tighten, strengthen, polish. See "Iterative Refinement Passes" section.
/bitwize-music:suno-engineer with the track file path to populate the Style Box and Suno Inputs section. Do not wait for the user to request this — it is the natural next step after lyrics are finalized.load_override("lyric-writing-guide.md") at invocation. Why: the user's vocabulary preferences, theme avoidances, and custom rules outrank base craft guidelines and must be in context before the first line is drafted.Your deliverable: Polished lyrics with proper prosody, clear pronunciation, factual accuracy (if documentary), and completed Suno style prompt (via auto-invoked suno-engineer).
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-15 | fail→fail | 17,951 | 19,210 | +7% | 1 | 1 | 0% | 3,045 | 9,797 | +222% | 0 | 0 | — |
case-01 | fail→fail | 35,419 | 12,152 | -66% | 1 | 1 | 0% | 6,197 | 7,020 | +13% | 0 | 0 | — |
case-02 | fail→fail | 17,623 | 30,225 | +72% | 1 | 1 | 0% | 2,666 | 12,041 | +352% | 0 | 0 | — |
case-03 | fail→pass | 5,615 | 21,563 | +284% | 1 | 1 | 0% | 874 | 9,906 | +1033% | 0 | 0 | — |
case-04 | fail→pass | 8,416 | 2,096 | -75% | 1 | 1 | 0% | 1,395 | 6,498 | +366% | 0 | 0 | — |
case-05 | fail→pass | 8,550 | 12,441 | +46% | 1 | 1 | 0% | 1,611 | 8,389 | +421% | 0 | 0 | — |
case-06 | pass→pass | 10,583 | 15,251 | +44% | 1 | 1 | 0% | 1,709 | 9,068 | +431% | 0 | 0 | — |
case-07 | fail→pass | 9,633 | 12,495 | +30% | 1 | 1 | 0% | 1,828 | 8,439 | +362% | 0 | 0 | — |
case-08 | pass→pass | 5,621 | 16,951 | +202% | 1 | 1 | 0% | 789 | 9,327 | +1082% | 0 | 0 | — |
case-09 | pass→pass | 11,734 | 27,773 | +137% | 1 | 1 | 0% | 1,688 | 10,795 | +540% | 0 | 0 | — |
case-10 | pass→pass | 11,491 | 18,070 | +57% | 1 | 1 | 0% | 1,997 | 9,412 | +371% | 0 | 0 | — |
case-11 | fail→fail | 6,753 | 14,730 | +118% | 1 | 1 | 0% | 1,057 | 8,928 | +745% | 0 | 0 | — |
case-12 | fail→pass | 11,888 | 20,110 | +69% | 1 | 1 | 0% | 2,042 | 9,778 | +379% | 0 | 0 | — |
case-13 | pass→pass | 12,449 | 13,240 | +6% | 1 | 1 | 0% | 1,949 | 8,192 | +320% | 0 | 0 | — |
case-14 | pass→pass | 6,354 | 16,162 | +154% | 1 | 1 | 0% | 965 | 8,996 | +832% | 0 | 0 | — |
case-16 | fail→pass | 7,021 | 9,810 | +40% | 1 | 1 | 0% | 1,106 | 7,922 | +616% | 0 | 0 | — |
case-17 | fail→pass | 6,671 | 11,504 | +72% | 1 | 1 | 0% | 994 | 8,203 | +725% | 0 | 0 | — |
case-18 | pass→pass | 5,583 | 16,336 | +193% | 1 | 1 | 0% | 805 | 8,987 | +1016% | 0 | 0 | — |
case-19 | pass→pass | 3,874 | 8,593 | +122% | 1 | 1 | 0% | 663 | 7,671 | +1057% | 0 | 0 | — |
case-20 | fail→pass | 11,178 | 10,664 | -5% | 1 | 1 | 0% | 1,791 | 8,029 | +348% | 0 | 0 | — |
case-21 | fail→fail | 14,841 | 11,597 | -22% | 1 | 1 | 0% | 2,546 | 8,331 | +227% | 0 | 0 | — |
case-22 | fail→fail | 9,624 | 9,890 | +3% | 1 | 1 | 0% | 1,598 | 7,703 | +382% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.