TaskGuideRead/analyze contentpython -m markitdown presentation.pptxEdit or create from templateRead editing.mdCreate from scratchRead pptxgenjs.md
bash
# Text extraction
python -m markitdown presentation.pptx
# Visual overview
python scripts/thumbnail.py presentation.pptx
# Raw XML
python scripts/office/unpack.py presentation.pptx unpacked/
Read editing.md for full details.
thumbnail.pyRead pptxgenjs.md for full details.
Use when no template or reference presentation is available.
Don't create boring slides. Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.
Choose colors that match your topic — don't default to generic blue. Use these palettes as inspiration:
ThemePrimarySecondaryAccentMidnight Executive1E2761 (navy)CADCFC (ice blue)FFFFFF (white)Forest & Moss2C5F2D (forest)97BC62 (moss)F5F5F5 (cream)Coral EnergyF96167 (coral)F9E795 (gold)2F3C7E (navy)Warm TerracottaB85042 (terracotta)E7E8D1 (sand)A7BEAE (sage)Ocean Gradient065A82 (deep blue)1C7293 (teal)21295C (midnight)Charcoal Minimal36454F (charcoal)F2F2F2 (off-white)212121 (black)Teal Trust028090 (teal)00A896 (seafoam)02C39A (mint)Berry & Cream6D2E46 (berry)A26769 (dusty rose)ECE2D0 (cream)Sage Calm84B59F (sage)69A297 (eucalyptus)50808E (slate)Cherry Bold990011 (cherry)FCF6F5 (off-white)2F3C7E (navy)
Every slide needs a visual element — image, chart, icon, or shape. Text-only slides are forgettable.
Layout options:
Data display:
Visual polish:
Choose an interesting font pairing — don't default to Arial. Pick a header font with personality and pair it with a clean body font.
Header FontBody FontGeorgiaCalibriArial BlackArialCalibriCalibri LightCambriaCalibriTrebuchet MSCalibriImpactArialPalatinoGaramondConsolasCalibriElementSizeSlide title36-44pt boldSection header20-24pt boldBody text14-16ptCaptions10-12pt muted
margin: 0 on the text box or offset the shape to account for paddingAssume there are problems. Your job is to find them.
Your first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.
bash
python -m markitdown output.pptx
Check for missing content, typos, wrong order.
When using templates, check for leftover placeholder text:
bash
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
If grep returns results, fix them before declaring success.
⚠️ USE SUBAGENTS — even for 2-3 slides. You've been staring at the code and will see what you expect, not what's there. Subagents have fresh eyes.
Convert slides to images (see Converting to Images), then use this prompt:
text
Visually inspect these slides. Assume there are issues — find them.
Look for:
- Overlapping elements (text through shapes, lines through words, stacked elements)
- Text overflow or cut off at edges/box boundaries
- Decorative lines positioned for single-line text but title wrapped to two lines
- Source citations or footers colliding with content above
- Elements too close (< 0.3" gaps) or cards/sections nearly touching
- Uneven gaps (large empty area in one place, cramped in another)
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text (e.g., light gray text on cream-colored background)
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
- Text boxes too narrow causing excessive wrapping
- Leftover placeholder content
For each slide, list issues or areas of concern, even if minor.
Read and analyze these images:
1. /path/to/slide-01.jpg (Expected: [brief description])
2. /path/to/slide-02.jpg (Expected: [brief description])
Report ALL issues found, including minor ones.
Do not declare success until you've completed at least one fix-and-verify cycle.
Convert presentations to individual slide images for visual inspection:
bash
python scripts/office/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide
This creates slide-01.jpg, slide-02.jpg, etc.
To re-render specific slides after fixes:
bash
pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed
pip install "markitdown[pptx]" - text extractionpip install Pillow - thumbnail gridsnpm install -g pptxgenjs - creating from scratchsoffice) - PDF conversion (auto-configured for sandboxed environments via scripts/office/soffice.py)pdftoppm) - PDF to images