Writer’s Brief (Outline)
This section is a handoff for a writer — what the post is about and what to cover.
The Hook
I needed 5 new slides for a course I’m teaching in 2 hours and ended up learning that PowerPoint files are just zip archives full of XML — and that merging two presentations is way harder than it should be.
Main Points to Cover
- Creating slides from HTML that match an existing deck’s exact style — extracting hex colors from XML, writing HTML templates, converting with html2pptx
- The failed merge attempts — python-pptx loses all formatting, OOXML direct merge produces corrupt files — before landing on “append then rearrange”
- The meta moment: making slides about building things with Claude Code… using Claude Code to build the slides
The Angle
The messy reality of “I’ll just quickly add some slides” turning into a 30-minute deep dive into PowerPoint’s internal XML structure. The gap between “this should be simple” and what actually works.
Target Reader
Anyone using AI tools to build things who’s curious about what happens when you go past the demo. People who’ve tried to automate “simple” office tasks and discovered the rabbit hole.
Tone Notes
Casual, self-deprecating, amused by the absurdity. Lean into the comedy of building slides about building things. Don’t oversell the technique — it’s messy and that’s fine.
Raw Material / Moments to Write From
- Teaching in two hours. Missing an “About Me” slide and a slide that tells people what we’re doing today.
- .pptx is a zip archive. XML all the way down. Angle brackets and namespaces.
- First attempt: python-pptx. Backgrounds vanished. Rounded rectangles became regular rectangles. “Looked like someone photocopied the slides while drunk.”
- Second attempt: manual OOXML edit. Corrupt file. Validator said no.
- Third attempt: append + force-pack (skip validation, sorry) + rearrange script. This worked.
- Three attempts to insert five slides.
- Impact font screaming “TODAY’S GOAL” at people who signed up to learn Claude Code from a comedian.
- Slide 13 says “Making these slides - METAAAAAA” and now it’s even more meta because just made more slides about making slides.