Mandatory pre-flight. Response Filter
Every craft output in this plugin runs the applicable section of
response-filter before emission, the gate
that activates the discipline. When this skill coaches or produces material directly, run §4
Coaching posture (and the output-type section for anything emitted). NAME each box's pass / fail /
skip-with-reason (aloud or in reasoning); correct before emission. Skips are valid; silent skips
are not.
When an action here emits a lyric line, most often fragment, the output-type section is §2. §2's
Reference: line is a load list, not a bibliography: §2 has not been run until the files it
names have been read this session, at minimum
meter and
phrasing before the first candidate, plus
metaphor when the fragment needs an image or a
figure. Naming the §2 boxes while those files were never opened attests to the filter instead of
applying it, per
response-filter "§2 Line-writing filter".
A Load cell in the Action Router below is a routing hint; this is a precondition of
emission. §2's boxes are then cycled inside
line-edit-rubric, the full cycle per
candidate before it is shown. Line emission belongs to /songwriting:co-write, and its input gate
travels with the lines: route there, or check the same gate here. Do not emit lines on the strength
of having named §2. (Plugin-authored, not Pat Pattison's.)
Purpose
The orchestrator and front door. Turn a situation ("I have half a song", "blank page", "co-write
tonight") into the right scenario and the right craft skill, and run guided step-by-step dialog when
the writer wants to be walked through it. When the user names a craft term (rhyme, meter, form,
image), route straight to that concern skill.
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".
Concern skills. Route craft-term requests here
| The user wants |
Skill |
| rhyme choice, rhyme types, mosaic, rhyme worksheet, syllable/Datamuse lookup |
/songwriting:rhyme |
| object writing, metaphor, cliche repair, point of view |
/songwriting:object-writing |
| scansion, meter, prosody, phrasing, stability, lyric-melody fit |
/songwriting:meter-prosody |
| form, song forms, hook, repetition, verse, bridge, box model |
/songwriting:song-form |
| co-write protocol, Title Game, titles, high-volume line/section dumps |
/songwriting:co-write |
| diagnose a draft, demo review, pre-lock audit, variations, rewrite |
/songwriting:diagnose |
| daily practice curriculum, numbered exercises |
/songwriting:practice |
| Suno v5.5 prompt formatting (separate capability) |
/songwriting:suno |
Action Router
/songwriting:workflow <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 → route on conversation context (pick the scenario the situation describes).
| Action |
Use when the user describes |
Load |
workflow (default) |
brand-new song / existing-song revision / from a title / to a melody / co-write / diagnose-only / daily habit / brainstorm / idea / fragment / demo |
workflows. Picks the scenario chain (11 scenarios) |
coach |
"guide me", "walk me through", "help me think", "what next". Dynamic step-by-step dialog |
coaching-protocol, workflows |
brainstorm |
"blank page", "no idea", "starting cold", "give me anything" |
brainstorm, templates/brainstorm-opener |
idea |
"I have an idea / image / phrase / feeling but no title" |
idea-to-title, templates/idea-to-title-prompt, object-writing |
fragment |
"I have this line / hook / half-verse. Won't grow" |
fragment-development, templates/fragment-development-prompt, verse-development, meter, phrasing, line-edit-rubric |
filter |
"apply Pat's filter to this", "review my AI-generated rhyme list", "is this passing the discipline". Diagnostic mode |
response-filter |
beyond-books |
Coursera / Berklee Online / patpattison.com columns / podcasts / workshops, "how do I go deeper" |
beyond-books |
Full scenario + craft-term routing tables and the Quick Decision Guide (35+ user-question → route
mappings across all skills) live in
action-routing. Load it when routing is
ambiguous or when surfacing the menu.
Songwriter Workflow Scenarios
11 scenarios via workflow (chains in
workflows):
- Brand new song from scratch
- Existing song revision
- Writing from a title
- Writing to an existing melody
- Co-write session start
- Diagnose without rewrite
- Build a daily practice habit
- Pure brainstorm (no seed yet)
- Idea / seed but no title
- Fragment in hand
- Demo at any stage
Each scenario lists which context files to load in what order and which concern skill owns the deep
dive. Every scenario routes through
response-filter at emission time.
Handlers
- If the user describes a SITUATION (not a craft term), route via
workflow to the matching
scenario, then hand the deep dive to the concern skill that owns it.
- If the user names a CRAFT TERM, route straight to the concern skill (table above). Do not
re-explain here.
- If the user wants step-by-step guidance, run
coach: ask ONE question, wait, apply Pat's tool,
surface the next choice point. Never list-and-leave; never monologue 14 steps.
- If the user gives a draft, that is diagnosis. Invoke
/songwriting:diagnose via the Skill tool (demo for any
stage, diagnose for near-complete).
- If the user pastes an incomplete fragment / idea / half-song, route to
fragment or idea here.
- If a session is heading toward line emission and no writer voiceprint exists, building one is
the first step, not a polish step. See
voiceprint.
- When this skill emits or coaches on candidate LINES directly (rather than routing), show them as
full section blocks in context. Changed lines marked
►, one labeled block per variation, 3-4
per chat menu, deeper analysis in the song's variations/ file. See variations "Presenting the candidates — chat vs file".
- Coaching stops generating when execution keeps missing: after the writer rejects the EXECUTION in
one slot twice, hand the concept back instead of a third batch (
/songwriting:co-write Handlers
specifies what that handoff contains). Two misses in the same slot say the brief is wrong, not
that the next batch will land.
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".
What this plugin does not do
Pat's books cover lyric craft and structure. This plugin does not handle melody writing, chords,
arrangement, production/mixing, vocal coaching, or music business. For Suno prompt formatting use
/songwriting:suno, a separate capability that formats a finished lyric; it does not load these
skills, and these skills do not import from it.
1---2name: workflow3description: Start-here situation router for songwriting with Pat Pattison's methods. Picks the scenario for a blank page, an idea/seed, a stuck fragment, a co-write, a diagnose-only pass, or a daily habit, and runs step-by-step coaching dialog. Also applies Pat's response filter to AI-generated material and points to going-deeper resources (Coursera / Berklee / columns / podcasts). Use when: 'I want to write a new song', 'I have nothing — just want to write', 'I have an image but no title', 'this fragment is stuck', 'walk me through writing this', 'guide me', 'where do I start', 'review the rhyme list this AI gave me', 'how do I go deeper'. Craft-specific requests route to the concern skills below.4---56## Mandatory pre-flight. Response Filter78Every craft output in this plugin runs the applicable section of9[response-filter](../../context/pat-pattison/research/response-filter.md) before emission, the gate10that activates the discipline. When this skill coaches or produces material directly, run **§411Coaching posture** (and the output-type section for anything emitted). NAME each box's pass / fail /12skip-with-reason (aloud or in reasoning); correct before emission. Skips are valid; silent skips13are not.1415When an action here emits a lyric line, most often `fragment`, the output-type section is §2. §2's16**Reference:** line is a load list, not a bibliography: §2 has not been run until the files it17names have been read this session, at minimum18[meter](../../context/pat-pattison/research/meter.md) and19[phrasing](../../context/pat-pattison/research/phrasing.md) before the first candidate, plus20[metaphor](../../context/pat-pattison/research/metaphor.md) when the fragment needs an image or a21figure. Naming the §2 boxes while those files were never opened attests to the filter instead of22applying it, per23[response-filter](../../context/pat-pattison/research/response-filter.md) "§2 Line-writing filter".24A `Load` cell in the Action Router below is a routing hint; this is a precondition of25emission. §2's boxes are then cycled inside26[line-edit-rubric](../../context/pat-pattison/research/line-edit-rubric.md), the full cycle per27candidate before it is shown. Line emission belongs to `/songwriting:co-write`, and its input gate28travels with the lines: route there, or check the same gate here. Do not emit lines on the strength29of having named §2. *(Plugin-authored, not Pat Pattison's.)*3031## Purpose3233The orchestrator and front door. Turn a situation ("I have half a song", "blank page", "co-write34tonight") into the right scenario and the right craft skill, and run guided step-by-step dialog when35the writer wants to be walked through it. When the user names a craft term (rhyme, meter, form,36image), route straight to that concern skill.3738Method content is Pat Pattison's, under the plugin-root `../../context/pat-pattison/`; a future39author's method plugs in at `context/<author>/` without changing this skill, the author seam per40the plugin-root `../../README.md` "Method content and the author seam".4142## Concern skills. Route craft-term requests here4344| The user wants | Skill |45| --- | --- |46| rhyme choice, rhyme types, mosaic, rhyme worksheet, syllable/Datamuse lookup | `/songwriting:rhyme` |47| object writing, metaphor, cliche repair, point of view | `/songwriting:object-writing` |48| scansion, meter, prosody, phrasing, stability, lyric-melody fit | `/songwriting:meter-prosody` |49| form, song forms, hook, repetition, verse, bridge, box model | `/songwriting:song-form` |50| co-write protocol, Title Game, titles, high-volume line/section dumps | `/songwriting:co-write` |51| diagnose a draft, demo review, pre-lock audit, variations, rewrite | `/songwriting:diagnose` |52| daily practice curriculum, numbered exercises | `/songwriting:practice` |53| Suno v5.5 prompt formatting (separate capability) | `/songwriting:suno` |5455## Action Router5657`/songwriting:workflow <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.58No action → route on conversation context (pick the scenario the situation describes).5960| Action | Use when the user describes | Load |61| --- | --- | --- |62| `workflow` (default) | brand-new song / existing-song revision / from a title / to a melody / co-write / diagnose-only / daily habit / brainstorm / idea / fragment / demo | [workflows](../../context/pat-pattison/research/workflows.md). Picks the scenario chain (11 scenarios) |63| `coach` | "guide me", "walk me through", "help me think", "what next". Dynamic step-by-step dialog | [coaching-protocol](../../context/pat-pattison/research/coaching-protocol.md), [workflows](../../context/pat-pattison/research/workflows.md) |64| `brainstorm` | "blank page", "no idea", "starting cold", "give me anything" | [brainstorm](../../context/pat-pattison/research/brainstorm.md), [templates/brainstorm-opener](../../context/pat-pattison/templates/brainstorm-opener.md) |65| `idea` | "I have an idea / image / phrase / feeling but no title" | [idea-to-title](../../context/pat-pattison/research/idea-to-title.md), [templates/idea-to-title-prompt](../../context/pat-pattison/templates/idea-to-title-prompt.md), [object-writing](../../context/pat-pattison/research/object-writing.md) |66| `fragment` | "I have this line / hook / half-verse. Won't grow" | [fragment-development](../../context/pat-pattison/research/fragment-development.md), [templates/fragment-development-prompt](../../context/pat-pattison/templates/fragment-development-prompt.md), [verse-development](../../context/pat-pattison/research/verse-development.md), [meter](../../context/pat-pattison/research/meter.md), [phrasing](../../context/pat-pattison/research/phrasing.md), [line-edit-rubric](../../context/pat-pattison/research/line-edit-rubric.md) |67| `filter` | "apply Pat's filter to this", "review my AI-generated rhyme list", "is this passing the discipline". Diagnostic mode | [response-filter](../../context/pat-pattison/research/response-filter.md) |68| `beyond-books` | Coursera / Berklee Online / patpattison.com columns / podcasts / workshops, "how do I go deeper" | [beyond-books](../../context/pat-pattison/research/beyond-books.md) |6970Full scenario + craft-term routing tables and the Quick Decision Guide (35+ user-question → route71mappings across all skills) live in72[action-routing](../../context/pat-pattison/research/action-routing.md). Load it when routing is73ambiguous or when surfacing the menu.7475## Songwriter Workflow Scenarios767711 scenarios via `workflow` (chains in78[workflows](../../context/pat-pattison/research/workflows.md)):79801. Brand new song from scratch812. Existing song revision823. Writing from a title834. Writing to an existing melody845. Co-write session start856. Diagnose without rewrite867. Build a daily practice habit878. Pure brainstorm (no seed yet)889. Idea / seed but no title8910. Fragment in hand9011. Demo at any stage9192Each scenario lists which context files to load in what order and which concern skill owns the deep93dive. Every scenario routes through94[response-filter](../../context/pat-pattison/research/response-filter.md) at emission time.9596## Handlers9798- If the user describes a SITUATION (not a craft term), route via `workflow` to the matching99 scenario, then hand the deep dive to the concern skill that owns it.100- If the user names a CRAFT TERM, route straight to the concern skill (table above). Do not101 re-explain here.102- If the user wants step-by-step guidance, run `coach`: ask ONE question, wait, apply Pat's tool,103 surface the next choice point. Never list-and-leave; never monologue 14 steps.104- If the user gives a draft, that is diagnosis. Invoke `/songwriting:diagnose` via the Skill tool (`demo` for any105 stage, `diagnose` for near-complete).106- If the user pastes an incomplete fragment / idea / half-song, route to `fragment` or `idea` here.107- If a session is heading toward line emission and no writer voiceprint exists, building one is108 the first step, not a polish step. See109 [voiceprint](../../context/pat-pattison/research/voiceprint.md).110- When this skill emits or coaches on candidate LINES directly (rather than routing), show them as111 full section blocks in context. Changed lines marked `►`, one labeled block per variation, 3-4112 per chat menu, deeper analysis in the song's `variations/` file. See [variations](../../context/pat-pattison/research/variations.md) "Presenting the candidates — chat vs file".113- Coaching stops generating when execution keeps missing: after the writer rejects the EXECUTION in114 one slot twice, hand the concept back instead of a third batch (`/songwriting:co-write` Handlers115 specifies what that handoff contains). Two misses in the same slot say the brief is wrong, not116 that the next batch will land.117118## Persistence and template overrides119120Write generated files to the paths in121[artifact-persistence](../../context/pat-pattison/research/artifact-persistence.md)122"Where generated work persists", and honor a consuming project's own songwriting layout when it123defines one. Before loading any bundled `templates/<name>.md`, check124`${CLAUDE_PROJECT_DIR}/songwriting/templates/pat-pattison/<name>.md` first: a project-level125override wins over the bundled skill default, first match, per that file's "Template override".126127## What this plugin does not do128129Pat's books cover lyric craft and structure. This plugin does not handle melody writing, chords,130arrangement, production/mixing, vocal coaching, or music business. For Suno prompt formatting use131`/songwriting:suno`, a separate capability that formats a finished lyric; it does not load these132skills, and these skills do not import from it.