| name | pptx-template-updater |
| category | Productivity |
| description | Update PowerPoint templates with new content while preserving formatting, structure, and layout. Uses semantic analysis to understand template structure and intelligently map new content (from meeting transcripts, summaries, reports) to appropriate shapes. Use when the user asks to update a PowerPoint presentation, fill in a PPTX template, update slides with new data, or refresh a presentation with new content. Handles business reports, sales decks, status updates, and other template-based presentations. |
PowerPoint Template Updater
Update PowerPoint templates by intelligently mapping new content to existing shapes while preserving all formatting, bullet structures, and layout.
Overview
This skill enables semantic template updates: instead of rigid placeholders, it analyzes the template structure to understand what each shape contains, then intelligently updates text with new content from sources like meeting transcripts, summaries, or structured data.
Key capabilities:
- Extract and analyze template structure (shape positions, content, purpose)
- Derive semantic meaning from shape content and positioning
- Preserve bullet point hierarchy and formatting
- Respect text length constraints to prevent overflow
- Update only text content—never modify layouts or formatting
Installation
Prerequisites:
- Python 3.8 or higher
- pip (Python package installer)
Setup:
- Navigate to the skill directory:
cd pptx-template-updater
- Run the setup script to create an isolated virtual environment and install dependencies:
./setup.sh
This will:
- Create a
.venv directory with an isolated Python environment
- Install python-pptx and all required dependencies
- Set up the skill for secure, isolated execution
Note: The setup only needs to be run once. All scripts will automatically use the isolated environment.
Workflow
1. Analyze Template Structure
First, understand the template you're working with:
./scripts/run_extract.sh template.pptx --output structure.json
This produces a JSON file with:
- All slides and shapes
- Text content and character counts
- Shape positions and types
- Paragraph and bullet information
Review the structure to understand:
- What content exists in each shape
- Which shapes should be updated
- Text length constraints
2. Understand Semantic Meaning
Use heuristics to infer what each shape represents:
Consult semantic-analysis.md for detailed guidance on:
- Inferring slide types (title slide, metrics slide, content slide)
- Determining shape purpose from position and content
- Detecting patterns (label-value pairs, temporal content, hierarchical bullets)
- Matching new content to appropriate shapes
Key inference signals:
- Position: Top shapes = titles, bottom = footers, center = main content
- Content patterns: Dates, metrics (numbers/percentages), headers, bullet lists
- Context: Surrounding shapes, slide type, existing text patterns
3. Extract and Map Content
Parse the new content source (transcript, summary, data file):
new_data = {
"date": "Q4 2024",
"metrics": [
{"label": "Revenue", "value": "$2.5M"},
{"label": "Users", "value": "10,000"}
],
"key_points": [
"Launched new feature X",
"Expanded to 3 new markets",
"Customer satisfaction up 15%"
]
}
Match extracted data to template shapes based on semantic analysis:
- Date fields → update with current date/period
- Metric values → update numbers while preserving format
- Bullet lists → update content while preserving hierarchy
- Headers → update section titles
4. Validate Length Constraints
Critical: Text must fit within existing shapes.
For each update:
- Check original text length (from structure analysis)
- Compare with new text length
- If new text is >50% longer, either:
- Summarize/truncate to fit
- Warn the user
- Ask for guidance
See semantic-analysis.md for text fitting strategies.
5. Create Update Instructions
Build a JSON file with update instructions:
{
"updates": [
{
"slide": 1,
"shape": 2,
"text": "Q4 2024 Results",
"preserve_bullets": false
},
{
"slide": 2,
"shape": 5,
"text": "Launched new feature X\nExpanded to 3 new markets\nCustomer satisfaction up 15%",
"preserve_bullets": true
}
]
}
6. Apply Updates
./scripts/run_update.sh template.pptx updates.json output.pptx
The script will:
- Apply all updates
- Preserve formatting and bullet structure
- Warn if text length exceeds constraints
- Report errors for invalid slide/shape indices
Review the output presentation to ensure:
- Text fits within shapes
- Bullet hierarchy is preserved
- Formatting looks correct
- No content was cut off
Quick Start Example
User request: "Update this quarterly report with data from our team meeting notes"
./scripts/run_extract.sh quarterly_report.pptx -o structure.json
{
"updates": [
{"slide": 1, "shape": 2, "text": "Q4 2024 Quarterly Report"},
{"slide": 2, "shape": 3, "text": "$2.5M"},
{"slide": 2, "shape": 4, "text": "10,000"},
{"slide": 3, "shape": 2, "text": "Launched feature X\nExpanded to 3 markets\n15% satisfaction increase", "preserve_bullets": true}
]
}
./scripts/run_update.sh quarterly_report.pptx updates.json updated_report.pptx
Reference Documentation
For detailed technical guidance:
Best Practices
- Always analyze first: Run
extract_template_structure.py before updating to understand constraints
- Preserve structure: Match the original template's organization—don't add complexity it doesn't have
- Respect lengths: Never overflow shapes; summarize or ask for guidance if text is too long
- Maintain hierarchy: Preserve bullet point levels and paragraph structure
- Test incrementally: Update a few shapes first, review output, then proceed with remaining updates
- Handle ambiguity: When unsure which shape to update, ask the user or provide options
- Validate output: Always review the generated presentation before considering it final
Common Scenarios
Scenario 1: Weekly status update from meeting transcript
- Extract key discussion points and decisions
- Map to "Updates" and "Action Items" bullet lists
- Update date field with current week
Scenario 2: Quarterly business review from data export
- Extract metrics (revenue, growth, users)
- Map to metric value shapes (usually near labels)
- Update period indicator (Q1 2024 → Q2 2024)
Scenario 3: Sales deck customization
- Replace company name, product names
- Update customer testimonials
- Modify feature lists based on prospect needs
Scenario 4: Event presentation from event details
- Update event name, date, location
- Replace speaker names and bios
- Modify agenda/schedule