Skip to content

Release history

ppt-master releases

AI generates natively editable PPTX from any document — real PowerPoint shapes, not images — no design skills needed

All releases

7 shown

No immediate action
v2.9.0 Mixed

Direct edit + LaTeX + export fixes

v2.8.0 Mixed
⚠ Upgrade required
  • Update project layout to separate `templates/brands/`, `templates/layouts/`, and `templates/decks/` directories; existing monolithic templates must be migrated using the provided multi‑path fusion steps.
  • Review Git‑style conflict resolution guidance in `docs/templates-architecture.md` when merging multiple source segments of the same kind.
  • When customizing AI image rendering, ensure any `custom` escape hatch prose does not exceed one paragraph per dimension and respects the ≤1 custom candidate limit.
Notable features
  • Live Preview enters main pipeline with browser‑based per‑page annotation and AI rewrite.
  • Template architecture split into brand, layout, and deck kinds with multi‑path fusion and Git‑style conflict resolution.
  • Brand identity preset subsystem adds first‑class `templates/brands/` directory with reference brands.
Full changelog

Highlights

Live Preview enters the main pipeline

  • Browser-based per-page preview launches automatically during generation. Click any element to write annotations directly on the page, then say "apply my annotations" — the AI rewrites that region with your guidance baked in. (workflows/live-preview.md)
  • EN/ZH UI, slide navigation toolbar, error surfacing, faster rendering, no more stacked dev servers.
  • Built on @WodenJay's #85. Annotation deletions persist to disk on save-all (#127 fix).

Template architecture — three-kind refactor (brand / layout / deck)

Templates split into three independent kinds, each in its own physical directory with a dedicated schema:

| Kind | Writes | Workflow |
|---|---|---|
| brand (templates/brands/) | identity only — color / typography / logo / voice / icon style | workflows/create-brand.md |
| layout (templates/layouts/) | structure only — canvas / page rhythm / SVG roster | workflows/create-template.md (layout branch) |
| deck (templates/decks/) | full replica — identity + structure + middle | workflows/create-template.md (default) |

  • Multi-path fusion with segment-level integer replacement: brand + deck → brand overrides identity segment; layout + deck → layout overrides structure segment; brand + layout + deck → both override, deck supplies middle.
  • Git-style conflict resolution for same-kind multiples (brand × 2 etc.) — every cross-source segment difference is reported as a conflict; user picks per segment.
  • Authoritative architecture doc: docs/templates-architecture.md (中文).

Brand identity preset subsystem

  • New first-class kind for identity-only presets under templates/brands/. Includes anthropic and google as reference brands.
  • Brand assets reverse-engineered from logos / brand sites / branded PPTX / brand PDFs via workflows/create-brand.md.
  • Trigger rule mirrors layout templates: explicit directory path only; no bare-name resolution.

AI image: three-dimension lock + hero_page + custom escape hatch

  • rendering × palette × type three-dimension system with Strategist h.5 lock — downstream Image_Generator consumes a fixed contract instead of re-deciding per image.
  • Strategist h.5 presents ≥3 candidates (4-line format: title / visual / color / mood) when AI images are in scope, instead of single auto-pick. Includes a Reference images pointer to ai-image-comparison/ PNGs.
  • page_role: hero_page dual-track — local insert + full-canvas hero image coexist with four composition primitives (single-subject / portrait / typographic / atmospheric).
  • Type narrowed to 11 internal infographic skeletons; hero/background/portrait/typography folded into composition primitives.
  • NEW: custom escape hatch. When no preset carries the deck's actual temperament (niche cultural aesthetic, brand HEX outside preset ranges, ceremonial / wuxia / ink-wash, etc.), Strategist may set image_rendering: custom and/or image_palette: custom with a one-paragraph *_behavior prose. Image_Generator splices the prose directly into the prompt in place of the preset's fewshot snippet. Per-dimension limit (≤1 custom candidate per dimension; one candidate may carry both). End-to-end contract: image-renderings/_index.md §1.5, image-palettes/_index.md §2, Strategist h.5 hard-rule + Recording the lock, spec_lock fields, Image_Generator Step 2.
  • Color-as-truth rule: AI image always adapts to deck HEX, never the reverse.

Image layout patterns — Primary + Modifier composition

  • Image layout vocabulary split into Primary patterns (composition skeleton) + Modifier patterns (refinement). Compose freely: #48 side-by-side comparison + #21 rounded rectangle crop + #29 two-stop scrim.
  • Strategist gated to read patterns and produce verbatim #<id> references in §VIII Layout pattern column.
  • Layout pattern diversity self-check added — avoid AI-default left-image / right-image everywhere.

Visual review workflow

New rubric-based per-page visual self-check, run between Executor and post-processing on request (workflows/visual-review.md) — does not auto-trigger; user must invoke. Brand-token H4 hits never silently edit the SVG; per-round Hard hits addressed in same iteration.

Animation customization — slim scaffold + per-slide

  • animation_config.py scaffold and list-groups subcommands (skills/ppt-master/scripts/animation_config.py).
  • Per-slide explicit transition + animation rules — only groups inherit from deck-level defaults.
  • Default auto semantic animation mode added to svg_to_pptx.
  • New workflows/customize-animations.md runbook for object-level animation tuning.

Capability-showcase example decks

Two new full decks stress-testing core engine guarantees:

  • examples/ppt169_brutalist_ai_newspaper_2026/ — 10-page editorial annual report: wall-to-wall small type + irregular columns + halftone monochrome + single-spot red + real native shapes. Stresses text-position precision and cross-page consistency.
  • examples/ppt169_kubernetes_blueprint_2026/ — 10-page Kubernetes architecture walkthrough: isometric blueprint aesthetic, blueprint cyan/amber palette, fully hand-authored SVG geometry (no raster images), custom drawing-in animation. Stresses geometric shape generalization and chart-structure extensibility.

PPTX export hardening

  • Pattern fill PPTX safety net in svg_quality_checker.py — warns on <pattern> without data-pptx-pattern (silent fallback to ltUpDiag); errors on values outside OOXML ST_PresetPatternVal (schema-failed PPTX that won't open). shared-standards.md §7 documents the closed preset enum.
  • --merge-paragraphs flag for editable paragraph text frames (default off; flatten-tspan per-line split is still default).
  • --svg-snapshot makes the SVG-snapshot PPTX opt-in (no longer always written).
  • <g rotate(angle,cx,cy)> pivot fixed in grpSp export.
  • Ancestor translate preserved when entering matrix mode (image landing at (0,0) bug fixed).
  • <image> ctx transform no longer double-applied.
  • meet aspect-fit allowed when clip-path is a no-op rect.
  • Pie / donut / gauge arc-endpoint miscomputation corrected; bullet / bubble / sankey / stacked-area visual consistency improved.
  • verify-charts workflow expanded to cover all data-driven chart geometries.

Public roadmap

Roadmap published in EN/ZH (docs/roadmap.md / docs/zh/roadmap.md) covering recent capability evolution, current focus, and Non-goals (read-arbitrary-PPTX, native PowerPoint charts, uv-as-default, pure speed optimization, CLI/SaaS/desktop forms).

Other improvements

  • image_gen.py: JSON manifest mode required for in-pipeline AI image generation; adaptive concurrency; Markdown sidecar auto-rendered from manifest.
  • project_manager.py import-sources: propagates source image assets into project images/ with namespacing.
  • pptx_to_svg: <a:hslClr> hue decoded with correct unit scale (#102).
  • svg_to_pptx: text box width expansion reduced.
  • live-preview server backup decoupled from SVG snapshot.
  • README gallery: 6 new decks front-loaded with PPTX download links; Bilibili capability-showcase collection linked.

Full changelog: https://github.com/hugohe3/ppt-master/compare/v2.7.0...v2.8.0

Review required
v2.7.0 Breaking risk
Breaking upgrade

Structural chart filenames + animation sidecar

patches CVE-2023-4863
Open
v2.6.0 Breaking risk
Breaking changes
  • Removed `--legacy-render` flag from `pptx_template_import.py`.
Security fixes
  • SVG visual editor: javascript protocol stripping and sanitizer fixes to prevent XSS.
Notable features
  • Native PPTX ↔ SVG round‑trip with new `pptx_to_svg` converter and enhanced `svg_to_pptx`.
  • Overhauled `/create-template` supporting native‑only import, replication modes (`standard`, `fidelity`) and updated `layouts_index.json`.
  • Browser‑based SVG visual editor with element annotation, multi‑select UI and security hardening.
Full changelog

Highlights

Native PPTX ↔ SVG round-trip

  • pptx_to_svg — semantic OOXML→SVG converter (reverse of svg_to_pptx). Reads .pptx directly via zipfile + xml.etree, no PowerPoint COM, no Keynote→PDF rasterization. Each <p:sp prst=\"rect\"> becomes <rect>, each <p:pic> becomes <image>, each <p:txBody> becomes real <text>+<tspan> with original font preserved. 14 modules under scripts/pptx_to_svg/ (~2.6k LOC).
  • svg_to_pptx improvements: consume svg_output/ directly for native pptx, auto-split source per product, elliptical-corner rect via custGeom, croppable images preserved, tspan flattening + whitespace fixes, honour preserveAspectRatio=\"meet\".
  • finalize_svg consolidation — crop / fix-aspect / embed-images merged into a single align-images pass.

/create-template overhaul

  • Native-only PPTX import: drops legacy PowerPoint-COM / Keynote-PDF renderer, drops inline_* asset normalization, removes reference_svg_selection.json. pptx_template_import.py shrinks ~460 → ~110 lines, runs anywhere Python runs.
  • Replication mode: standard (default 5-page roster) | fidelity (preserve every distinct layout cluster from source PPTX). Variant naming follows letter-suffix convention (02a_chapter_full.svg, 03a_content_two_col.svg); variants reuse parent placeholder set.
  • layouts_index.json gains a pages field listing the SVG roster — Strategist template selection can see fidelity templates' coverage.

SVG visual editor (browser)

  • Element-level annotation editor with multi-select, Ctrl+click, rubber-band selection, keyboard shortcuts, element property display, in-place project edit. Security hardening: javascript: protocol stripping, sanitizer fixes. English UI.
  • Surfaced as a standalone visual-edit workflow — easier trigger recognition.

Web image search (zero-config)

  • License-tier filtered web image acquisition path, added as a first-class alternative to AI image generation.
  • Quality-first sourcing with attribution checks; query relevance is the primary scoring dimension.

Audio narration backends

  • ElevenLabs, MiniMax Qwen, CosyVoice — multi-backend with voice cloning surfaced as first-class.
  • Default MiniMax endpoint switched to domestic api.minimaxi.com.

Other

  • Image generation: ModelScope backend (#83); negative prompts removed across docs/CLI/backends.
  • Claude Code plugin manifest (Option C, npx-validated).
  • docs/rules/ — style guides for references and Python code.
  • technical-design.md rewritten as why-only (drops how-detail duplication).

Install / upgrade

See README for the four supported install paths (Claude Code / Cursor / VS Code + Copilot / Codebuddy). No breaking changes for existing projects; the legacy --legacy-render flag in pptx_template_import.py has been removed (was opt-in only).

Full Changelog: https://github.com/hugohe3/ppt-master/compare/v2.5.0...v2.6.0

v2.5.0 Breaking risk
Breaking changes
  • Removed `chart-calibration` command from CLAUDE.md and AGENTS.md
Notable features
  • `generate-audio` workflow for localized voice narration
  • Recorded narration export in `svg_to_pptx` enabling narrated video output
  • Per-element animations enabled by default with slower pacing
Full changelog

✨ Highlights

Audio Narration & Video Export

  • generate-audio workflow: turn speaker notes into localized voice narration, with locale-aware voice picking
  • Recorded narration export: svg_to_pptx embeds audio as PPT recorded narration, enabling direct export to narrated video
  • TTS-friendly speaker notes: Executor rewrites the notes spec to prevent English label leakage in localized output

Animations

  • Per-element animations on by default: svg_to_pptx splits animations by top-level <g id> out of the box
  • Slower default pacing: more composed animation timing suited for live presentation

Skill Packaging

  • skills/ppt-master/ made self-contained, ready for standalone installation into other AI IDE workspaces

Docs

  • New audio narration & video export guide
  • Removed the redundant chart-calibration command block from CLAUDE.md and AGENTS.md

Full commit history: `git log v2.4.0..v2.5.0` (9 commits)

🤖 Generated with Claude Code

v2.4.0 Breaking risk
Breaking changes
  • Output files now land in exports/ with timestamped archiving instead of root directory; prior artifacts moved to backup/
  • HTML named entities forbidden in SVG; XML escapes (&, <, >, ", ') now required
  • Path selection changed from four-option menu to deterministic flow for image generation
Notable features
  • Per-element entrance animations with auto-conversion to PPT element animations and click/cascade timing
  • 70+ chart template library with strategic models, enterprise layouts, and architecture diagrams
  • Excel workbook to Markdown converter integrated into main pipeline
Full changelog

✨ Highlights

Animations & Transitions

  • Per-element entrance animations: top-level SVG <g id> groups auto-convert to PPT element animations with click / auto cascade
  • Page transitions: native with-previous / after-previous timing, Office 2010 extension for compatibility
  • --animation-trigger auto produces a click-free autoplay sequence; decorative chrome groups are auto-skipped

Chart System

  • 70+ chart template library: strategic models, enterprise table layouts, architecture diagram family (enforced title + description slots)
  • Chart coordinate calibration: standalone verify-charts workflow + svg_position_calculator.py covering bar / line / pie / radar
  • Unified Tailwind color palette across templates; charts_index.json is the selection contract
  • Harvey-ball and similar shapes inlined to survive PPTX export

Icon Libraries

  • Added phosphor-duotone (soft-depth style) and simple-icons brand-logo (with brand-color lock)
  • Per-placeholder stroke-width override; placeholders are explicitly forbidden from carrying their own stroke
  • Stroke-style libraries now lock a deck-wide stroke width

Image Generation

  • Recommended backend switched to gpt-image-2 (legacy compatibility preserved)
  • Path selection moved from a four-option menu to a deterministic flow

Source Document Conversion

  • New Excel workbook to Markdown converter
  • ppt_to_md.py wired into the main pipeline

Output Layout

  • All generated files now land in exports/ with timestamped archiving
  • _svg.pptx kept as the SVG snapshot backup; prior artifacts moved under backup/<timestamp>/

SVG Quality

  • Well-formed XML check runs before structural validation
  • HTML named entities forbidden; XML escapes (& < >) required
  • Nested inline <tspan> formatting preserved through flatten
  • Key info must use inline <tspan> highlighting to avoid wall-of-text output
  • Fixed rotate(angle cx cy) pivot when converting text

Prompts & Docs

  • Strategist / Executor / shared-standards / SKILL prose tightening pass (keep the bones, drop the fat)
  • README sponsorship section and positioning framing restructured; PackyCode sponsorship added
  • FAQ reframes SVG charts as a deliberate design choice
  • Chart calibration promoted to an independent pipeline gate

Web Viewer

  • Unified editorial dark theme across index and viewer
  • Restored native link behavior and fullscreen preview

Full commit history: git log v2.3.0..v2.4.0 (242 commits)

🤖 Generated with Claude Code

v2.3.0 New feature
Notable features
  • Native DrawingML export with Office compatibility
  • 72 new layout and visualization templates
  • Multi-format source conversion via Pandoc

Beta — feedback welcome: [email protected]