Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add millord237/10X-Canva-Skills --skill "canva-presentation"
Install specific skill from multi-skill repository
# Description
|
# SKILL.md
name: canva-presentation
description: |
Work with Canva presentations, slideshows, and multi-page documents. Use this skill when
user wants to create, edit, or manage presentations. Handles slide operations like
adding/removing slides, reordering, editing individual slides, and bulk updates.
Follows 3-mode workflow: PLAN, CLARIFY, IMPLEMENT for safe operations.
allowed-tools:
- Bash
- Read
- Write
- Edit
- AskUserQuestion
Canva Presentation Skill
Specialized skill for working with Canva presentations, slideshows, and multi-page documents.
⚠️ CRITICAL DESIGN PRESERVATION RULES (MANDATORY)
These rules are NON-NEGOTIABLE. Violating them will break the presentation design.
🚫 NEVER DO THESE THINGS:
- NEVER create new text elements - Only modify text in EXISTING elements
- NEVER add new shapes or elements - Only modify EXISTING elements
- NEVER create blank slides - ALWAYS duplicate an existing slide
- NEVER change font sizes - Unless user EXPLICITLY requests it
- NEVER change font colors - Unless user EXPLICITLY requests it
- NEVER change alignments - Unless user EXPLICITLY requests it
- NEVER change element positions - Unless user EXPLICITLY requests it
- NEVER change backgrounds - Unless user EXPLICITLY requests it
- NEVER change the template/theme - Unless user EXPLICITLY requests it
- NEVER modify decorative elements - Logos, lines, shapes, images that are part of design
✅ ALWAYS DO THESE THINGS:
- ALWAYS duplicate existing slides to create new ones (preserves theme/design)
- ALWAYS replace text within existing elements only
- ALWAYS preserve all formatting when replacing content
- ALWAYS analyze slide structure first before any modification
- ALWAYS identify content elements vs decorative elements before editing
- ALWAYS use the existing slide as template for new slides
Creating New Slides - THE CORRECT WAY:
# WRONG - Creates blank slide, breaks design
add_slide.py --design "ID" --position 6 --template "blank"
# CORRECT - Duplicates existing slide, preserves design
duplicate_slide.py --design "ID" --slide 5 --position 6
# Then modify the duplicated slide's content
update_slide.py --design "ID" --slide 6 --element "headline" --text "New Title"
Updating Content - THE CORRECT WAY:
# WRONG - Might create new element
# Adding text without checking existing elements
# CORRECT - First identify existing elements, then update them
get_slide.py --design "ID" --slide 3 # Analyze structure first
update_slide.py --design "ID" --slide 3 --element "headline" --text "New Headline"
Scope of This Skill
This skill handles:
- Presentations (16:9, 4:3)
- Slideshows
- Pitch Decks
- Multi-page Documents
- Whiteboards with multiple frames
- Any design with multiple pages/slides
Operations supported:
- View all slides in a presentation
- Edit individual slide content (REPLACE only, not ADD)
- ~~Add new slides~~ → Duplicate existing slides
- Remove slides
- Reorder slides
- Duplicate slides (PREFERRED for adding content)
- Apply consistent styling across slides (using existing styles)
- Export to PPTX or PDF
3-Mode Workflow
MODE 1: PLAN
-
Load Presentation Structure
python # Get presentation overview python skills/canva-presentation/scripts/get_presentation.py \ --id "DESIGN_ID" \ --include-thumbnails -
Document Slide Analysis
```
## Presentation Analysis: "[Name]"
### Overview
- Total Slides: 15
- Dimensions: 1920x1080 (16:9)
- Created: 2024-01-15
- Last Modified: 2024-02-20
### Slide Breakdown
| # | Title | Elements | Notes |
|---|-------|----------|-------|
| 1 | Cover Slide | Logo, Title, Subtitle | |
| 2 | Agenda | 5 bullet points | |
| 3 | Introduction | Text, Image | |
...
### Proposed Changes
1. Update slide 3 headline
2. Add new slide after slide 5
3. Remove slide 12
4. Reorder slides 8-10
```
MODE 2: CLARIFY
Critical questions for presentations:
- Slide Identification
- "Which slide number? Or can you describe it?"
-
"Slide 5 has title 'Q3 Results' - is this the one?"
-
Content Changes
- "What should the new text say?"
-
"Should I maintain the current bullet format?"
-
Structural Changes
- "Where should the new slide be inserted?"
-
"This will shift all subsequent slide numbers. Proceed?"
-
Bulk Operations
- "Apply this change to all 15 slides or specific ones?"
- "Should I update the master template instead?"
MODE 3: IMPLEMENT
# Get slide details
python skills/canva-presentation/scripts/get_slide.py \
--design "DESIGN_ID" \
--slide 3
# Update slide content
python skills/canva-presentation/scripts/update_slide.py \
--design "DESIGN_ID" \
--slide 3 \
--element "headline" \
--text "New Headline"
# Add new slide
python skills/canva-presentation/scripts/add_slide.py \
--design "DESIGN_ID" \
--position 6 \
--template "blank"
# Remove slide
python skills/canva-presentation/scripts/remove_slide.py \
--design "DESIGN_ID" \
--slide 12
# Reorder slides
python skills/canva-presentation/scripts/reorder_slides.py \
--design "DESIGN_ID" \
--order "1,2,3,4,5,8,9,10,6,7,11,12,13,14,15"
# Duplicate slide
python skills/canva-presentation/scripts/duplicate_slide.py \
--design "DESIGN_ID" \
--slide 5 \
--position 6
Available Scripts
Analysis Scripts
get_presentation.py- Full presentation overviewget_slide.py- Detailed info for one slideanalyze_structure.py- Template and master analysisextract_all_text.py- Get all text from all slidescompare_slides.py- Find similar/duplicate slides
Edit Scripts
update_slide.py- Modify slide contentadd_slide.py- Insert new slideremove_slide.py- Delete a slideduplicate_slide.py- Copy a slidereorder_slides.py- Change slide orderbatch_update.py- Apply changes to multiple slidesupdate_master.py- Modify master template
Creation Scripts
create_presentation.py- New presentationcreate_from_template.py- From Canva template
Slide Types
Common slide layouts:
- Title Slide: Main title and subtitle
- Title + Content: Header with body text
- Two Column: Side-by-side content
- Image + Text: Split layout
- Full Image: Background image
- Quote: Featured quote
- Chart/Graph: Data visualization
- Comparison: Two items side by side
- Timeline: Sequential events
- Team: Profile cards
- Thank You: Closing slide
Presentation Dimensions
| Type | Dimensions | Aspect Ratio |
|---|---|---|
| Widescreen | 1920x1080 | 16:9 |
| Standard | 1024x768 | 4:3 |
| Portrait | 1080x1920 | 9:16 |
| Square | 1080x1080 | 1:1 |
| A4 | 595x842 | ~1:1.4 |
| Letter | 612x792 | ~1:1.3 |
Bulk Operations
For changes across multiple slides:
# Update all headlines
python skills/canva-presentation/scripts/batch_update.py \
--design "DESIGN_ID" \
--element-type "headline" \
--font "Montserrat" \
--slides "all"
# Update footer on specific slides
python skills/canva-presentation/scripts/batch_update.py \
--design "DESIGN_ID" \
--element-type "footer" \
--text "Confidential" \
--slides "2,3,4,5,6,7,8"
# Apply color scheme
python skills/canva-presentation/scripts/batch_update.py \
--design "DESIGN_ID" \
--primary-color "#2E86AB" \
--secondary-color "#F4D35E" \
--slides "all"
Safety Guidelines (DESIGN PRESERVATION)
- Confirm slide numbers - Always verify which slide before editing
- ANALYZE STRUCTURE FIRST - Identify placeholders vs decorative elements
- Document before removal - List slide content before deleting
- Backup for reorder - Note original order before reordering
- DUPLICATE, don't create - New slides must be duplicated from existing ones
- Check dependencies - Some slides may reference others
- NEVER add new elements - Only modify existing ones
- PRESERVE ALL FORMATTING - Font, size, color, position must stay the same
Example Interactions
"Show me the slides in my pitch deck"
[PLAN]
- Retrieve presentation structure
- Generate slide overview with titles
[CLARIFY]
- None needed for read-only operation
[IMPLEMENT]
- Display slide list with thumbnails
"Update the Q3 numbers on slide 7"
[PLAN]
- Get slide 7 details
- Identify which elements contain numeric values (EXISTING elements only)
- Document current values and their formatting
[CLARIFY]
- "Slide 7 shows: Revenue $1.2M, Growth 15%"
- "What are the new numbers?"
- "I will update ONLY the values, keeping all formatting intact"
[IMPLEMENT]
- Update specified values IN EXISTING ELEMENTS
- Verify formatting maintained (font, size, color, position unchanged)
- ⚠️ DO NOT create new text boxes
"Add a new slide about our team after the intro"
[PLAN]
- Identify intro slide (slide 2)
- Find a suitable slide to DUPLICATE (slide with similar layout)
- New team slide will be slide 3 (DUPLICATED from existing)
- All subsequent slides shift by 1
[CLARIFY]
- "I'll DUPLICATE slide 2 to preserve the design theme"
- "What team info should replace the existing content?"
- "This will renumber slides 3→4, 4→5, etc."
[IMPLEMENT]
- DUPLICATE slide 2 to position 3 (preserves theme/design)
- REPLACE text in existing elements with team content
- ⚠️ DO NOT add new text boxes or shapes
- Confirm new structure
❌ INCORRECT: "Add a new slide with custom layout"
[RESPONSE]
- "I cannot create slides with custom layouts as this would break the design"
- "Instead, I can DUPLICATE an existing slide and modify its content"
- "Which existing slide's design would you like to use as the template?"
Export Options
For presentations:
- PDF - Static document
- PPTX - Editable PowerPoint
- PNG/JPG - Individual slide images
- Video - Animated slideshow (if applicable)
Use canva-export skill for actual export operations.
Output Files
output/presentations/- Presentation dataoutput/slide_thumbnails/- Slide imagesoutput/logs/presentation_edits.json- Change history
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.