Archive markdown-to-storyboard
install
source · Clone the upstream repo
git clone https://github.com/dp-archive/archive
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dp-archive/archive "$T" && mkdir -p ~/.claude/skills && cp -r "$T/seed_skills/markdown-to-storyboard" ~/.claude/skills/dp-archive-archive-markdown-to-storyboard && rm -rf "$T"
manifest:
seed_skills/markdown-to-storyboard/SKILL.mdsource content
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 |
|---|---|---|
| Opening slide | |
| Table of contents (optional, 12+ slides) | |
| Chapter divider | |
| Core information | or |
| Key quote or statistic | |
| Chart / number-driven | |
| Closing recap | or |
| Thank-you / Q&A / CTA | |
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 |
|---|---|---|
| int | 1-indexed |
| str | One of the types above |
| str | Slide headline, ≤ 10 words |
| str | Newline-separated (). Each ≤ 20 chars. Max 5 items |
| str | English prompt for image generation |
| str | Optional presenter notes |
| 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
andcontent
/quote
to vary rhythmdata - Closing (slides N-1 to N): Summary of key takeaways + end slide
- Avoid consecutive slides of the same type. Insert a
divider between major parts.section
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"