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.md
source 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:

TypePurposeTypical 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:

ColumnTypeDescription
slide_no
int1-indexed
slide_type
strOne of the types above
title
strSlide headline, ≤ 10 words
bullet_points
strNewline-separated (
\n
). Each ≤ 20 chars. Max 5 items
image_prompt
strEnglish prompt for image generation
speaker_notes
strOptional presenter notes
layout
strOne 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
    content
    and
    quote
    /
    data
    to vary rhythm
  • Closing (slides N-1 to N): Summary of key takeaways + end slide
  • Avoid consecutive slides of the same type. Insert a
    section
    divider 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"