# Slides

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

- Skill: `johnalbertini14-glitch/slides` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add johnalbertini14-glitch/slides`
- Raw SKILL.md: https://api.skillmd.com/api/skills/johnalbertini14-glitch/slides/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: johnalbertini14-glitch (https://skillmd.com/u/johnalbertini14-glitch)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/johnalbertini14-glitch/slides

---


## 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

| Topic | File |
|-------|------|
| Memory setup | `memory-template.md` |
| Programmatic tools | `tools.md` |
| Visual design rules | `design.md` |
| Deck structures by type | `formats.md` |

## Data Storage

All data stored in `~/slides/`. Create on first use:
```bash
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
| Need | Tool | When to use |
|------|------|-------------|
| .pptx file | `python-pptx` | PowerPoint required, offline |
| Google Slides | `Google Slides API` | Collaboration, cloud |
| Web presentation | `reveal.js`, `Slidev`, `Marp` | Dev talks, code-heavy |
| Quick PDF | `Marp` | Simple 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
| Event | Action |
|-------|--------|
| User provides style guide | Save to `~/slides/styles/{name}.md` |
| User corrects design choice | Update style file |
| User approves template | Save to `~/slides/templates/` |
| New project started | Create `~/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

