Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
davidroliverba avatar

Pptx Extract Template

  • 1 installs
  • 49 repo stars
  • Updated March 2, 2026
  • davidroliverba/architectkb

Extract slide masters, layouts, color themes, and font themes from a PowerPoint file and save them as a reusable template in a local template library.

About

Runs a python-pptx extraction script to pull the design system out of a .pptx and store it as reusable template JSON plus the source file. A developer uses it to capture branded PowerPoint designs for later slide generation.

  • Extracts slide masters, layouts, color and font themes, and placeholder configs
  • Dry-run analysis and optional LibreOffice layout preview thumbnails

Pptx Extract Template by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #565 of 688 Office & Documents skills by installs in the Skillselion catalog
  • Data as of Jul 21, 2026 (Skillselion catalog sync)
npx skills add https://github.com/davidroliverba/architectkb --skill pptx-extract-template

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars49
Last updatedMarch 2, 2026
Repositorydavidroliverba/architectkb

What it does

Extract slide masters, layouts, color themes, and font themes from a PowerPoint file and save them as a reusable template in a local template library.

Files

SKILL.mdMarkdownGitHub ↗

/pptx-extract-template

Extract the design system (slide masters, layouts, colour themes, font themes, placeholder configurations) from a PowerPoint presentation and save it as a reusable template.

Usage

/pptx-extract-template <path-to-pptx>
/pptx-extract-template <path-to-pptx> --name "Template Name"
/pptx-extract-template <path-to-pptx> --previews

Examples

/pptx-extract-template ~/Downloads/BAAE Community Day Feb2026.pptx
/pptx-extract-template Attachments/SAP Architecture.pptx --name "SAP Branded" --previews
/pptx-extract-template quarterly-review.pptx --name "BA Quarterly Review"

Instructions

Phase 1: Locate the PowerPoint File

1. Parse the argument for a file path 2. If partial or just a filename, search in this order:

  • ~/Downloads/
  • Vault Attachments/ folder
  • Current directory

3. Verify the file exists and has a .pptx extension 4. If not found, ask user for the correct path

Phase 2: Dry-Run Analysis

Run the extraction script in dry-run mode to show what will be extracted:

python3 .claude/scripts/pptx_extract_template.py "<pptx-path>" --dry-run --verbose

Review the output and present a summary to the user:

  • Number of slide masters and layouts
  • Theme colours and fonts
  • Notable layout names

Phase 3: Confirm Name and Tags

Use AskUserQuestion to confirm:

Question: "What should this template be called?"
Header: "Template"
Options:
  1. "<inferred name from filename>" (Recommended)
  2. "Custom name"

Then ask for tags:

Question: "Which tags apply to this template?"
Header: "Tags"
Options:
  1. "ba, corporate" (Recommended for BA presentations)
  2. "ba, engineering"
  3. "ba, community-day"
  4. "Custom tags"
multiSelect: true

Phase 4: Extract and Save

Run the full extraction:

python3 .claude/scripts/pptx_extract_template.py "<pptx-path>" --name "<name>" --tags <tag1> <tag2>

Add --previews if the user requested layout preview thumbnails (requires LibreOffice).

Phase 5: Verify

After extraction, verify the output:

1. Check .claude/templates/pptx/<slug>/template.json exists and is valid JSON 2. Check _catalogue.json has been updated 3. Confirm the source PPTX was copied

Phase 6: Report

Template extracted successfully!

  Name:     <name>
  Slug:     <slug>
  Layouts:  <count> unique layouts
  Theme:    <colour scheme name> (<major font> / <minor font>)
  Saved to: .claude/templates/pptx/<slug>/

Use this template with:
  /pptx-create "Title" --template <slug>

View all templates with:
  /pptx-templates

What Gets Extracted

ElementDescriptionStored As
Slide MastersBase design with backgrounds, logostemplate.json
Slide LayoutsNamed layouts with placeholder positionslayouts/*.json
Colour ThemeBrand colours (dk1, lt1, accent1-6, etc.)theme/colours.json
Font ThemeHeading and body font familiestheme/fonts.json
PlaceholdersType, position, size, default formatting per layoutlayouts/*.json
Source PPTXOriginal file for use as creation templatesource.pptx

Error Handling

ErrorSolution
File not foundAsk user for correct path
Not a PPTX fileInform user, suggest conversion
python-pptx import errorpip3 install python-pptx
Corrupted PPTXSuggest opening in PowerPoint first
Permission deniedCheck file permissions

Template Storage

Templates are stored in .claude/templates/pptx/:

.claude/templates/pptx/
├── _catalogue.json           # Master index
├── <template-slug>/
│   ├── template.json         # Full metadata
│   ├── source.pptx           # Original PPTX (used for creation)
│   ├── layouts/              # Per-layout JSON files
│   │   ├── title-slide.json
│   │   ├── section-header.json
│   │   └── ...
│   ├── theme/
│   │   ├── colours.json
│   │   └── fonts.json
│   └── previews/             # Optional layout thumbnails
│       └── *.png

Integration with Other Skills

  • `/pptx-create` — Use extracted templates to create new presentations
  • `/pptx-templates` — Browse and manage the template library
  • `/pptx-to-page` — Extract content (not design) from presentations

Dependencies

  • python-pptx — PPTX parsing and introspection
  • lxml — Theme XML extraction
  • LibreOffice (optional) — Layout preview generation

Related skills

Office & Documentsworkflownotes

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.