agentleFS
hsienchiaoleehsienchiaolee/agent-skills/slide-deck/SKILL.md

slide-deck

Skill0 starsChanged 50 days agoMITView on GitHub

Build polished PowerPoint presentations from structured markdown with extracted design themes. Use this skill whenever the user wants to create a slide deck, presentation, or PPTX — whether from scratch, from an outline, or by restyling existing content. Also use when the user wants to extract a design theme from an existing presentation, convert markdown notes to slides, or iterate on slide content and layout. Triggers on phrases like "make a presentation", "build slides", "create a deck", "PowerPoint", "slide deck", "extract theme", "restyle these slides", "presentation about X", "turn this into slides".

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 8 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use uv to run the bundled scripts in the locked environment defined by this skill's pyproject.toml and uv.lock.

    line 12
  2. Very specific:

    If uv is unavailable, use a Python 3.10+ interpreter that can import pptx.

    line 20
  3. Distinctive:

    Do not install dependencies into the user's global Python environment.

    line 21
  4. Distinctive:

    When the user provides an existing PPTX to match:

    line 31
  5. Very specific:

    If the user describes a style ("clean and minimal", "dark with green accents"), create a theme.json by hand.

    line 50
  6. Very specific:

    If the user has no preference, use <skill-path>/references/default-theme.json directly.

    line 54
  7. Distinctive:

    Write the slide content into a structured markdown file.

    line 58
  8. Very specific:

    Write slides in the structured markdown format (read references/markdown-format.md for the full spec)

    line 62
  9. Distinctive:

    Use 2-3 cards per slide for comparison/contrast layouts

    line 106
  10. Very specific:

    Put the most important takeaway in the !> callout bar

    line 107
  11. Distinctive:

    Only then proceed to Phase 3

    line 115
  12. Very specific:

    If --theme is omitted, it uses the theme path from the markdown frontmatter, falling back to the default theme.

    line 125
  13. Distinctive:

    After building, tell the user where the file is so they can open it and check the visual output.

    line 127
  14. Very specific:

    Use [full] when you want a 2-top + 1-bottom layout: mark the bottom card with [full, color].

    line 147
  15. Distinctive:

    When extracting from a reference deck, the theme captures whatever style it finds.

    line 159
  16. Distinctive:

    Keep generated files organized in the project directory:

    line 163

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Slide Deck Builder

Build professional presentations through a structured workflow: establish a design theme, draft content as reviewable markdown, then generate a polished PPTX. The user reviews and edits the markdown content without regenerating the PowerPoint each time.

Prerequisites

Use uv to run the bundled scripts in the locked environment defined by this skill's pyproject.toml and uv.lock. Pass --locked so dependency resolution cannot change during a task:

uv run --project <skill-path> --locked python <skill-path>/scripts/build_deck.py --help

If uv is unavailable, use a Python 3.10+ interpreter that can import pptx. Do not install dependencies into the user's global Python environment.

Workflow

Phase 1: Establish the Theme

The theme captures the full design system: colors, typography, layout, spacing, component styles, and slide patterns. There are three ways to get one:

Option A: Extract from a reference deck

When the user provides an existing PPTX to match:

uv run --project <skill-path> --locked python <skill-path>/scripts/extract_theme.py <reference.pptx> -o theme.json

This analyzes every slide and extracts:

  • Color palette: backgrounds, text colors, accent colors, and how they're used semantically (positive/negative/neutral/contrast)
  • Typography: font families, the full size scale from badge to title, weight patterns
  • Layout grid: margins, card gaps, content start position, column arrangements
  • Component styles: card corner radius, accent bar dimensions, border/shadow treatments, badge formatting, bullet character and spacing, callout bar style
  • Slide pattern templates: title slide layout (split backgrounds, image placement), content slide structure, closing slide style
  • Visual hierarchy: how the deck communicates importance through size, weight, color, and position
  • Spacing rhythm: the consistent spacing intervals used between elements

Review the generated theme.json with the user. They may want to adjust colors or fonts. Read references/theme-schema.md for the full schema.

Option B: Create from user preferences

If the user describes a style ("clean and minimal", "dark with green accents"), create a theme.json by hand. Read references/theme-schema.md for the schema, then fill in values that match their description. Start from the default theme at <skill-path>/references/default-theme.json and modify it.

Option C: Use the default theme

If the user has no preference, use <skill-path>/references/default-theme.json directly. It's a clean professional theme with a teal/warm accent palette.

Phase 2: Draft Content as Markdown

Write the slide content into a structured markdown file. This is the key iteration artifact — the user reviews, edits, and approves content here without touching PowerPoint.

How to draft:

  1. Understand the topic from the user's input (outline, notes, topic description)
  2. Write slides in the structured markdown format (read references/markdown-format.md for the full spec)
  3. Save as slides.md (or whatever name makes sense)
  4. Present it to the user for review

Quick format reference (see references/markdown-format.md for complete spec):

---
title: Presentation Title
author: Author Name
date: 2026
theme: theme.json
---

# Opening Slide [title]
> Subtitle describing the talk
image: logo.png

---

# Content Slide Title
badge: SECTION NAME
> Brief description under the title

## Left Card Heading [green]
- First point
- Second point
- Third point

## Right Card Heading [warm]
- Another point
- And another

!> Key takeaway message for this slide.

---

# Closing [dark]
> Author Name

Content guidelines:

  • Each slide should make one clear point
  • Bullet points should be concise — the deck is a visual aid, not a document
  • Use 2-3 cards per slide for comparison/contrast layouts
  • Put the most important takeaway in the !> callout bar
  • Badge text categorizes the slide (e.g., "PROCESS", "TOOLING", "EXPERIENCE")
  • Balance information density — too sparse wastes slides, too dense loses the audience

Iteration loop:

  • Present the markdown to the user
  • They edit directly or give feedback
  • Revise until they approve
  • Only then proceed to Phase 3

Phase 3: Build the PPTX

Convert the approved markdown + theme into a PowerPoint file:

uv run --project <skill-path> --locked python <skill-path>/scripts/build_deck.py slides.md --theme theme.json -o presentation.pptx

If --theme is omitted, it uses the theme path from the markdown frontmatter, falling back to the default theme.

After building, tell the user where the file is so they can open it and check the visual output. If they want changes:

  • Content changes: Edit the markdown, rebuild
  • Layout tweaks: Adjust theme.json values (spacing, sizes), rebuild
  • Design changes: Modify theme colors/fonts, rebuild

Slide Layout Rules

The builder automatically determines layout from the markdown structure:

StructureLayout
# Title [title]Split-background title slide
1 ## sectionFull-width card
2 ## sectionsTwo-column cards
3 ## sectionsThree-column cards
## Heading [full]Full-width card on bottom row (columns above)
## section + code fenceCard beside code block
# Title [dark]Dark background, centered
!> textCallout bar at slide bottom

Use [full] when you want a 2-top + 1-bottom layout: mark the bottom card with [full, color]. Multiple modifiers combine: ## Title [full, dark].

Cards inherit their accent color from the [color] annotation on the ## heading. Available color names depend on the theme's accents map.

Adapting to Different Presentation Styles

The skill handles various deck styles through the theme system:

  • Corporate/minimal: Light backgrounds, subtle accent bars, clean typography
  • Technical/developer: Dark code blocks, monospace fonts, high contrast
  • Creative/bold: Strong accent colors, larger type, more visual weight

When extracting from a reference deck, the theme captures whatever style it finds. When creating from scratch, ask the user about their audience and context to choose appropriate styling.

File Organization

Keep generated files organized in the project directory:

project/
  theme.json           # Design theme (extracted or custom)
  slides.md            # Slide content (the editable source)
  presentation.pptx    # Generated output
  assets/              # Images, icons referenced by slides

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.