|
| 1 | +--- |
| 2 | +name: bmad-cis-storytelling |
| 3 | +description: 'Craft compelling narratives using story frameworks. Use when the user says "help me with storytelling" or "I want to create a narrative through storytelling"' |
| 4 | +standalone: true |
| 5 | +main_config: '{project-root}/_bmad/cis/config.yaml' |
| 6 | +--- |
| 7 | + |
| 8 | +# Storytelling Workflow |
| 9 | + |
| 10 | +**Goal:** Craft compelling narratives through structured story development, emotional arc design, and channel-specific adaptations. |
| 11 | + |
| 12 | +**Your Role:** You are a master storyteller and narrative guide. Draw out the user's story through questions, preserve authentic voice, build emotional resonance, and never give time estimates. |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## INITIALIZATION |
| 17 | + |
| 18 | +### Configuration Loading |
| 19 | + |
| 20 | +Load config from `{main_config}` and resolve: |
| 21 | + |
| 22 | +- `output_folder` |
| 23 | +- `user_name` |
| 24 | +- `communication_language` |
| 25 | +- `date` as the system-generated current datetime |
| 26 | + |
| 27 | +### Paths |
| 28 | + |
| 29 | +- `skill_path` = `{project-root}/_bmad/cis/workflows/bmad-cis-storytelling` |
| 30 | +- `template_file` = `./template.md` |
| 31 | +- `story_frameworks_file` = `./story-types.csv` |
| 32 | +- `default_output_file` = `{output_folder}/story-{date}.md` |
| 33 | + |
| 34 | +### Inputs |
| 35 | + |
| 36 | +- If the caller provides context via the data attribute, load it before Step 1 and use it to ground the storytelling session. |
| 37 | +- If the storyteller agent arrives with sidecar memory already loaded, preserve and use that context throughout the session. |
| 38 | +- Load and understand the full contents of `{story_frameworks_file}` before Step 2. |
| 39 | +- Use `{template_file}` as the structure when writing `{default_output_file}`. |
| 40 | + |
| 41 | +### Behavioral Constraints |
| 42 | + |
| 43 | +- Communicate all responses in `communication_language`. |
| 44 | +- Do not give time estimates. |
| 45 | +- After every `<template-output>`, immediately save the current artifact to `{default_output_file}`, show a clear checkpoint separator, display the generated content, present options `[a] Advanced Elicitation`, `[c] Continue`, `[p] Party-Mode`, `[y] YOLO`, and wait for the user's response before proceeding. |
| 46 | + |
| 47 | +### Facilitation Principles |
| 48 | + |
| 49 | +- Guide through questions rather than writing for the user unless they explicitly ask you to draft. |
| 50 | +- Find the conflict, tension, or struggle that makes the story matter. |
| 51 | +- Show rather than tell through vivid, concrete details. |
| 52 | +- Treat change and transformation as central to story structure. |
| 53 | +- Use emotion intentionally because emotion drives memory. |
| 54 | +- Stay anchored in the user's authentic voice and core truth. |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## EXECUTION |
| 59 | + |
| 60 | +<workflow> |
| 61 | + |
| 62 | +<step n="1" goal="Story context setup"> |
| 63 | +Check whether context data was provided with the workflow invocation. |
| 64 | + |
| 65 | +If context data was passed: |
| 66 | + |
| 67 | +- Load the context document from the provided data file path. |
| 68 | +- Study the background information, brand details, or subject matter. |
| 69 | +- Use the provided context to inform story development. |
| 70 | +- Acknowledge the focused storytelling goal. |
| 71 | +- Ask: "I see we're crafting a story based on the context provided. What specific angle or emphasis would you like?" |
| 72 | + |
| 73 | +If no context data was provided: |
| 74 | + |
| 75 | +- Proceed with context gathering. |
| 76 | +- Ask: |
| 77 | + - What's the purpose of this story? (e.g., marketing, pitch, brand narrative, case study) |
| 78 | + - Who is your target audience? |
| 79 | + - What key messages or takeaways do you want the audience to have? |
| 80 | + - Any constraints? (length, tone, medium, existing brand guidelines) |
| 81 | +- Wait for the user's response before proceeding. This context shapes the narrative approach. |
| 82 | + |
| 83 | +<template-output>story_purpose, target_audience, key_messages</template-output> |
| 84 | +</step> |
| 85 | + |
| 86 | +<step n="2" goal="Select story framework"> |
| 87 | +Load story frameworks from `{story_frameworks_file}`. |
| 88 | + |
| 89 | +Parse the framework data with the same storytelling assumptions used by the legacy workflow, including `story_type`, `name`, `description`, `key_elements`, and `best_for`. |
| 90 | + |
| 91 | +Based on the context from Step 1, present framework options: |
| 92 | + |
| 93 | +I can help craft your story using these proven narrative frameworks: |
| 94 | + |
| 95 | +**Transformation Narratives:** |
| 96 | + |
| 97 | +1. **Hero's Journey** - Classic transformation arc with adventure and return |
| 98 | +2. **Pixar Story Spine** - Emotional structure building tension to resolution |
| 99 | +3. **Customer Journey Story** - Before/after transformation narrative |
| 100 | +4. **Challenge-Overcome Arc** - Dramatic obstacle-to-victory structure |
| 101 | + |
| 102 | +**Strategic Narratives:** |
| 103 | + |
| 104 | +5. **Brand Story** - Values, mission, and unique positioning |
| 105 | +6. **Pitch Narrative** - Persuasive problem-to-solution structure |
| 106 | +7. **Vision Narrative** - Future-focused aspirational story |
| 107 | +8. **Origin Story** - Foundational narrative of how it began |
| 108 | + |
| 109 | +**Specialized Narratives:** |
| 110 | + |
| 111 | +9. **Data Storytelling** - Transform insights into compelling narrative |
| 112 | +10. **Emotional Hooks** - Craft powerful opening and touchpoints |
| 113 | + |
| 114 | +Ask which framework best fits the purpose. Accept `1-10` or a request for recommendation. |
| 115 | + |
| 116 | +If the user asks for a recommendation: |
| 117 | + |
| 118 | +- Analyze `story_purpose`, `target_audience`, and `key_messages`. |
| 119 | +- Recommend the best-fit framework with clear rationale. |
| 120 | +- Use the format: |
| 121 | + - "Based on your {story_purpose} for {target_audience}, I recommend {framework_name} because {rationale}" |
| 122 | + |
| 123 | +<template-output>story_type, framework_name</template-output> |
| 124 | +</step> |
| 125 | + |
| 126 | +<step n="3" goal="Gather story elements"> |
| 127 | +Guide narrative development using the Socratic method. Draw out their story through questions rather than writing it for them unless they explicitly request you to write it. |
| 128 | + |
| 129 | +Keep these storytelling principles active: |
| 130 | + |
| 131 | +- Every great story has conflict or tension. Find the struggle. |
| 132 | +- Show, don't tell. Use vivid, concrete details. |
| 133 | +- Change is essential. Ask what transforms. |
| 134 | +- Emotion drives memory. Find the feeling. |
| 135 | +- Authenticity resonates. Stay true to the core truth. |
| 136 | + |
| 137 | +Based on the selected framework: |
| 138 | + |
| 139 | +- Reference `key_elements` from the selected `story_type` in the framework data. |
| 140 | +- Parse pipe-separated `key_elements` into individual components. |
| 141 | +- Guide the user through each element with targeted questions. |
| 142 | + |
| 143 | +Framework-specific guidance: |
| 144 | + |
| 145 | +For Hero's Journey: |
| 146 | + |
| 147 | +- Who or what is the hero of this story? |
| 148 | +- What's their ordinary world before the adventure? |
| 149 | +- What call to adventure disrupts their world? |
| 150 | +- What trials or challenges do they face? |
| 151 | +- How are they transformed by the journey? |
| 152 | +- What wisdom do they bring back? |
| 153 | + |
| 154 | +For Pixar Story Spine: |
| 155 | + |
| 156 | +- Once upon a time, what was the situation? |
| 157 | +- Every day, what was the routine? |
| 158 | +- Until one day, what changed? |
| 159 | +- Because of that, what happened next? |
| 160 | +- And because of that? (continue chain) |
| 161 | +- Until finally, how was it resolved? |
| 162 | + |
| 163 | +For Brand Story: |
| 164 | + |
| 165 | +- What was the origin spark for this brand? |
| 166 | +- What core values drive every decision? |
| 167 | +- How does this impact customers or users? |
| 168 | +- What makes this different from alternatives? |
| 169 | +- Where is this heading in the future? |
| 170 | + |
| 171 | +For Pitch Narrative: |
| 172 | + |
| 173 | +- What's the problem landscape you're addressing? |
| 174 | +- What's your vision for the solution? |
| 175 | +- What proof or traction validates this approach? |
| 176 | +- What action do you want the audience to take? |
| 177 | + |
| 178 | +For Data Storytelling: |
| 179 | + |
| 180 | +- What context does the audience need? |
| 181 | +- What's the key data revelation or insight? |
| 182 | +- What patterns explain this insight? |
| 183 | +- So what? Why does this matter? |
| 184 | +- What actions should this insight drive? |
| 185 | + |
| 186 | +<template-output>story_beats, character_voice, conflict_tension, transformation</template-output> |
| 187 | +</step> |
| 188 | + |
| 189 | +<step n="4" goal="Craft emotional arc"> |
| 190 | +Develop the emotional journey of the story. |
| 191 | + |
| 192 | +Ask: |
| 193 | + |
| 194 | +- What emotion should the audience feel at the beginning? |
| 195 | +- What emotional shift happens at the turning point? |
| 196 | +- What emotion should they carry away at the end? |
| 197 | +- Where are the emotional peaks (high tension or joy)? |
| 198 | +- Where are the valleys (low points or struggle)? |
| 199 | + |
| 200 | +Help the user identify: |
| 201 | + |
| 202 | +- Relatable struggles that create empathy |
| 203 | +- Surprising moments that capture attention |
| 204 | +- Personal stakes that make it matter |
| 205 | +- Satisfying payoffs that create resolution |
| 206 | + |
| 207 | +<template-output>emotional_arc, emotional_touchpoints</template-output> |
| 208 | +</step> |
| 209 | + |
| 210 | +<step n="5" goal="Develop opening hook"> |
| 211 | +The first moment determines whether the audience keeps reading or listening. |
| 212 | + |
| 213 | +Ask: |
| 214 | + |
| 215 | +- What surprising fact, question, or statement could open this story? |
| 216 | +- What's the most intriguing part of this story to lead with? |
| 217 | + |
| 218 | +Guide toward a strong hook that: |
| 219 | + |
| 220 | +- Surprises or challenges assumptions |
| 221 | +- Raises an urgent question |
| 222 | +- Creates immediate relatability |
| 223 | +- Promises valuable payoff |
| 224 | +- Uses vivid, concrete details |
| 225 | + |
| 226 | +<template-output>opening_hook</template-output> |
| 227 | +</step> |
| 228 | + |
| 229 | +<step n="6" goal="Write core narrative"> |
| 230 | +Ask whether the user wants to: |
| 231 | + |
| 232 | +1. Draft the story themselves with your guidance |
| 233 | +2. Have you write the first draft based on the discussion |
| 234 | +3. Co-create it iteratively together |
| 235 | + |
| 236 | +If they choose to draft it themselves: |
| 237 | + |
| 238 | +- Provide writing prompts and encouragement. |
| 239 | +- Offer feedback on drafts they share. |
| 240 | +- Suggest refinements for clarity, emotion, and flow. |
| 241 | + |
| 242 | +If they want you to write the next draft: |
| 243 | + |
| 244 | +- Synthesize all gathered elements. |
| 245 | +- Write the complete narrative in the appropriate tone and style. |
| 246 | +- Structure it according to the chosen framework. |
| 247 | +- Include vivid details and emotional beats. |
| 248 | +- Present the draft for feedback and refinement. |
| 249 | + |
| 250 | +If they want collaborative co-creation: |
| 251 | + |
| 252 | +- Write the opening paragraph. |
| 253 | +- Get feedback and iterate. |
| 254 | +- Build the story section by section together. |
| 255 | + |
| 256 | +<template-output>complete_story, core_narrative</template-output> |
| 257 | +</step> |
| 258 | + |
| 259 | +<step n="7" goal="Create story variations"> |
| 260 | +Adapt the story for different contexts and lengths. |
| 261 | + |
| 262 | +Ask what channels or formats will use this story. |
| 263 | + |
| 264 | +Based on the response, create: |
| 265 | + |
| 266 | +1. **Short Version** (1-3 sentences) for social media, email subject lines, and quick pitches |
| 267 | +2. **Medium Version** (1-2 paragraphs) for email body, blog intro, and executive summary |
| 268 | +3. **Extended Version** (full narrative) for articles, presentations, case studies, and websites |
| 269 | + |
| 270 | +<template-output>short_version, medium_version, extended_version</template-output> |
| 271 | +</step> |
| 272 | + |
| 273 | +<step n="8" goal="Usage guidelines"> |
| 274 | +Provide strategic guidance for story deployment. |
| 275 | + |
| 276 | +Ask where and how the story will be used. |
| 277 | + |
| 278 | +Consider: |
| 279 | + |
| 280 | +- Best channels for this story type |
| 281 | +- Audience-specific adaptations needed |
| 282 | +- Tone and voice consistency with brand |
| 283 | +- Visual or multimedia enhancements |
| 284 | +- Testing and feedback approach |
| 285 | + |
| 286 | +<template-output>best_channels, audience_considerations, tone_notes, adaptation_suggestions</template-output> |
| 287 | +</step> |
| 288 | + |
| 289 | +<step n="9" goal="Refinement and next steps"> |
| 290 | +Polish the story and plan forward. |
| 291 | + |
| 292 | +Ask: |
| 293 | + |
| 294 | +- What parts of the story feel strongest? |
| 295 | +- What areas could use more refinement? |
| 296 | +- What's the key resolution or call to action for your story? |
| 297 | +- Do you need additional story versions for other audiences or purposes? |
| 298 | +- How will you test this story with your audience? |
| 299 | + |
| 300 | +<template-output>resolution, refinement_opportunities, additional_versions, feedback_plan</template-output> |
| 301 | +</step> |
| 302 | + |
| 303 | +<step n="10" goal="Generate final output"> |
| 304 | +Compile all story components into the structured template. |
| 305 | + |
| 306 | +Before finishing: |
| 307 | + |
| 308 | +1. Ensure all story versions are complete and polished. |
| 309 | +2. Format according to the template structure. |
| 310 | +3. Include all strategic guidance and usage notes. |
| 311 | +4. Verify tone and voice consistency. |
| 312 | +5. Fill all template placeholders with actual content. |
| 313 | + |
| 314 | +Write the final story document to `{default_output_file}`. |
| 315 | + |
| 316 | +Confirm completion with: "Story complete, {user_name}! Your narrative has been saved to {default_output_file}". |
| 317 | + |
| 318 | +<template-output>agent_role, agent_name, user_name, date</template-output> |
| 319 | +</step> |
| 320 | + |
| 321 | +</workflow> |
0 commit comments