The first deck I built this way took about ten hours, and almost none of that went on the argument. It went on redoing animations and layout every time a section moved. The deck is a text file now — reorder it, rebuild, and the animations survive. The next deck of the same kind took an hour.

What it does

Re-brand a finished deck from a client's template

Point deckwright conform Brand.pptx --adopt brand at a client’s PowerPoint template. It reads the fonts, colours and canvas out of it, then builds its own 98-slide catalogue of every layout, chart and component against that template, one slide at a time, printing ok or FAIL beside each — so you know before you start which parts of the template will carry your deck. Then change one line in your own deck, theme: brand, and every slide re-renders. You do not touch the slides.

Reorder and cut slides without losing the animations

Move a section, cut two slides, rename a title, rebuild — the timings and transitions come through unchanged. A test that did exactly that, renaming a title and reordering a slide, left every count identical: 7 timing nodes, 12 transitions, 13 notes, 2 charts, 1 table. Re-applying that by hand in PowerPoint is where most of that first ten-hour deck went.

Read the fix off the build that failed

When text will not fit, the build stops before it writes the file and gives you the numbers: “30 bullets in the longest column need 10.08in but only 5.30in is available — split the slide, add a column, or shorten the list”. docs/errors.md lists every message the compiler can emit next to what to do about it.

Catch the deck PowerPoint will offer to repair

deckwright qa reads the saved .pptx for duplicate shape ids, dangling relationships, and animations aimed at a shape that was never drawn. PowerPoint validates the package before it draws anything, so each of those means a repair prompt and content quietly dropped if the user accepts. LibreOffice opens all of them fine, so a clean render proves nothing.

Recover the spec from a deck someone hand-edited

Someone opened the deck in PowerPoint and moved things. deckwright diff compares that file against its build record and lists, per shape, what moved, was retyped, was added or is gone. deckwright extract drafts a .deck.yaml out of a deck deckwright never built, with a # not converted: comment on each shape it could not turn into words.

Bring the claim and the numbers, not a chart type

You bring the claim and the data; you do not pick the chart. The assistant building the deck reads three reference docs shipped for it and decides the form — which of the 29 chart kinds, or a table, or one big number, or no graphic at all. The chart guidance is drawn from published research on how accurately people read values off each kind. A second doc handles slides with no data on them, and a third checks the last few slides, so a deck does not turn into eight bar charts in a row.

Capabilities deck

29 slidesDownload the PowerPoint

Iterating on a real deck

The point is how little you touch to change what a slide argues.

What you say

Drop the full-year framing. Q3 is where the interesting thing happened — go into it month by month, show it against last year, and rebuild the deck around that story.

What changes in the spec
title: FY26 Business Review
+ title: What Happened in Q3
sections:
- The Year
- By Region
- Outlook
+ - The Quarter
+ - Where It Came From
+ - What We Do Next
$ deckwright build q3.deck.yaml
built 9 slide(s) -> after.pptx
The original deck: seven slides, three section dividers reading The Year, By Region and Outlook, one quarterly column chart
before — 7 slides
The rebuilt deck: nine slides, three different section dividers, a monthly chart, a year-over-year comparison, a doughnut and a regional bar chart
after — 9 slides
beforeafter
slides79
sections in the nav33 new ones
charts24
granularityquarterlymonthly, vs last year

Rebuild time: 0.24 seconds. Nobody chose a chart type, picked a colour, moved a box, or renumbered a section divider. Those decisions were made once, when the theme was set.

A real build and render, 2026-09-07 — both filmstrips are the actual slides deckwright produced, not mock-ups. Re-scoping the analysis is a change to the spec, so the deck follows it: two slides that did not exist, a chart type that was not there, and every section divider renamed and renumbered.