Назад към всички

Slides

// Create, edit, and automate presentations with programmatic tools, visual consistency, and project-based learning of user style preferences.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameSlides
slugslides
version1.0.0
descriptionCreate, edit, and automate presentations with programmatic tools, visual consistency, and project-based learning of user style preferences.
metadata[object Object]

When to Use

User needs presentation slides created, edited, or automated. Agent handles tool selection (python-pptx, Google Slides API, reveal.js, Marp, Slidev), applies user's style preferences, generates visually consistent decks, and validates output.

Architecture

Projects and styles stored in ~/slides/. See memory-template.md for setup.

~/slides/
├── memory.md              # HOT: active projects, preferred tools
├── styles/                # Brand guidelines per client/project
│   └── {name}.md          # Colors, fonts, templates
├── projects/              # Project-specific context
│   └── {name}/
│       ├── context.md     # Audience, purpose, constraints
│       └── versions.md    # Version history
└── templates/             # Approved slide structures
    └── {type}.md          # pitch, lesson, report, etc.

Quick Reference

TopicFile
Memory setupmemory-template.md
Programmatic toolstools.md
Visual design rulesdesign.md
Deck structures by typeformats.md

Data Storage

All data stored in ~/slides/. Create on first use:

mkdir -p ~/slides/{styles,projects,templates}

Scope

This skill ONLY:

  • Creates/edits presentations via declared tools
  • Stores style preferences in local files (~/slides/)
  • Reads user's templates and brand guidelines
  • Generates visual output for validation

This skill NEVER:

  • Accesses email, calendar, or contacts
  • Makes network requests without user action
  • Reads files outside ~/slides/ and project paths
  • Sends presentations to external services automatically

Self-Modification

This skill NEVER modifies its own SKILL.md. Learned styles stored in ~/slides/styles/. Project context stored in ~/slides/projects/.

Core Rules

1. Identify Context First

Before generating slides:

  • Purpose: Pitch, lesson, report, demo?
  • Audience: Investors, students, executives, clients?
  • Tool: PowerPoint, Google Slides, web-based (reveal.js)?
  • Load relevant style from ~/slides/styles/ if exists

2. Tool Selection by Output

NeedToolWhen to use
.pptx filepython-pptxPowerPoint required, offline
Google SlidesGoogle Slides APICollaboration, cloud
Web presentationreveal.js, Slidev, MarpDev talks, code-heavy
Quick PDFMarpSimple deck, fast export

3. Visual Consistency Always

  • Load user's style before generating
  • If no style: ask for brand colors, fonts, or use neutral defaults
  • Same typography hierarchy across ALL slides
  • Maximum 3-4 colors per deck
  • See design.md for detailed rules

4. Content Density Limits

  • Maximum 6 bullet points per slide
  • Maximum 6 words per bullet (6x6 rule)
  • One idea per slide
  • If content overflows → split into multiple slides

5. Validate Before Delivery

  • Generate preview/screenshot of key slides
  • Check: readable text (24pt+ for body), proper contrast, alignment
  • For important decks: show 2-3 slides to user before completing all

6. Learn User Preferences

EventAction
User provides style guideSave to ~/slides/styles/{name}.md
User corrects design choiceUpdate style file
User approves templateSave to ~/slides/templates/
New project startedCreate ~/slides/projects/{name}/

7. Version Management

  • Each significant revision → log in projects/{name}/versions.md
  • Track: date, changes, audience variant
  • Support quick comparison: "What changed since v2?"

Common Traps

  • python-pptx units — Always use Inches(), Pt(), Emu() from pptx.util, never raw numbers
  • Marp frontmatter — Must start with marp: true in YAML
  • reveal.js separators — Use --- for horizontal, -- for vertical slides
  • Slidev syntax — Different from reveal.js; check docs for each framework
  • Google Slides API quotas — Batch updates to avoid rate limits
  • Image sizing — Always specify dimensions; auto-fit often fails
  • Font availability — Stick to system fonts unless embedding confirmed