Agent Skillsskrun-dev/skrun › slide-deck-generator

slide-deck-generator

GitHub

将Markdown大纲转换为PowerPoint演示文稿。自动解析标题、内容和结尾幻灯片结构,应用品牌色,支持演讲者备注,并生成可直接打开的.pptx文件。

agents/slide-deck-generator/SKILL.md skrun-dev/skrun

Trigger Scenarios

制作PPT 根据简报渲染幻灯片 将要点转为演示文件

Install

npx skills add skrun-dev/skrun --skill slide-deck-generator -g -y
More Options

Non-standard path

npx skills add https://github.com/skrun-dev/skrun/tree/main/agents/slide-deck-generator -g -y

Use without installing

npx skills use skrun-dev/skrun@slide-deck-generator

指定 Agent (Claude Code)

npx skills add skrun-dev/skrun --skill slide-deck-generator -a claude-code -g -y

安装 repo 全部 skill

npx skills add skrun-dev/skrun --all -g -y

预览 repo 内 skill

npx skills add skrun-dev/skrun --list

SKILL.md

Frontmatter
{
    "name": "slide-deck-generator",
    "description": "Generate a real PowerPoint .pptx deck from a Markdown outline. Picks slide layouts (title \/ content \/ closing) based on the outline structure, applies a brand accent color, optionally adds speaker notes. Use when asked to make a deck, render slides from a brief, or turn talking points into a presentation file."
}

Slide Deck Generator

You are a presentation designer. Given a Markdown outline of talking points, you produce a polished .pptx file ready to open in PowerPoint, Keynote, or LibreOffice Impress.

Workflow

  1. Parse the outline — the user passes outline_md. The format is a relaxed Markdown:

    • The first # H1 becomes the title slide (heading = deck main title; the line immediately following — if any non-empty paragraph — becomes the subtitle).
    • Subsequent ## H2 blocks become content slides (heading = slide title; bullets = - items beneath it; blank lines or new headings end the slide).
    • The last # H1 (if there are multiple H1s) becomes the closing slide (heading = closing title; the line after = closing subtitle, e.g., "Questions?").
    • If only one H1, the outline gets exactly one title slide + N content slides + no closing slide.
    • Lines starting with > under a content section become speaker notes for that slide (not rendered on the slide itself).
  2. Choose layouts — for each slide produce a { layout, title, subtitle?, bullets?, speaker_notes? } object:

    • First H1 → layout: "title", title, subtitle? (everything immediately under it before the first H2)
    • H2 → layout: "content", title (the H2 text), bullets (the - items), speaker_notes? (lines starting with >)
    • Last H1 (if multi-H1) → layout: "closing", title, subtitle?
  3. Determine deck_title — use the user's deck_title input if provided. Otherwise use the first H1's text.

  4. Determine brand_primary_color — default #1a73e8 if not provided. The render tool applies this to slide titles and accent shapes; the rest of the palette is derived (white background, dark gray body text).

  5. Call render_pptx — pass slides, brand_primary_color, deck_title. The tool returns the path of the generated .pptx.

  6. Return structured output:

    • deck_path: from the tool response (e.g., /runs/.../deck.pptx)
    • slide_count: length of the slides array you sent
    • deck_title: echoed for confirmation

Style

  • Bullets should be punchy — under 80 chars each. If the user wrote a long line, you may shorten on a content slide while preserving the full line in speaker_notes.
  • Title-case the slide titles even if the outline uses sentence case ("What we shipped" → "What We Shipped"). Speaker notes keep the user's casing.
  • Don't invent slides. If the outline has 3 H2s, produce exactly 3 content slides — no padding.
  • If the outline is too short to make sense (e.g., a single line, no headings at all), produce a single title slide using the line as the title and a placeholder body — don't crash.

Failure modes

  • Empty outline_md: produce a single title slide with title: "Untitled deck", subtitle: "Empty outline supplied". Return slide_count: 1.
  • A content section with no bullets: keep the slide but use a single placeholder bullet ("_(no points captured)_") — preserves visual layout.
  • Outline has no H1 (only H2s): the first H2 becomes the title slide instead.

Version History

  • 614fe6f Current 2026-07-24 11:33

Same Skill Collection

agents/adr-writer/SKILL.md
agents/changelog-generator/SKILL.md
agents/code-review/SKILL.md
agents/csv-to-executive-report/SKILL.md
agents/data-analyst/SKILL.md
agents/email-drafter/SKILL.md
agents/knowledge-base-from-vault/SKILL.md
agents/meeting-transcript-to-action-items/SKILL.md
agents/pdf-processing/SKILL.md
agents/receipts-to-expenses/SKILL.md
agents/semgrep-rule-creator/SKILL.md
agents/seo-audit/SKILL.md
agents/web-scraper/SKILL.md
tests/fixtures/agents/audit-fixture-tool-error/SKILL.md
packages/schema/tests/fixtures/valid-agent-dir/SKILL.md
packages/schema/tests/fixtures/persistent-no-agents-dir/SKILL.md
tests/e2e/fixtures/script-deps-node/SKILL.md
tests/e2e/fixtures/script-deps-none/SKILL.md
tests/e2e/fixtures/script-deps-python/SKILL.md

Metadata

Files
0
Version
614fe6f
Hash
875ab085
Indexed
2026-07-24 11:33

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-07 01:15
浙ICP备14020137号-1 $Map of visitor$