Mandatory pre-flight. Response Filter
Before emitting any rhyme suggestion or rhyme list, run §1 Rhyme suggestion filter of
response-filter. NAME each box's
pass / fail / skip-with-reason (aloud or in reasoning), correct before emission. Skips are valid;
silent skips are not. Without the filter, generic LLM defaults ship instead of Pat's craft:
perfect rhymes, predictable end-lines, single-winner picks.
Purpose
Rhyme choice, rhyme stability, rhyme types, family/additive/subtractive/assonance/consonance,
mosaic (multi-word) rhyme, and rhyme worksheets. Internal Pat-framed generation is PRIMARY; the
live Datamuse lookup supplements only for vocabulary breadth, syllable verification, or
semantic-field mining.
Method content is Pat Pattison's, under the plugin-root ../../context/pat-pattison/; a future
author's method plugs in at context/<author>/ without changing this skill, the author seam per
the plugin-root ../../README.md "Method content and the author seam".
Action Router
/songwriting:rhyme <action> [args]. Parse $ARGUMENTS: first token = action when it matches a listed action, remainder = args; otherwise treat all of $ARGUMENTS as payload for the default.
No action → generate rhymes for the word/line in context (the rhyme default).
| Action |
Use when the user asks for |
Load |
rhyme (default) |
rhyme choice, rhyme stability, rhyme types, family rhyme |
rhyme-generation PRIMARY, rhyme-fundamentals, rhyme-types, rhyme-strategy, rhyme-sonic-bonding |
mosaic |
multi-word rhymes, proper nouns, cross-part-of-speech, "rhyme like Eminem", polysyllabic/rare words |
mosaic-rhyme, rhyme-generation Step 3b |
types |
the rhyme taxonomy and stability tiers |
rhyme-types |
datamuse |
live rhyme lookup, syllable count, synonyms/semantic field via API. Supplemental |
ai-tools, ${CLAUDE_PLUGIN_ROOT}/context/pat-pattison/scripts/datamuse.sh |
worksheet |
a rhyme worksheet from a title, theme, section, or draft |
rhyme-worksheets, rhyme-dictionary-practice, templates/worksheet-prompt |
dictionary |
how to search a rhyming dictionary or avoid identities |
rhyme-dictionary-practice, rhyme-spotlight-connection |
strategy |
which rhyme type/position serves the section's motion and meaning |
rhyme-strategy, rhyme-sonic-bonding |
Handlers
- Pre-flight ALWAYS: run response-filter §1 before any rhyme output.
- Load rhyme-generation FIRST for any
rhyme request. Apply the discipline. Identity check (pre-vowel consonants MUST differ; identity
is NOT rhyme), vowel-FIELD walk (Step 1b, the source word's own coda is ONE row of the field,
not the search), stability-tier walk, vowel triangle, song's-world vocabulary, cliche scan. To
internal vocabulary. Surface 8-15 labeled candidates across tiers, never a single winner.
- Use ai-tools (Datamuse) only as a supplement
for vocabulary breadth, syllable verification, or semantic-field mining. Internal generation is
PRIMARY; Datamuse supplements. The script degrades gracefully when
bash/curl/jq are absent.
- Proper nouns and polysyllabic/rare words are mosaic territory. Route to
mosaic.
Persistence and template overrides
Write generated files to the paths in
artifact-persistence
"Where generated work persists", and honor a consuming project's own songwriting layout when it
defines one. Before loading any bundled templates/<name>.md, check
${CLAUDE_PROJECT_DIR}/songwriting/templates/pat-pattison/<name>.md first: a project-level
override wins over the bundled skill default, first match, per that file's "Template override".
Boundary. What this skill must NOT emit
This skill surfaces rhyme candidates and stress-tests them. It does not decide, and it does not
write the line the rhyme lands in.
| If you are about to emit |
STOP and route to |
| A finished lyric line built around a chosen rhyme |
/songwriting:co-write line-brainstorm |
| A single winning rhyme presented as the answer |
nothing. Surface the labeled menu and let the writer pick by emotional intent |
| A structural judgement about where the rhyme sits |
/songwriting:song-form |
| A claim that a candidate scans |
/songwriting:meter-prosody |
Three failures belong to this skill specifically and are caught nowhere downstream: a rhyme list
that is all-perfect, all-single-word, and all-same-part-of-speech; a "mosaic" list whose entries
reuse the source word with a prefix (identity in disguise); and a tier-labeled, mosaic-complete
list whose every entry still sits on the source word's own coda, a column sweep, not a walk of
the stressed vowel's field. §1 of the response filter names all three fail signatures. Run it
rather than recalling it.
Related skills
- Scansion, stress, meter paradigms →
/songwriting:meter-prosody meter
- High-volume swaps for ONE line (end-line × content × internal × image × whole-line) →
/songwriting:co-write line-brainstorm
- Cliche repair for images/metaphors →
/songwriting:object-writing cliche
1---2name: rhyme3description: Find and stress-test rhymes with Pat Pattison's discipline. Identity check, stability-tier walk, vowel triangle, song-world vocabulary, mosaic/multi-word rhyme, cliche scan. Internal generation is primary (8-15 labeled candidates, never a single winner); the Datamuse API supplements for breadth/syllables/semantic field. Use when: 'rhyme this', 'find rhymes for X', 'why does this rhyme feel weak', 'mosaic rhyme', 'rhyme this proper noun', 'rhyme like Eminem', 'syllable count of X', 'rhyme worksheet'. For meter/scansion use /songwriting:meter-prosody; for line-volume dumps use /songwriting:co-write line-brainstorm.4---56## Mandatory pre-flight. Response Filter78Before emitting any rhyme suggestion or rhyme list, run **§1 Rhyme suggestion filter** of9[response-filter](../../context/pat-pattison/research/response-filter.md). NAME each box's10pass / fail / skip-with-reason (aloud or in reasoning), correct before emission. Skips are valid;11silent skips are not. Without the filter, generic LLM defaults ship instead of Pat's craft:12perfect rhymes, predictable end-lines, single-winner picks.1314## Purpose1516Rhyme choice, rhyme stability, rhyme types, family/additive/subtractive/assonance/consonance,17mosaic (multi-word) rhyme, and rhyme worksheets. Internal Pat-framed generation is PRIMARY; the18live Datamuse lookup supplements only for vocabulary breadth, syllable verification, or19semantic-field mining.2021Method content is Pat Pattison's, under the plugin-root `../../context/pat-pattison/`; a future22author's method plugs in at `context/<author>/` without changing this skill, the author seam per23the plugin-root `../../README.md` "Method content and the author seam".2425## Action Router2627`/songwriting:rhyme <action> [args]`. Parse `$ARGUMENTS`: first token = action when it matches a listed action, remainder = args; otherwise treat all of `$ARGUMENTS` as payload for the default.28No action → generate rhymes for the word/line in context (the `rhyme` default).2930| Action | Use when the user asks for | Load |31| --- | --- | --- |32| `rhyme` (default) | rhyme choice, rhyme stability, rhyme types, family rhyme | [rhyme-generation](../../context/pat-pattison/research/rhyme-generation.md) PRIMARY, [rhyme-fundamentals](../../context/pat-pattison/research/rhyme-fundamentals.md), [rhyme-types](../../context/pat-pattison/research/rhyme-types.md), [rhyme-strategy](../../context/pat-pattison/research/rhyme-strategy.md), [rhyme-sonic-bonding](../../context/pat-pattison/research/rhyme-sonic-bonding.md) |33| `mosaic` | multi-word rhymes, proper nouns, cross-part-of-speech, "rhyme like Eminem", polysyllabic/rare words | [mosaic-rhyme](../../context/pat-pattison/research/mosaic-rhyme.md), [rhyme-generation](../../context/pat-pattison/research/rhyme-generation.md) Step 3b |34| `types` | the rhyme taxonomy and stability tiers | [rhyme-types](../../context/pat-pattison/research/rhyme-types.md) |35| `datamuse` | live rhyme lookup, syllable count, synonyms/semantic field via API. Supplemental | [ai-tools](../../context/pat-pattison/research/ai-tools.md), `${CLAUDE_PLUGIN_ROOT}/context/pat-pattison/scripts/datamuse.sh` |36| `worksheet` | a rhyme worksheet from a title, theme, section, or draft | [rhyme-worksheets](../../context/pat-pattison/research/rhyme-worksheets.md), [rhyme-dictionary-practice](../../context/pat-pattison/research/rhyme-dictionary-practice.md), [templates/worksheet-prompt](../../context/pat-pattison/templates/worksheet-prompt.md) |37| `dictionary` | how to search a rhyming dictionary or avoid identities | [rhyme-dictionary-practice](../../context/pat-pattison/research/rhyme-dictionary-practice.md), [rhyme-spotlight-connection](../../context/pat-pattison/research/rhyme-spotlight-connection.md) |38| `strategy` | which rhyme type/position serves the section's motion and meaning | [rhyme-strategy](../../context/pat-pattison/research/rhyme-strategy.md), [rhyme-sonic-bonding](../../context/pat-pattison/research/rhyme-sonic-bonding.md) |3940## Handlers4142- **Pre-flight ALWAYS:** run response-filter §1 before any rhyme output.43- Load [rhyme-generation](../../context/pat-pattison/research/rhyme-generation.md) FIRST for any44 rhyme request. Apply the discipline. Identity check (pre-vowel consonants MUST differ; identity45 is NOT rhyme), vowel-FIELD walk (Step 1b, the source word's own coda is ONE row of the field,46 not the search), stability-tier walk, vowel triangle, song's-world vocabulary, cliche scan. To47 internal vocabulary. Surface 8-15 labeled candidates across tiers, never a single winner.48- Use [ai-tools](../../context/pat-pattison/research/ai-tools.md) (Datamuse) only as a supplement49 for vocabulary breadth, syllable verification, or semantic-field mining. Internal generation is50 PRIMARY; Datamuse supplements. The script degrades gracefully when `bash`/`curl`/`jq` are absent.51- Proper nouns and polysyllabic/rare words are mosaic territory. Route to `mosaic`.5253## Persistence and template overrides5455Write generated files to the paths in56[artifact-persistence](../../context/pat-pattison/research/artifact-persistence.md)57"Where generated work persists", and honor a consuming project's own songwriting layout when it58defines one. Before loading any bundled `templates/<name>.md`, check59`${CLAUDE_PROJECT_DIR}/songwriting/templates/pat-pattison/<name>.md` first: a project-level60override wins over the bundled skill default, first match, per that file's "Template override".6162## Boundary. What this skill must NOT emit6364This skill surfaces rhyme candidates and stress-tests them. It does not decide, and it does not65write the line the rhyme lands in.6667| If you are about to emit | STOP and route to |68| --- | --- |69| A finished lyric line built around a chosen rhyme | `/songwriting:co-write` line-brainstorm |70| A single winning rhyme presented as the answer | nothing. Surface the labeled menu and let the writer pick by emotional intent |71| A structural judgement about where the rhyme sits | `/songwriting:song-form` |72| A claim that a candidate scans | `/songwriting:meter-prosody` |7374Three failures belong to this skill specifically and are caught nowhere downstream: a rhyme list75that is all-perfect, all-single-word, and all-same-part-of-speech; a "mosaic" list whose entries76reuse the source word with a prefix (identity in disguise); and a tier-labeled, mosaic-complete77list whose every entry still sits on the source word's own coda, a column sweep, not a walk of78the stressed vowel's field. §1 of the response filter names all three fail signatures. Run it79rather than recalling it.8081## Related skills8283- Scansion, stress, meter paradigms → `/songwriting:meter-prosody meter`84- High-volume swaps for ONE line (end-line × content × internal × image × whole-line) →85 `/songwriting:co-write line-brainstorm`86- Cliche repair for images/metaphors → `/songwriting:object-writing cliche`