markdown-to-storyboard
Markdown to Storyboard
Convert any markdown text into a structured storyboard CSV — the universal handoff format for downstream tools (slide builders, video editors, image generators).
Workflow
1. Analyze the Source Markdown
Read the markdown and identify:
- Title and subtitle
- Section headings (H2/H3) → natural slide boundaries
- Key arguments / data points / quotes per section
- Narrative arc: setup → development → climax → conclusion
2. Ask User Preferences
Prompt for (defaults in parentheses):
- Slide count (auto: 8–15 based on content length, ~1 slide per 150–300 words)
- Audience (general)
- Tone (professional)
- Language (same as source)
If user declines to specify, use defaults and proceed.
3. Assign Slide Types and Layouts
Available slide_type values:
| Type | Purpose | Typical layout |
|---|---|---|
cover |
Opening slide | full_bg |
toc |
Table of contents (optional, 12+ slides) | center_text |
section |
Chapter divider | center_text |
content |
Core information | left_img_right_text or top_img_bottom_text |
quote |
Key quote or statistic | full_bg |
data |
Chart / number-driven | two_column |
summary |
Closing recap | center_text or left_img_right_text |
end |
Thank-you / Q&A / CTA | full_bg |
Available layout values:
full_bg, left_img_right_text, top_img_bottom_text, center_text, two_column
4. Write the Image Prompt for Each Slide
For each slide, write an image_prompt (English, regardless of content language) that:
- Describes a concrete scene, not an abstract concept
- Includes a style keyword consistent across all slides (e.g. "flat vector illustration, soft pastel palette")
- Specifies composition hints matching the layout (e.g. "wide shot, negative space on the right" for
left_img_right_text) - Cover and end slides get more dramatic / visually impactful prompts
5. Draft Speaker Notes
speaker_notes column: 1–3 sentences of what the presenter would say. Leave empty if not requested.
6. Output the CSV
Write the storyboard to storyboard.csv using execute_code:
import csv
rows = [
# [slide_no, slide_type, title, bullet_points, image_prompt, speaker_notes, layout]
]
header = ["slide_no", "slide_type", "title", "bullet_points", "image_prompt", "speaker_notes", "layout"]
with open("storyboard.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(header)
writer.writerows(rows)
Column spec:
| Column | Type | Description |
|---|---|---|
slide_no |
int | 1-indexed |
slide_type |
str | One of the types above |
title |
str | Slide headline, ≤ 10 words |
bullet_points |
str | Newline-separated (\n). Each ≤ 20 chars. Max 5 items |
image_prompt |
str | English prompt for image generation |
speaker_notes |
str | Optional presenter notes |
layout |
str | One of the layouts above |
7. Present for Review
Display the storyboard as a markdown table for the user to review.
Wait for confirmation before the next pipeline step.
If changes requested, update storyboard.csv and re-display.
Pacing Guidelines
- Opening (slides 1–2): Hook — cover + bold opening statement or question
- Body (slides 3 to N-2): One idea per slide. Alternate
contentandquote/datato vary rhythm - Closing (slides N-1 to N): Summary of key takeaways + end slide
- Avoid consecutive slides of the same type. Insert a
sectiondivider between major parts.
Text Density Rules
- Title: imperative or question form, ≤ 10 words
- Bullets: ≤ 5 per slide, each ≤ 20 characters (CJK) / ≤ 12 words (Latin)
- Prefer fragments over full sentences
- Numbers stand alone: "3x faster" not "It is three times faster"
More from moosegoose0701/skill-compose
media-downloader
Download videos and audio from 1500+ websites including YouTube, Bilibili, TikTok, Twitter/X, Instagram, Vimeo, and more using yt-dlp. Use when the user wants to download videos, save media from social platforms, download with specific resolution (720p/1080p/4K), get subtitles, or download entire playlists. Triggers on requests like 'download this video', 'save this YouTube video', 'download in 1080p', 'download with subtitles', 'download this playlist'.
35skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
30skill-evolver
Analyze skill execution traces to identify issues and automatically evolve/improve skills. Use when users provide trace files (JSON) from skill runs and want to improve skill performance based on real execution data. Triggers on requests like "analyze traces", "evolve skill based on traces", "improve skill from execution history", "find issues in skill traces", or when working with skill trace/log files.
29gemini-imagegen
>
29audio-extractor
Extract audio from videos and download audio-only content from 1500+ websites using yt-dlp. Converts to MP3, M4A, FLAC, WAV, or OPUS with embedded metadata and cover art. Use when the user wants to extract audio from videos, download podcasts, download music from YouTube/SoundCloud/Bandcamp, convert video to audio, or batch download playlist audio. Triggers on requests like 'extract audio', 'download as MP3', 'get the audio from this video', 'download this podcast', 'download music', 'convert to FLAC'.
26skills-planner
Plan which skills are needed to fulfill user requirements. Use when the user wants to design an agent workflow, plan skill composition, or determine what skills are needed for a task. Input includes user requirements and existing skills list. Output includes recommended existing skills, new skills to create, and a system prompt for the composed agent.
23