How to Create a Custom Presentation Template in PPT Master from an Existing PowerPoint File

Convert any existing PowerPoint file into a reusable PPT Master template by importing it with pptx_template_import.py, extracting SVG references, designing AI-compatible layouts, validating with svg_quality_checker.py, and registering the template ID in layouts_index.json.

The hugohe3/ppt-master repository enables AI-driven presentation generation through standardized, reusable layout packages. When you need to create a custom presentation template in PPT Master from an existing corporate deck, the platform provides a strict serial workflow defined in skills/ppt-master/workflows/create-template.md that transforms proprietary .pptx files into AI-editable SVG components.

Understanding the Template Architecture

PPT Master treats reusable templates as self-contained layout packages stored under skills/ppt-master/templates/layouts/. Each template consists of:

This architecture ensures that once registered, any future presentation generation can invoke your custom template by specifying its unique template ID.

The Six-Step Template Creation Workflow

According to the source code in skills/ppt-master/workflows/create-template.md, the creation process follows strict serial execution (no batching) across six discrete phases:

1. Import the Source PPTX

Run skills/ppt-master/scripts/pptx_template_import.py to extract metadata, assets, and per-slide SVGs from your existing PowerPoint file. This script externalizes inline images and optimizes the SVGs for AI inspection.

python3 skills/ppt-master/scripts/pptx_template_import.py path/to/brand_template.pptx

The script creates a folder named brand_template_template_import/ beside your source file containing manifest.json, cleaned SVGs under svg/, and extracted assets.

2. Analyze the Exported SVGs

The import process generates reference_svg_selection.json, a curated JSON file listing representative slides (cover, chapter, TOC, content, ending) that serve as references for the Template Designer. This file ensures the AI understands the visual hierarchy and layout variations present in your original deck.

3. Generate the Template Directory

Create a new directory using a short ASCII slug that will serve as your template ID:

mkdir -p skills/ppt-master/templates/layouts/my_company

This folder name (my_company) becomes the key in layouts_index.json and must match the template's identifier throughout the system.

4. Design the Template

The Template_Designer role—defined in skills/ppt-master/references/template-designer.md—uses the imported assets to author fresh SVG layout files. For manual creation, copy the representative SVGs and create a design specification:

cp brand_template_template_import/svg/slide_01.svg skills/ppt-master/templates/layouts/my_company/01_cover.svg
cp brand_template_template_import/svg/slide_02.svg skills/ppt-master/templates/layouts/my_company/02_chapter.svg

Create design_spec.md describing your placeholders:


# Design Specification for My Company Template

- **Cover**: `{{TITLE}}`, `{{SUBTITLE}}`, `{{DATE}}`, `{{AUTHOR}}`
- **Chapter**: `{{CHAPTER_NUM}}`, `{{CHAPTER_TITLE}}`
- **Content**: `{{PAGE_TITLE}}`, `{{CONTENT_AREA}}`, `{{PAGE_NUM}}`
- **Ending**: `{{THANK_YOU}}`, `{{CONTACT_INFO}}`

5. Validate SVG Quality

Execute skills/ppt-master/scripts/svg_quality_checker.py to enforce technical constraints before registration:

python3 skills/ppt-master/scripts/svg_quality_checker.py skills/ppt-master/templates/layouts/my_company --format ppt169

The validator confirms:

  • viewBox matches the ppt169 canvas (0 0 1280 720)
  • All required placeholders are present and consistently named
  • Referenced asset files exist in the expected paths

6. Register the Template

Add your template to the global registry in skills/ppt-master/templates/layouts/layouts_index.json:

{
  "my_company": {
    "label": "My Company Brand Template",
    "summary": "A corporate template with custom branding, colors, and placeholders",
    "keywords": ["Brand", "Corporate", "Marketing"]
  }
}

Update the human-readable templates/layouts/README.md to document the new template. Once committed, the PPT Master engine can discover and invoke your template by the my_company key.

Key Components Reference

Component Role in Template Creation Key Artifacts
pptx_template_import.py Converts source PPTX into a reference workspace manifest.json, assets/, svg/, reference_svg_selection.json
create-template.md workflow Orchestrates sequential steps (gather brief, import, design, validate, register) Structured checklist, hard-gate rules
Template_Designer role Generates final SVG layouts and design_spec.md 01_cover.svg, 02_chapter.svg, design_spec.md
svg_quality_checker.py Enforces SVG technical constraints Validation output, pass/fail status
layouts_index.json Global lookup table for template discovery Template metadata with labels, summaries, keywords

Summary

  • Templates are self-contained packages under skills/ppt-master/templates/layouts/ containing SVGs, specifications, and asset manifests
  • Import existing decks using pptx_template_import.py to extract structured SVGs and metadata
  • Follow strict serial execution: import → analyze → design → validate → register
  • Validate technical constraints with svg_quality_checker.py ensuring proper viewBox (0 0 1280 720) and placeholder consistency
  • Register in layouts_index.json to make templates discoverable by the PPT Master generation pipeline

Frequently Asked Questions

What placeholder variables can I use in a custom PPT Master template?

According to the Template_Designer role definition in skills/ppt-master/references/template-designer.md, you can define any semantic placeholders in design_spec.md such as {{TITLE}}, {{PAGE_NUM}}, {{AUTHOR}}, {{CHAPTER_TITLE}}, or {{CONTENT_AREA}}. These variables are replaced during the slide generation phase when the template is invoked.

Can I import multiple PowerPoint files simultaneously?

No. The workflow explicitly follows strict serial execution as defined in the project's AGENTS.md guidelines. You must process one source PPTX at a time through pptx_template_import.py, completing the full six-step workflow (including validation and registration) before starting the next template.

What canvas size should my SVG template files use?

For standard 16:9 presentations, set your SVG viewBox to 0 0 1280 720. The svg_quality_checker.py script validates this when invoked with the --format ppt169 flag. Other aspect ratios may be supported depending on your specific PPT Master configuration, but ppt169 is the standard format.

How does PPT Master locate my custom template during generation?

The engine searches skills/ppt-master/templates/layouts/layouts_index.json for the template ID you specify. This JSON file acts as a global registry containing metadata objects with label, summary, and keywords for each available template. Ensure your template slug matches exactly between the directory name and the JSON key.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →