agentleFS
Sentry01Sentry01/copilot-cli-skills/powerpoint-toolkit/SKILL.md

powerpoint-toolkit

Skill8 starsChanged 9 months agoMITView on GitHub

Build, edit, analyze, and improve PowerPoint presentations (.pptx). Use when a user asks to: (1) Create a new presentation from scratch, (2) Edit or modify slides, text, images, or layouts, (3) Analyze a presentation for quality, consistency, or content, (4) Improve an existing presentation's design, structure, or readability, (5) Extract text or speaker notes, (6) Add charts, tables, or media to slides, (7) Review or critique a presentation.

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before writing code, always:

    line 62
  2. Distinctive:

    Use web-safe fonts only: Arial, Verdana, Georgia, Tahoma, Trebuchet MS, Times New Roman, Courier New

    line 69
  3. Distinctive:

    Create clear visual hierarchy through size, weight, and color

    line 70
  4. Distinctive:

    Keep text concise — aim for ≤6 bullet points, ≤6 words per bullet

    line 71
  5. Distinctive:

    Ensure strong contrast between text and backgrounds

    line 72
  6. Distinctive:

    Use consistent spacing and alignment across all slides

    line 73
  7. Distinctive:

    Add speaker notes for presentation delivery

    line 74
  8. Distinctive:

    When asked to review or improve a presentation:

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

PowerPoint Toolkit

Setup (First Use)

python3 scripts/setup_deps.py

Installs: python-pptx, Pillow, pyyaml. Skip if already installed.

Workflow Decision Tree

  1. Inspect structure → Run scripts/inspect_pptx.py
  2. Extract text → Run scripts/extract_text.py
  3. Analyze & get improvement suggestions → Run scripts/analyze_pptx.py
  4. Generate visual thumbnails → Run scripts/thumbnails.py
  5. Create new presentation → Use python-pptx (see references/design-and-creation.md)
  6. Edit existing presentation → Use python-pptx or OOXML (see references/ooxml-editing.md)

Quick-Start Scripts

Inspect File Structure

python3 scripts/inspect_pptx.py deck.pptx                    # Overview
python3 scripts/inspect_pptx.py deck.pptx --text              # With all text
python3 scripts/inspect_pptx.py deck.pptx --notes             # With speaker notes
python3 scripts/inspect_pptx.py deck.pptx --layouts           # With layout details
python3 scripts/inspect_pptx.py deck.pptx --slide 0           # Single slide
python3 scripts/inspect_pptx.py deck.pptx --text --notes      # Full content

Returns JSON: slide count, dimensions, shapes, text, images, charts, tables, notes.

Extract Text

python3 scripts/extract_text.py deck.pptx                     # Markdown format
python3 scripts/extract_text.py deck.pptx --format json        # Structured JSON
python3 scripts/extract_text.py deck.pptx --format text        # Plain text
python3 scripts/extract_text.py deck.pptx --notes              # Include speaker notes

Analyze & Improve

python3 scripts/analyze_pptx.py deck.pptx                     # Full analysis
python3 scripts/analyze_pptx.py deck.pptx --verbose            # Extra detail

Returns JSON with stats (fonts, sizes, layouts, text density) and issues (readability, consistency, missing notes, visual balance).

Generate Thumbnails

python3 scripts/thumbnails.py deck.pptx                        # Default 4-col grid
python3 scripts/thumbnails.py deck.pptx preview --cols 3       # Custom layout

Requires LibreOffice + poppler (pdftoppm). Creates a JPEG grid for visual review.

Creating Presentations

Design Principles

Before writing code, always:

  1. Analyze content — What topic, tone, audience?
  2. Choose palette — See references/design-and-creation.md for 10 curated palettes
  3. Plan layout — Decide slide types: title, content, section, closing
  4. State approach — Explain design choices before implementation

Key Rules

  • Use web-safe fonts only: Arial, Verdana, Georgia, Tahoma, Trebuchet MS, Times New Roman, Courier New
  • Create clear visual hierarchy through size, weight, and color
  • Keep text concise — aim for ≤6 bullet points, ≤6 words per bullet
  • Ensure strong contrast between text and backgrounds
  • Use consistent spacing and alignment across all slides
  • Add speaker notes for presentation delivery

Quick Creation Template

from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor

prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)

# Title slide
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Title"
slide.placeholders[1].text = "Subtitle"

# Content slide
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Section"
body = slide.placeholders[1].text_frame
body.text = "First point"
p = body.add_paragraph()
p.text = "Second point"
p.level = 0

prs.save("output.pptx")

For full creation reference (shapes, formatting, charts, tables, images, notes) → see references/design-and-creation.md.

Editing Presentations

Simple Edits (python-pptx)

from pptx import Presentation

prs = Presentation("existing.pptx")
slide = prs.slides[0]

for shape in slide.shapes:
    if shape.has_text_frame:
        for para in shape.text_frame.paragraphs:
            for run in para.runs:
                run.text = run.text.replace("old", "new")

prs.save("modified.pptx")

Advanced Edits (OOXML)

For operations beyond python-pptx (animations, complex formatting, raw XML manipulation) → see references/ooxml-editing.md.

Providing Improvement Feedback

When asked to review or improve a presentation:

  1. Run scripts/inspect_pptx.py deck.pptx --text --notes
  2. Run scripts/analyze_pptx.py deck.pptx
  3. Optionally generate thumbnails for visual review
  4. Present findings in this order:
    • Overview: slide count, layout types, visual balance
    • Content Issues: text density, empty slides, missing titles
    • Design Issues: font consistency, size readability, color contrast
    • Structure Issues: flow, pacing, section organization
    • Suggestions: specific actionable improvements with slide references

Common Slide Patterns

PatternLayoutWhen to Use
Title SlideLayout 0Opening, section dividers
BulletsLayout 1Key points, agenda
Two-ColumnLayout 3Comparison, before/after
Image + TextLayout 5 + textboxVisual storytelling
Chart SlideLayout 5 + chartData presentation
Table SlideLayout 5 + tableStructured data
Quote SlideLayout 6 + textboxAttribution, emphasis
ClosingLayout 0 or 6Thank you, contact info

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.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.