Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Convert PowerPoint presentations to structured markdown for LLM-assisted editing, then convert back to PowerPoint with preserved formatting and layout. Use when you need to draft, edit, or work on .pptx files interactively.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 124% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 236% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 268% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 155% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 165% | 0% |
Convert Microsoft PowerPoint presentations (.pptx) to structured markdown for easy editing with LLM assistance, then convert back to PowerPoint format with all formatting, layout, and graphics preserved.
Use this skill when:
Converts a .pptx file into a structured markdown file with special markers that preserve the exact structure of the original presentation, including slide layouts, text boxes, tables, and graphics.
You (Claude Code) can now edit the structured markdown file. The structure markers ensure the content maps back perfectly to the PowerPoint template.
Converts the edited structured markdown back to a .pptx file, using the original as a template to preserve all formatting, layout, and graphics.
When user says:
Steps:
bash python3 skills-global/pptx-draft/scripts/pptx_draft_converter.py --to-structured <input.pptx> [output.md]
Example:
bashpython3 skills-global/pptx-draft/scripts/pptx_draft_converter.py --to-structured ~/presentations/Q1_Review.pptx
Output: ~/presentations/Q1_Review_DRAFT.md
When user says:
Steps:
_DRAFT.md)bash python3 skills-global/pptx-draft/scripts/pptx_draft_converter.py --to-pptx <draft.md> [output.pptx]
_FINAL.pptx fileExample:
bashpython3 skills-global/pptx-draft/scripts/pptx_draft_converter.py --to-pptx ~/presentations/Q1_Review_DRAFT.md
Output: ~/presentations/Q1_Review_FINAL.pptx
The structured markdown uses special markers that you MUST preserve:
markdown--- PPTX_DRAFT_FORMAT: v1.0 ORIGINAL_PPTX: filename.pptx ORIGINAL_PATH: /full/path/to/filename.pptx ORIGINAL_HASH: abc123... CONVERSION_DATE: 2026-01-19T12:00:00 TOTAL_SLIDES: 5 ---
DO NOT MODIFY the metadata block. The conversion process depends on it.
markdown[SLIDE:0:layout=Title Slide] [TEXTBOX:0] This is the title [/TEXTBOX:0] [TEXTBOX:1] This is the subtitle [/TEXTBOX:1] [/SLIDE:0]
Editing rules:
[SLIDE:N] and [/SLIDE:N][TEXTBOX:M] and [/TEXTBOX:M] markers[TEXTBOX] blocks—only edit content within themmarkdown[SLIDE:2:layout=Title and Content] [TEXTBOX:0] Slide Title [/TEXTBOX:0] [TABLE:0:rows=3:cols=2] [ROW:0] [CELL:0,0] Header 1 [/CELL:0,0] [CELL:0,1] Header 2 [/CELL:0,1] [/ROW:0] [ROW:1] [CELL:1,0] Data in row 1, column 1 [/CELL:1,0] [CELL:1,1] Data in row 1, column 2 [/CELL:1,1] [/ROW:1] [/TABLE:0] [/SLIDE:2]
Editing rules:
[TABLE:N], [ROW:N], [CELL:r,c], closing tags[CELL:r,c] and [/CELL:r,c]To add a new slide to the markdown draft:
[SLIDE]...[/SLIDE] block[SLIDE:N] to the next number (e.g., if last is [SLIDE:4], new one is [SLIDE:5])[TEXTBOX] content between the markers:markdown SLIDE:5:layout=Title and Content]
TEXTBOX:0]
/TEXTBOX:0]
TEXTBOX:1]
/TEXTBOX:1]
/SLIDE:5]
TOTAL_SLIDES in the metadata block to the new totalExample of adding a new slide:
Original structure:
markdown--- TOTAL_SLIDES: 3 --- ... [SLIDE:2:layout=Title and Content] [TEXTBOX:0] Final Slide [/TEXTBOX:0] [/SLIDE:2]
After adding new slide:
markdown--- TOTAL_SLIDES: 4 --- ... [SLIDE:2:layout=Title and Content] [TEXTBOX:0] Final Slide [/TEXTBOX:0] [/SLIDE:2] [SLIDE:3:layout=Title and Content] [TEXTBOX:0] New Slide Title [/TEXTBOX:0] [TEXTBOX:1] New content goes here [/TEXTBOX:1] [/SLIDE:3]
When editing a structured markdown file:
[SLIDE] blocks[SLIDE:N] needs its [/SLIDE:N]If the original .pptx is not found during back-conversion:
Error: Original file not found at /path/to/original.pptxResponse:
ORIGINAL_PATH in metadataIf the hash doesn't match:
Error: Original file has been modified (hash mismatch)Response: Warn the user that the original template was changed. Ask if they want to:
If the number of slides in the markdown doesn't match the metadata:
Warning: Slide count mismatch (metadata says 5, found 7)Response: Verify with user that they intended to add slides. Update TOTAL_SLIDES in metadata if needed.
Initial request: > User: "I need to work on Q1_Review.pptx"
Your response:
I'll convert Q1_Review.pptx to a structured draft format so we can work on it together.
[Run conversion command]
✓ Created Q1_Review_DRAFT.md
⚠️ Important: Keep the original Q1_Review.pptx file in its current location.
You'll need it to convert back to PowerPoint format when you're done.
You can now tell me what slides you'd like to work on, and I'll help you draft the content.
The presentation has 5 slides. You can edit text on any slide, or add new slides by following the
markdown structure (I can help with this).During editing: > User: "Update slide 1 with new title and subtitle"
Your response:
I'll edit slide 1 in the structured draft. I'll make sure to keep all the structure
markers intact while updating the content.
[Edit content between appropriate markers]
Done! Slide 1 now has the new title and subtitle. Would you like to work on another slide?Adding slides: > User: "Add two new slides at the end"
Your response:
I'll add two new blank slides to the end of the presentation and update the metadata.
[Add new slide blocks to markdown]
Done! I've added slides 6 and 7 to your presentation. They're currently blank and ready for content.
You can tell me what to add to each new slide, and I'll fill them in.Finalization: > User: "I'm happy with the draft. Convert it back to PowerPoint."
Your response:
I'll convert your draft back to PowerPoint format now.
[Run back-conversion command]
✓ Created Q1_Review_FINAL.pptx
Your final PowerPoint is ready! All formatting and layout from the original template have been preserved.After converting back to PowerPoint, you can optionally validate the conversion quality:
bashpython3 skills-global/pptx-draft/scripts/pptx_draft_validator.py <original.pptx> <final.pptx> [--verbose]
The validator checks:
When to use the validator:
-- Converter script: skills-global/pptx-draft/scripts/pptx_draft_converter.py -- Validator script: skills-global/pptx-draft/scripts/pptx_draft_validator.py
python-pptx library1. Read the draft file to locate the slide
2. Find the relevant [SLIDE:N] section
3. Edit content within [TEXTBOX] markers
4. Confirm changes with user1. User provides content for slide 1 → Edit [SLIDE:0]
2. User provides content for slide 2 → Edit [SLIDE:1]
3. User reviews all slides → Make adjustments
4. User approves → Convert back to PowerPoint1. Determine new slide count and layout
2. Add new [SLIDE] blocks with sequential numbering
3. Update TOTAL_SLIDES in metadata
4. Fill in content as user provides it1. Locate slide containing [TABLE:N]
2. Find specific cells by [CELL:row,col]
3. Fill in cell content
4. Maintain all cell markers and row/column countThis skill enables efficient collaborative presentation editing whilst maintaining perfect fidelity to the original PowerPoint presentation format and layout.
Other measured skills in the registry, with their headline benchmark lift.