Phrases now compete in the perfect-rhyme pass anchored at their first
word's stressed vowel ("stir up" = ER AH P = "syrup"), render as
underlines while words render as fills, and can overlap in different
colors — the syrup/cup knot finally displays both schemes. Stopword-
anchored phrases attach only on exact rime identity. Segment-based
highlight renderer replaces the span-per-token one.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When >=60% of a stanza's lines share a syllable count (+-1), outliers
get a wavy underline and the readout names the target count.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Browser-tab-style chips above the editor; docs live in localStorage
with auto-titles from the first line, deletion backup, and migration
of the single-draft era.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Ringer stress test: anaphora (don't/just/like/gonna/wanna/'cause/
even/me) lit up dozens of false internal rhymes. Fillers now only
count at line endings, where their use is deliberate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
militia (IH-AH) now catches commissioner (IH-AH-ER) — a trailing
reduced syllable falls off the beat. Phrase distinctness is checked by
anchor word so "fire burns" can't pose as a rhyme partner for "fire".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMU stress markers -> stress string per line, scored against the
classical feet (iamb, trochee, anapest, dactyl, amphibrach) with
flexible monosyllables. Syllable count + best-fit meter shown in the
toolbar readout for the caret line.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>