Skip to content
Back to skills

Slides Extract

ASecurity

Extract template contracts from a .pptx file. Produces layout catalogs, archetypes, resolved manifest, and a clean base template for slides-build. Use when the user provides a PowerPoint template, says "use this template", "extract layouts", "analyze this pptx", or wants to prepare a template before building slides.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 21, 2026
ai-agentspythongobash

Security analysis

A100/100

Scanned October 21, 2026

npx -y skills add studio-yebisu/awesome-codex-ppt-skills-ja --skill slides-extract --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Slides Extract?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Slides Extract
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/studio-yebisu-slides-extract/badge)](https://www.skillsdirectory.com/skills/studio-yebisu-slides-extract)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: slides-extract
description: Extract template contracts from a .pptx file. Produces layout catalogs, archetypes, resolved manifest, and a clean base template for slides-build. Use when the user provides a PowerPoint template, says "use this template", "extract layouts", "analyze this pptx", or wants to prepare a template before building slides.
compatibility: Requires Python 3.12+ and uv.
---

# Slides Extract

You are a template analyst. Your job is to extract structured contracts from PowerPoint templates so that downstream skills can generate pixel-perfect decks without guessing.

Extract template contracts from a `.pptx` template or sample deck.

## When to Use

- Before the first `/slides-build` for a given template
- When the source template changes
- When you need to analyze a template's layouts and capabilities

## Prerequisites

- A `.pptx` file (template or sample deck with example slides)

## Process

### Step 1) Create project directory

Create a dedicated directory for this project's artifacts:

```bash
mkdir -p output/<project-name>
```

All subsequent commands and outputs go in this directory.

### Step 2) Run extraction

Use `uvx --from agent-slides slides docs method:extract` to verify the current contract, then:

```bash
uvx --from agent-slides slides extract <template_or_sample.pptx> \
  --output-dir output/<project> \
  --base-template-out output/<project>/base_template.pptx \
  --compact
```

Optional: add `--layout-preview-dir output/<project>/layout_previews` for per-layout PNGs
(legacy override), or specific `--*-out` paths for one-off custom filenames.

### Step 3) Verify outputs

| Artifact | Purpose |
|---|---|
| `template_layout.json` | Physical layout families, placeholders, geometry |
| `content_layout.json` | Archetype-to-layout compatibility map |
| `archetypes.json` | Available archetypes with usage constraints |
| `resolved_manifest.json` | Merged contract — theme palette, per-archetype resolved layout bindings. Primary reference for `/slides-build`. |
| `slides_manifest.json` | Slide-by-slide inventory of the source |
| `slide_analysis.json` | Deep per-slide structural analysis |
| `slide_screenshots/` | Visual reference screenshots |
| `icons/` | Vector icons extracted from template slides (freeform/group shapes). Available via `add_icon` when `icon_pack_dir` is set in design profile. |
| `base_template.pptx` | Clean `.pptx` — all masters/layouts/theme, zero content slides |

### Step 4) Comprehension gate

Read `resolved_manifest.json` and verify you can answer these questions before proceeding:

- What accent colors does the theme use? List the hex values. (Path: `theme.palette.accent1` … `accent6`)
- How many archetypes have `resolved_layouts`? Name them. (Note: `archetypes` is a **dict keyed by archetype ID**, not a list — iterate with `for aid, arch in archetypes.items()`)
- Which layouts are split-panel (title in a side zone)?
- What `text_color` does each color zone use?

If any answer is unclear, re-read the manifest. Do not proceed to the design profile until all four are answered.

### Step 5) Build design profile

Write `design-profile.json` in the project directory:

```json
{
  "name": "<project-name>",
  "template_path": "base_template.pptx",
  "content_layout_catalog_path": "content_layout.json"
}
```

Add these fields from the extracted theme:

| Field | Source | Purpose |
|---|---|---|
| `primary_color_hex` | Theme accent1 | Brand accent color for subheadings |
| `text_color_light` | Theme lt1 | Light text for dark backgrounds |
| `text_color_dark` | Theme dk1 | Dark text for light backgrounds |
| `default_font_size_pt` | Template body size | Default for `add_text` |
| `icon_pack_dir` | `icons/` (if extracted) | Directory of template-specific vector icons for `add_icon` |

Always use `base_template.pptx` (not the original) as `template_path`.

If the extraction produced an `icons/` directory with `.xml` files, add `"icon_pack_dir": "icons"` to the design profile. These icons become available via `add_icon` alongside the built-in icon library.

**Only add fields listed above or in the schema.** The profile uses `extra="forbid"` — any unknown field (e.g., `secondary_color_hex`, `accent_color_hex`, `font_name`) causes a validation error.

Use `uvx --from agent-slides slides docs schema:design-profile` for the full schema.

### Step 6) Preflight the project

Before handing the project off to `/slides-build` or `/slides-full`, verify the extracted artifacts and profile:

```bash
uvx --from agent-slides slides preflight --project-dir output/<project> --profile output/<project>/design-profile.json --compact
```

If preflight fails, fix the project structure or profile paths before continuing.

## Outputs

This skill produces the project directory consumed by all other slides skills:

- `base_template.pptx` + contract JSONs -> `/slides-build`
- `design-profile.json` -> all post-build skills

## Error Handling

On any slides error, run `uvx --from agent-slides slides docs method:extract` to verify the current contract before retrying.

## Acceptance Criteria

1. All artifact files exist and are valid JSON (where applicable).
2. `resolved_manifest.json` contains at least one archetype with resolved layouts.
3. `base_template.pptx` opens without errors.
4. `design-profile.json` references `base_template.pptx` and `content_layout.json`.
5. `slides preflight` reports `"ok": true`.
6. Comprehension gate questions answered correctly.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.