presentationslisted
Install: claude install-skill brightwave-inc/tidebreak
# Presentations
Two paths produce a PPTX, and picking the wrong one destroys work. Choose
first, then follow that path's section, and finish with the validation
section — it applies to both.
## Which path
- **An existing `.pptx` is in play** — a template, a deck the user uploaded,
a prior version of this deliverable, a downloaded starting point — **edit
it in place** with the XML pipeline below. Always. The edit path is
Python + the bundled helpers; it does not need Node.
- **Nothing exists yet and there is no template** — generate a **new** deck.
Prefer **pptxgenjs** when Node and npm are actually usable; fall back to
**python-pptx** when they are not. Detect before you write the generator
(see below) — do not assume either runtime from the skill name alone.
**Never rebuild an existing deck to apply a change.** Regenerating a deck
re-authors every slide: the master, theme, fonts, colors, logos, footers, and
every slide you did not think to re-emit are gone, silently, and the user sees
a deck that no longer looks like theirs. A one-line text fix is a one-line XML
edit, not a rewrite. Equally, never recreate from scratch what a template
already provides — if the user handed you a template, its design *is* the
requirement.
## New decks: detect the runtime first
Before writing a generator, decide Node vs Python carefully. Do not spend turns
on `npm install` or a pptxgenjs script when `node`/`npm` are truly missing —
that is how runs burn steps and then redo the