Purpose
Take a delivery style from DELIVERY_STYLES.md and a target duration, and transform the script currently in the calling agent's conversation context into a v3-tagged script ready for voice generation. The output should match the chosen style's beat structure, signature language, pacing, and audio-tag recipe.
Inputs
delivery_style_name: a key fromDELIVERY_STYLES.md(e.g.UGC-Creator-Confiding).target_duration_seconds: an integer; the desired final spoken length after any post-processing (e.g. 29 for a typical UGC ad).
Assumed context (not loaded by this skill): the unformatted script content lives in the calling agent's conversation. This skill does not accept a --script flag or read from a file — the calling agent supplies the content from its own context and applies this skill's rules to it.
Workflow
- Load the style entry for
delivery_style_namefrom/Users/0xhbam/Desktop/Cursor/content-goose/DELIVERY_STYLES.md. If the name is not found, list available styles and stop. - Compute target word count. Use the style's word-count-by-duration table if available, otherwise derive from
target_duration_seconds × (raw_wpm / 60). For styles that applyatempo > 1.0post-process, compute on the rendered (post-atempo) duration, not the raw v3 read. - Map the existing script to the style's beat structure. The agent rewrites the script so each beat lands close to its template, preserving the brand/product facts already in conversation context. Hit each beat's word-count target within ±20%.
- Apply v3 tagging:
- Open with the single directional audio tag specified in the style's recipe (e.g.
[soft, casual]). - Insert
…for breath-pauses inside the slower beats named in the recipe. - Insert
—for emotional pivots in the beats named in the recipe. - Do not stack or swap audio tags mid-script — they re-color all subsequent sentences.
- Open with the single directional audio tag specified in the style's recipe (e.g.
- Apply signature language patterns from the style entry (softeners, possessive intimacy, sensory triads, signature close).
- Avoid anti-patterns listed in the style entry.
- Return the tagged script as plain text (paragraph per beat). Include a comment block at the bottom listing target duration, target word count, actual word count, and the voice ID + settings recommended by the style entry — so the next skill (
generate-voiceover-elevenlabs-v3) has everything it needs.
Output
Tagged script as text, returned to the calling agent. Example shape:
[soft, casual] <Beat 1 line with … breath pauses>
<Beat 2 line with — pivot>
...
<!-- format-script-to-style
delivery_style: UGC-Creator-Confiding
target_duration_seconds: 29
target_word_count: 115
actual_word_count: 118
recommended_voice_id: jqcCZkN6Knx8BJ5TBdYR # Zara
voice_settings: {stability: 0.40, similarity_boost: 0.75, style: 0.05, use_speaker_boost: true}
post_process: atempo=1.2
-->
Quality Checks
- Every beat from the style's structure is present in the tagged script.
- Actual word count is within ±20% of target word count.
- Exactly one directional audio tag appears at the open. No additional audio tags mid-script.
…and—are placed only in the beats specified by the style's recipe.- Signature close is preserved verbatim if the style entry specifies one (e.g. "perfect for every day").
- None of the style's anti-patterns appear in the tagged script.
Failure Modes
delivery_style_namenot found inDELIVERY_STYLES.md— list available, stop.- Calling agent has no script content in context — surface this and stop; this skill cannot invent product facts.
- Target duration is unachievable for the style (e.g. asking for 10s of a style whose minimum is ~24s). Surface the conflict and ask for either a longer duration or a different style.
- Script content involves claims/CTAs forbidden by the style's anti-patterns and cannot be reformulated without losing the brand message — surface the conflict to the user.