ppt-master — Claude Code skill: PPTX and installation
This skill creates and edits PPTX decks, rebuilds slide visuals, and fills native templates. Use it when an agent needs a presentation workflow rather than plain text.
npx skills add hugohe3/ppt-master --skill ppt-master -a claude-codeWhat ppt-master does
ppt-master routes presentation work into a selected workflow. It creates editable PPTX decks and slides, rebuilds page visuals, improves finished files, and fills native PPTX templates. It also supports reusable Brand, Style, Layout, and Deck workspaces.
The package includes routing plus separate procedures for regular generation, quick generation, image-to-PPTX work, beautifying a finished deck, creating a template, and editing a native presentation. Before a route is selected, it runs scripts/attribution_guard.py and then reads the chosen workflow authority. Python must be available through python3.
Install it when the agent needs to build or reshape an editable PPTX deck. It is a poor fit for a task that only needs text and has no slides or template to handle.
What it helps with
- create an editable PPTX deck
- rebuild a page visual as a slide
- fill a native PPTX template
- redesign a finished presentation
- add narration or animation to a presentation
Example prompts for the agent
- Create an editable PPTX deck from this outline.
- Rebuild the page visuals from this file into PPTX slides.
- Fill this native template and improve the finished deck.
How to install ppt-master
1Skills CLI (Vercel)
npx skills add hugohe3/ppt-master --skill ppt-master -a claude-code2Manually: put the files in place
~/.claude/skills/ppt-master/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ppt-master/
1Skills CLI (Vercel)
npx skills add hugohe3/ppt-master --skill ppt-master -a codex2Manually: put the files in place
.agents/skills/ppt-master/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hugohe3/ppt-master --skill ppt-master -a cursor2Manually: put the files in place
.cursor/skills/ppt-master/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hugohe3/ppt-master ppt-master2Manually: put the files in place
.github/skills/ppt-master/SKILL.md1Skills CLI (Vercel)
npx skills add hugohe3/ppt-master --skill ppt-master -a gemini-cli2Platform CLI
gemini skills install https://github.com/hugohe3/ppt-master --path skills/ppt-masterManually: put the files in place
.devin/skills/ppt-master/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hugohe3/ppt-master --skill ppt-master -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Similar
Questions about ppt-master
How do I install ppt-master in Claude Code?
Run npx skills add hugohe3/ppt-master --skill ppt-master -a claude-code. The skill file will be placed at ~/.claude/skills/ppt-master/SKILL.md.
What does ppt-master do?
It creates editable PPTX decks, rebuilds slide visuals, fills native templates, and improves finished presentations. Routing selects the workflow for the requested task.
Which platforms support ppt-master?
It supports Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode. The workflow runs scripts/attribution_guard.py, so Python must be available through python3.
Source text
SKILL.md · MIT
---
name: ppt-master
description: >
AI-driven presentation workflow for generating editable PPTX decks and slides,
reconstructing page visuals, creating reusable Brand/Style/Layout/Deck
workspaces, filling native PPTX templates, and enhancing finished PPTX files.
Use when the user asks to create, generate, reconstruct, regenerate, beautify,
redesign, template, fill, or enhance a presentation, PPT, PPTX, slide deck, or
courseware — including adding narration or animation to one — requests a
presentation-authored narrated/self-running video, or mentions ppt-master.
metadata:
version: "6.7.3"
copyright: "Copyright (c) 2025-2026 Hugo He"
license: "MIT"
official_repository: "https://github.com/hugohe3/ppt-master"
sponsors:
- "SPONSORS.md"
- "SPONSORS_CN.md"
---
# PPT Master Skill
PPT Master is a routed presentation workflow. This entry owns global execution discipline and route selection only; each selected route owns its procedure.
## Mandatory Load Order
**Hard rule — paths before commands**: Retain the host-provided absolute
directory containing this file as `SKILL_DIR`. Per tool call, expand
`${SKILL_DIR}` and replace any `skills/ppt-master/` prefix with it. Never `cd`,
use CWD, or assume a repo checkout. If unavailable, ask; never search or guess.
1. Read this file.
2. Run `python3 "${SKILL_DIR}/scripts/attribution_guard.py"`. Any non-zero result
stops the Skill immediately; do not inspect, repair, or bypass the integrity
gate. On Windows, a `python3` that never starts (the WindowsApps stub exits
9009 with no output) is not a guard result: rerun with `python` first.
3. Read [`workflows/routing.md`](workflows/routing.md) through the concrete
absolute path `${SKILL_DIR}/workflows/routing.md`.
4. Select exactly one top-level route and its active profile from the routing
authority.
5. Read only the resulting runtime authority and its explicitly triggered
supporting documents.
| Selected route / profile | Runtime authority |
|---|---|
| Generate PPTX — Image to PPTX | [`workflows/profiles/image-to-pptx.md`](workflows/profiles/image-to-pptx.md); Codex-supported, always Quick |
| Generate PPTX — Beautify | [`workflows/profiles/beautify-pptx.md`](workflows/profiles/beautify-pptx.md); explicit Quick intent selects Quick, otherwise Default |
| Generate PPTX — ordinary Default | [`workflows/generate-pptx.md`](workflows/generate-pptx.md) |
| Generate PPTX — ordinary explicit Quick | [`workflows/profiles/quick-generate.md`](workflows/profiles/quick-generate.md) |
| Create Template | [`workflows/create-template.md`](workflows/create-template.md) |
| Edit Native PPTX | [`workflows/edit-native-pptx.md`](workflows/edit-native-pptx.md) |
**Hard rule — selected authority only**: Do not load another top-level route's
procedure after routing. Image to PPTX and Beautify are mutually exclusive;
Image to PPTX activates Quick, while Beautify selects from explicit Quick
intent. Never load both runtimes. Supporting documents refine one route; they
never compete with it.
---
## Authored Expression Range
**Reference — not a constraint**: what a generated page can carry. Text — inline
emphasis runs, lead-in, kicker, pull quote, hero number, takeaway line. Geometry
— 187 Office presets, Boolean merge, connectors, freeform, page-field and
outline-carrier composition. Image — full-bleed field, editorial crop, shaped
picture, registered layers, scrim and spotlight, cross-page continuity. Paint —
gradients, channel alpha, native shadow and glow, halftone, faceted form.
Recurrence — one cross-page motif varied by page role. Each form's syntax lives
in the selected runtime authority's construction references.
---
## Vocabulary
One meaning per term across every loaded file. Where a word is used in
more than one sense, the sense is named here and the files say which one.
| Term | Meaning |
|---|---|
| **Reference** (label) | A starting sketch the executing role adjusts or replaces freely, with no upstream repair or stated reason; `(binding)` after a field label removes that freedom |
| **Relationships** | The §IX line naming a page's semantic units and their source-stated `order` / `link` / `parent` / `membership` / `contrast` / `overlap`, or `none` |
| **Topology decision** | The per-page yes/no on whether geometry must carry the page's `Relationships` (`topology=yes` / `topology=no`); unrelated to `pptx_structure.mode` |
| **`pptx_structure.mode`** | `flat` (every object Slide-local) or `structured` (declared Master/Layout/slot metadata); a packaging route, never information structure |
| **Composition** | The §IX `Composition` line: a Reference for a page's macro composition, hierarchy, and focus |
| **Image pattern** | The §VIII column carrying one image-composition suggestion in ordinary words (optionally citing `#P`/`#M` ids) |
| **Layout** | A PowerPoint Layout under a Master, or the Layout template kind; never a page-composition sketch |
| **Device** | An everyday page carrier — card, band, icon-and-label, KPI tile, divider, quote block — recalled in the Executor's device menu |
| **Carrier** | What a page unit sits in: a device, an image, or native geometry; the family names are carrier and field, direction and sequence, grouping and ownership, emphasis and annotation. `data-pptx-carrier` is a structured-slot attribute, not this term. The **carrier receipt** is the checker's per-page inventory of what was actually drawn |
| **Page job** | What one page must do for the reader; the input every carrier, contour, and effect decision is judged against |
| **Page field** | One large surface, outline, aperture, or off-canvas contour that organizes zones instead of a card per unit |
| **Contour / preset / atom** | A contour is a shape's silhouette; a preset is one of the 187 Office `prst` contours drawn through `preset_shape_svg.py`; an atom is one object that compiles to one DrawingML shape |
| **Geometry signature** | The retained line `page job → composition move → contour / edge language` kept per page and compared before the next page |
| **Texture** (of a block) | Whether a §IX block is prose, bullets, keywords, or labels; distinct from visual texture (grain, halftone) |
| **Anchor** | Two senses: a lock anchor (a deck-wide color, type, or spacing value) and the `page_rhythm` tag `anchor` for structural pages |
| **Sheet / slice / plate** | A sheet is one generated image holding several elements on a chroma key; a slice is one element cut from it; a plate is a registered full-canvas layer of several non-overlapping objects |
| **Module line** | The `P<NN> modules: …` line written before each page naming the triggered modules it uses |
| **Mode** | Named by qualifier: communication `mode` (how the deck argues), reading mode (`consumption_mode`), `generation_mode` (`continuous` / `split`), `pptx_structure.mode`, `replication_mode` (how a template was created) |
## Phase Frame
Every route is one Plan → Do·Check·Act cycle: Plan ends when every authoring
input exists as a file or retained decision; Do authors pages, Check runs the
route's gates, Act repairs at the owning layer (discipline 7), and the cycle
ends at export. Step numbers stay as written.
| Phase | Default | Quick | Edit Native | Create Template |
|---|---|---|---|---|
| **Plan** | Steps 1–5 | §2 | §1–4 | Steps 1–3 |
| **Do·Check·Act** | Steps 6–7 | §3–4 | §5–7 | Steps 4–8 |
## Global Execution Discipline
1. **Serial execution** — Follow the selected authority's steps in order. A completed non-blocking step may continue directly to the next eligible step.
2. **Blocking means stop** — At every `⛔ BLOCKING` gate, wait for explicit user confirmation. Do not decide on the user's behalf.
3. **No cross-phase bundling** — Do not combine work across an unclosed gate. Once the route's final user gate closes, later non-blocking steps may continue automatically.
4. **Gate before entry** — Verify every listed prerequisite before entering a step.
5. **No speculative execution** — Do not prepare later-phase artifacts before their owning step.
6. **Deterministic routing** — Do not add a route-choice question when [`routing.md`](workflows/routing.md) resolves the request. If a route prerequisite is missing, state it and stop that route.
7. **Act at the owning layer** — On failure, repair at the shallowest layer that owns the fault: the page for a page-local issue, the Plan artifact for a roster/spec/resource fault, the owning source artifact for a tool failure; then resume from the route's declared pointer. Do not silently downgrade a required artifact.
## Global Communication Rules
- Match the user's language and source language unless the user explicitly overrides it.
- Localize user-facing option labels and explanations. Render each fixed message template (role-switch banner, completion report) in the user's chat language when it differs from the template's. Keep exact enum IDs or field names when needed for precision.
- Keep `design_spec.md` section headings and field names in the template's original English; content values may use the user's language.
- Before switching roles, read the corresponding role reference and output:
```markdown
## [Role Switch: <Role Name>]
📖 Reading role definition: references/<filename>.md
📋 Current task: <brief description>
```
---
## Repository Compatibility
- This package is a workflow/skill, not a generic application scaffold. Do not create `.worktrees/`, `tests/`, branch workflows, or generic engineering structure by default.
- Keep required workflow, reference, script, and template documentation inside this Skill directory.
- Repository-level documents may point into the package; package runtime files must not depend on repository-level instructions.
- On Windows, if a documented `python3 ...` command is unavailable, rerun the same command with `python`.
- Sponsor information is optional reference material. Read the matching [`SPONSORS.md`](SPONSORS.md) or [`SPONSORS_CN.md`](SPONSORS_CN.md) only when the user explicitly requests a model, AI image model, API/provider, or hosted-service recommendation. Never surface sponsor or model recommendations proactively during normal generation, troubleshooting, or quality review.
© hugohe3 · MIT · hugohe3/ppt-master