Skip to content

Commit 8287d17

Browse files
dickymoorebmadcode
authored andcommitted
feat: convert storytelling to native skill
1 parent 68f62e2 commit 8287d17

11 files changed

Lines changed: 340 additions & 380 deletions

File tree

src/agents/storyteller/storyteller.agent.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ agent:
2121

2222
menu:
2323
- trigger: ST or fuzzy match on story
24-
exec: "{project-root}/_bmad/cis/workflows/storytelling/workflow.yaml"
24+
exec: "{project-root}/_bmad/cis/workflows/bmad-cis-storytelling/SKILL.md"
2525
description: "[ST] Craft compelling narrative using proven frameworks"

src/module-help.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ cis,anytime,Innovation Strategy,IS,,skill:bmad-cis-innovation-strategy,bmad-cis-
33
cis,anytime,Problem Solving,PS,,skill:bmad-cis-problem-solving,bmad-cis-problem-solving,false,creative-problem-solver,Create Mode,"Apply systematic problem-solving methodologies to crack complex challenges. Use when stuck on difficult problems or needing structured approaches.",output_folder,"problem solution",
44
cis,anytime,Design Thinking,DT,,skill:bmad-cis-design-thinking,bmad-cis-design-thinking,false,design-thinking-coach,Create Mode,"Guide human-centered design processes using empathy-driven methodologies. Use for user-centered design challenges or improving user experience.",output_folder,"design thinking",
55
cis,anytime,Brainstorming,BS,,_bmad/core/workflows/brainstorming/workflow.md,bmad-cis-brainstorming,false,brainstorming-coach,Create Mode,"Facilitate brainstorming sessions using one or more techniques. Use early in ideation phase or when stuck generating ideas.",output_folder,"brainstorming session results",
6-
cis,anytime,Storytelling,ST,,_bmad/cis/workflows/storytelling/workflow.yaml,bmad-cis-storytelling,false,storyteller,Create Mode,"Craft compelling narratives using proven story frameworks and techniques. Use when needing persuasive communication or story-driven content.",output_folder,"narrative/story",
6+
cis,anytime,Storytelling,ST,,skill:bmad-cis-storytelling,bmad-cis-storytelling,false,storyteller,Create Mode,"Craft compelling narratives using proven story frameworks and techniques. Use when needing persuasive communication or story-driven content.",output_folder,"narrative/story",

src/workflows/README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Five interactive workflows facilitating creative and strategic processes through
5151

5252
**Output:** Root cause identification and solution strategies
5353

54-
### [Storytelling](./storytelling)
54+
### [Storytelling](./bmad-cis-storytelling)
5555

5656
**Purpose:** Craft compelling narratives
5757

@@ -145,6 +145,15 @@ bmad-cis-problem-solving/
145145
└── template.md
146146
```
147147

148+
```text
149+
bmad-cis-storytelling/
150+
├── SKILL.md
151+
├── workflow.md
152+
├── bmad-skill-manifest.yaml
153+
├── story-types.csv
154+
└── template.md
155+
```
156+
148157
## Best Practices
149158

150159
1. **Prepare context** - Provide background documents for better results
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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+
---
5+
6+
Follow the instructions in [workflow.md](workflow.md).
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type: skill
File renamed without changes.
File renamed without changes.
Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
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

Comments
 (0)