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:
- SVG layout files (
01_cover.svg,02_chapter.svg,03_content.svg,04_ending.svg) representing distinct slide masters - A
design_spec.mddefining placeholder variables such as{{TITLE}},{{PAGE_NUM}}, and{{AUTHOR}} - Normalized assets (
manifest.json,master_layout_refs.json,normalized_assets.json) tracking extracted images and metadata - Global registration in
layouts_index.jsonenabling discovery by the PPT Master engine
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
ppt169canvas (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.pyto extract structured SVGs and metadata - Follow strict serial execution: import → analyze → design → validate → register
- Validate technical constraints with
svg_quality_checker.pyensuring proper viewBox (0 0 1280 720) and placeholder consistency - Register in
layouts_index.jsonto 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →