jwynia/agent-skillsMIT6 files

Lyric Diagnostic

Diagnose lyric problems across prosody, rhyme, meaning, register, sound, and structure. Use when AI-generated or human lyrics feel flat, cliched, awkward, or mismatched.

Specification
Skill ID
jwynia/agent-skills/lyric-diagnostic
Publisher
jwynia
Repository
agent-skills
Installs
0
Files
6
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

jwynia/agent-skills/lyric-diagnosticInstalls these files
  • SKILL.md
  • data/cmudict-simplified.json
  • data/lyric-dominance-rules.json
  • scripts/cliche-check.ts
  • scripts/meter-check.ts
  • scripts/rhyme-check.ts

What this skill tells the agent

Lyric Diagnostic: Skill

You diagnose lyric problems across multiple dimensions. Your role is to identify why lyrics fail and guide writers (human or AI) toward more effective choices.

Core Principle

Lyrics fail in predictable, diagnosable ways. Generic is not neutral—generic is bad.

AI-generated lyrics cluster at statistical distribution centers: the most probable word choices, rhyme pairs, and emotional vocabulary. Probability optimization produces mediocrity. Effective lyrics require intentional deviation from defaults.

The same pattern that makes "Celtic" trigger tinwhistle in music generation makes "love" trigger predictable rhyme pairs and emotional cliches in lyric generation.


The Lyric States

State LY1: Cliche Trap

Symptoms: Predictable rhyme pairs dominate. Word choices are first-associations. Nothing surprises. Lyrics could fit any song on this topic.

Key Questions:

  • What rhyme pairs are you using? Are they first-associations?
  • Would replacing the end-rhyme word break the meaning? (If not, it's filler)
  • Can you enumerate the default words for this topic and avoid them?
  • What would a different genre use for this same emotion?

Diagnostic Checklist:

  • [ ] No Tier 1 cliche words (love, heart, baby, forever)
  • [ ] No stock phrases (see list below)
  • [ ] Rhyme pairs are not obvious first-associations
  • [ ] At least one surprising word choice per verse
  • [ ] Specific details rather than generic statements

Stock Phrases (phrase-level cliches, not just words):

Scripts can't catch these—they require semantic judgment:

PhraseCategoryWhy It's Cliche
"screaming inside"unexpressed anguishEvery song about hidden pain uses this
"need you gone"direct desireStates want instead of showing it
"won't leave me alone"persistenceGeneric memory/thought complaint
"thought I died"emotional death metaphorOverused intensity marker
"used to be" + past statenostalgia setupStock before/after framing
"look in your eyes"connectionVague romantic gesture
"torn apart"destructionAbstract violence metaphor
"can't let go"attachmentStates the problem directly

Lazy Rhyme Pairs (rhyme drove word choice):

PairProblem
desire / fire / tiredCluster appears together constantly
inside / died / aliveDeath-interior cluster
away / stay / dayMotion-time cluster
heart / apart / startHeart-destruction cluster
alone / gone / onIsolation cluster

Interventions:

  • Run cliche-check.ts as pre-filter (surfaces candidates, doesn't diagnose)
  • Scan for stock phrases manually—scripts miss these
  • List the 10 most predictable rhymes for your end words—avoid them all
  • Replace abstract emotions with concrete sensory imagery
  • Ask: "What would someone who hates this genre never say?" Use that.

State LY2: Meter Mismatch

Symptoms: Lines don't fit the melody. Stresses fall on wrong syllables. Unnatural pronunciation required. Syllables crammed or stretched awkwardly.

Key Questions:

  • Can you tap the rhythm and speak the line simultaneously?
  • Where do stresses fall? Do they match the melody's emphasis?
  • Are any syllables swallowed or stretched unnaturally?
  • How many syllables per phrase? Is there consistency?

Diagnostic Checklist:

  • [ ] Natural word stress aligns with musical beats
  • [ ] Syllable counts fit the melodic phrase
  • [ ] No awkward pronunciations required
  • [ ] Contractions/elisions are singable

Interventions:

  • Run meter-check.ts to analyze syllable counts and stress patterns
  • Speak the lyrics while tapping the beat—mismatches become obvious
  • Swap words with same meaning but different syllable count
  • Use contractions to reduce syllables, or expand to add them

State LY3: Shallow Surface

Symptoms: Lyrics say exactly what they mean and nothing more. No subtext, no layers, no depth. Emotions are stated directly. Everything is on the surface.

Key Questions:

  • Is there a second reading? Something between the lines?
  • Are you stating the emotion or evoking it through imagery?
  • What specific concrete image grounds the abstraction?
  • Could this be understood on first listen but reveal depth on repeat?

Diagnostic Checklist:

  • [ ] At least one image per verse that works on multiple levels
  • [ ] Emotions evoked through detail, not stated directly
  • [ ] Something for repeat listens to discover
  • [ ] Concrete specifics anchor abstract concepts

Interventions:

  • For every abstract statement, find a concrete action/image that embodies it
  • Instead of "I'm sad," show what sad looks like, sounds like, feels like
  • Add a detail that doesn't quite fit—creates productive ambiguity
  • Test: can you explain two different interpretations of the same line?

State LY4: Register Mismatch

Symptoms: Lyric tone contradicts the music's emotion. Casual words over dramatic instrumentation. Heavy lyrics over light music. Vocabulary doesn't match genre expectations.

Key Questions:

  • What emotion should the listener feel at this moment?
  • Is your vocabulary elevated/casual matching the music?
  • Does the distance (intimate/observational) match the instrumental?
  • Would this language make sense in this genre?

Diagnostic Checklist:

  • [ ] Vocabulary matches musical intensity
  • [ ] Distance (I/you vs. they/we) fits the sound
  • [ ] Genre vocabulary expectations met or intentionally broken
  • [ ] Irony (if present) is signaled clearly

Interventions:

  • Listen to the music without lyrics—what emotions does it evoke?
  • Match lyric intensity to musical intensity section by section
  • Check genre vocabulary norms—violate intentionally or not at all
  • If using irony, add signal words or structural cues

State LY5: Sound Neglect

Symptoms: No attention to how words feel in the mouth. Harsh consonant clusters at tender moments. Monotonous vowel sounds. No alliteration, assonance, or deliberate sound texture.

Key Questions:

  • What consonant sounds dominate? What texture do they create?
  • Do vowel sounds support the emotional content?
  • Are there harsh clusters that disrupt flow?
  • Is there intentional sound painting?

Diagnostic Checklist:

  • [ ] Soft consonants (l, m, n, w) at intimate moments
  • [ ] Hard consonants (k, t, p) at impactful moments
  • [ ] Vowel sounds support emotional content
  • [ ] At least one sound device per verse (alliteration, assonance)

Interventions:

  • Read lyrics aloud focusing only on how they feel in the mouth
  • Map emotional moments to appropriate sound textures
  • Replace harsh-sounding words at tender moments
  • Add deliberate alliteration or assonance at key phrases

State LY6: Structural Chaos

Symptoms: No identifiable hook. Verse and chorus feel interchangeable. Repetition is annoying, not reinforcing. Bridge doesn't contrast. Song has no arc.

Key Questions:

  • Is there a clear hook? Where does it land?
  • Does each verse add new information or repeat?
  • Does the bridge actually contrast or just continue?
  • Is repetition earning its place?

Diagnostic Checklist:

  • [ ] Hook is identifiable and memorable
  • [ ] Verses differentiate (new info, different angle)
  • [ ] Chorus delivers emotional payoff
  • [ ] Bridge provides contrast or escalation
  • [ ] Repetition evolves or emphasizes, doesn't bore

Structural Cliches:

PatternProblemFix
Bridge = VerseNot a bridge at all—just more of the sameShift perspective, time, or speaker
Chorus expands on repeatAdding lines without developmentEach chorus iteration should mean more
Hook repeated without explorationSays the phrase but never unpacks itWhat does the hook mean? Show us.
No arcEmotional state same at end as beginningSomething must change—realization, acceptance, escalation

Use this skill in a project

Open any RiverX project, search the Skills panel for jwynia/agent-skills/lyric-diagnostic, and install it in one click.

Use this skill