slides-extract
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-buildfor a given template - When the source template changes
- When you need to analyze a template's layouts and capabilities
Prerequisites
- A
.pptxfile (template or sample deck with example slides)
Process
Step 1) Create project directory
Create a dedicated directory for this project's artifacts:
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:
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:archetypesis a dict keyed by archetype ID, not a list — iterate withfor aid, arch in archetypes.items()) - Which layouts are split-panel (title in a side zone)?
- What
text_colordoes 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:
{
"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:
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-builddesign-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
- All artifact files exist and are valid JSON (where applicable).
resolved_manifest.jsoncontains at least one archetype with resolved layouts.base_template.pptxopens without errors.design-profile.jsonreferencesbase_template.pptxandcontent_layout.json.slides preflightreports"ok": true.- Comprehension gate questions answered correctly.
More from mpuig/agent-slides
slides-critique
Review an existing deck for storytelling quality, visual hierarchy, and content effectiveness. Identifies weak action titles, MECE violations, isomorphism mismatches, and density issues. Use when the user says "review my deck", "critique the presentation", "are the slides telling a good story", "check the narrative flow", "improve the slide titles", or wants feedback on content quality rather than technical formatting.
39slides-build
Build a complete presentation deck from a brief. Generates storytelling plan, slide operations, renders the deck, and runs QA. Requires extracted template contracts from /slides-extract. Use when the user wants to create slides, build a deck, generate a presentation, write a strategy deck, or says things like "make me a 10-slide deck on X", "create a presentation about Y", "build slides for the board meeting".
37slides-polish
Final pass before shipping a deck. Ensures speaker notes, metadata, sources, disclaimer, and consistent formatting are all in place. Use when the user says "polish the deck", "add speaker notes", "finalize the presentation", "make it ready to send", "check sources and footnotes", or the deck is content-complete but needs a finishing pass.
35slides-full
End-to-end deck pipeline — extract, preflight, build, audit, critique, and polish in one pass. Use when the user wants a complete deck from scratch with a template, says "create a full deck", "build me a presentation end to end", "make a polished deck from this template", or provides both a brief and a template and expects a finished, presentation-ready result. Prefer this over chaining individual skills manually.
34slides-audit
Run technical quality checks on an existing deck. Finds and fixes font size violations, shape overlaps, contrast issues, missing sources, and layout compliance problems. Use when the user says "check the deck for issues", "run QA", "lint the slides", "are there any formatting problems", "audit the presentation", or wants to verify visual quality before sharing.
33slides-edit
Edit an existing presentation deck. Supports text edits, layout transforms, and ops-based patches. Use when the user wants to change text on a slide, update a title, fix a typo, swap a layout, replace chart data, add or remove slides, or says things like "change slide 3 title to X", "update the numbers on the chart", "move the agenda slide".
32