Skip to content

Releases: hugohe3/ppt-master

v2.10.0

14 Jun 14:15

Choose a tag to compare

Highlights

Mode + Visual-Style — two independent catalogs

The old "three executor styles" model is retired. Deck structure and deck look are now two orthogonal axes the Strategist locks separately, so any structure can pair with any style:

  • Modes (how the argument is structured) — pyramid / narrative / instructional / showcase / briefing, plus a user-authority escape hatch for custom structures. Keynote / 发布会 / TED-style requests route to showcase.
  • Visual styles (how the deck looks) — the catalog grew to 16 named styles across regrouped families (Swiss-minimal, editorial, soft-rounded, dark-tech, brutalist, blueprint, memphis, zine, photo-editorial, data-journalism, ink-wash, glassmorphism, …), each zero-HEX and reference-strength so palette stays driven by the deck's real colors.
  • The Strategist locks mode and visual_style independently into spec_lock.md; the executor and resume-execute paths read both.

Template-fill — direct PPTX route (issue #53)

A new standalone route reuses an existing .pptx design and fills new content back into it, editing PPTX directly (it never enters the SVG generation pipeline) so the output stays natively editable:

  • check-plan guardrails flag non-text source pages and over-reuse of the same source slide before filling.
  • Slide library now exposes chart data, and private parts are isolated on slide reuse with improved capacity checks.
  • See workflows/template-fill-pptx.md.

Strategist & content quality

  • One core message per outline page — each page now carries a single primary point, pushing decks away from the even-weight "web look".
  • Per-block expression register — each content block follows its natural expression mode instead of defaulting to bullets; prose rendering hardened against bullet gravity.
  • Hero-page title layer choice at h.5 (default SVG title vs. embedded-in-image title).
  • Opt-in refine-spec checkpoint — ask to review/revise the full spec before any image or SVG work; off by default. (workflows/refine-spec.md)

Converter

  • DOCX equations → LaTeX — Word-native and MathType "Office Math" (OMML) formulas are now rewritten to inline LaTeX instead of being silently dropped. Pure-Python, no new dependencies. (Classic MathType OLE objects carry no OMML and are kept as their preview image.)
  • PPT source — tolerate notes slides whose placeholders have no notesMaster.

Export & fidelity

  • Paragraphs merge by default — mergeable dy-stacked blocks collapse into one editable text frame; pass --no-merge for strict per-line fidelity.
  • Accurate document properties stamped on export, with an optional metadata.json override.
  • PPTX ⇄ SVG text fixes — font-size resolved from pPr/defRPr, placeholder list text styles inherited, digits/% treated as tabular width, CJK soft-break join spaces dropped, flat inline tspan runs merged.
  • Wider font variety and recognition to reduce default-font sameness across decks.

Image generation

  • OpenAI-compatible knobs replace per-provider backends, simplifying configuration.
  • Dropped post-generation in-image text verification (redundant with live preview).

Live preview & editor

  • Direct on-canvas editing (L1 text / L2 style / L3 geometry) documented across the guides; svg_editor now accepts added move coordinates.

Icons

  • Outline icons preserve their stroke colors.

Community

  • New corporate sponsor: RunAPI.
  • README reframed around "it's a tool, not a wishing well"; Gemini 3.5 Flash noted as a strong value pick.

Loading just the skill? The attached ppt-master-skill-v2.10.0.zip (~48 MB) contains only skills/ppt-master/ for Codex / Cursor / non-Claude-Code hosts. The full repository remains the primary working form.

v2.9.0

31 May 13:42

Choose a tag to compare

Highlights

Live Preview — direct on-canvas editing (no AI round-trip)

The live preview editor gains a full direct-edit surface, so layout nudges no longer need an AI round-trip:

  • Object inspector — select any element to edit geometry, safe text content, and raw SVG attributes (fill / stroke / opacity / font-size …). Group and multi-select batch editing supported.
  • Drag to move — press-drag a selected element to reposition it; the whole selection moves together under multi-select, mapped through each element's own transform so moves track the cursor at any zoom.
  • Arrow-key nudge↑ ↓ ← → moves the selection 1px, Shift + arrow 10px.
  • Overlap picker — right-click lists every selectable element under the pointer, so stacked shapes can be reached without blind cycling.
  • Undo + coalescingCtrl+Z / Undo drops the last staged edit; consecutive edits to the same field collapse into one undo step. Staged edits preview live and write to disk only on Apply changes, with an unsaved-work guard before you lose them.

Edits persist through the export pipeline — moved text frames, promoted multi-line tspans, and repositioned icons all reproduce in the PPTX. (workflows/live-preview.md)

LaTeX formula rendering

  • New latex_render.py renders LaTeX math to images from a Strategist-locked manifest, with a 4-provider fallback chain (CodeCogs / QuickLaTeX / mathpad / Wikimedia). (scripts/latex_render.py)
  • Strategist writes the formula manifest after the typography confirmation; --dry-run validates without rendering.

Converter & export fixes

  • Text gradient fills are now preserved on the PPTX → SVG path.
  • Pure-translate transforms on text are absorbed into the text frame position instead of being silently dropped.
  • Notes slides — dropped a dangling notesMaster relationship and added a package-rels guard, fixing PowerPoint repair prompts on decks with speaker notes.
  • PDF source — tighter vector-figure crops.
  • EPUB source — gracefully handles broken manifests.

New example decks

  • Attention Is All You Need — narrated deck, now the primary download on the README.
  • LoRA (Hu et al., 2021).

AI image & Strategist refinements

  • text_policy reworked into a two-layer ownership model with per-row judgment (page-level chrome always SVG-owned); subject-domain prompt-depth guidance added.
  • AI-image prompt guidance — dropped stale "CJK fails / English-only" capability claims; SVG-overlay reservation scoped to hero_page only; architecture / schematic examples added to §5.3.

Config & infrastructure

  • .env lookup order now includes the skill directory (Codex / Cursor loads).
  • Default projects/ directory anchored to the current working directory.
  • Image generation avoids the OpenAI SDK transport (fixes some proxy setups).
  • Resolved a marketplace manifest conflict from a duplicate skills spec.

Docs

  • README — new Getting Started guide, slimmed hero, stance note on the Python + agents shape.
  • Roadmap opens an "Under consideration" section (LaTeX math was the first entry — now shipped).

Skill-only packageppt-master-skill-v2.9.0.zip below loads just skills/ppt-master/ as an AI agent skill (Codex / Cursor / non-Claude-Code). The full repository — including the examples/ decks the AI reads to learn conventions — remains the primary form; clone or download the source for that.

v2.8.0

22 May 13:55

Choose a tag to compare

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: v2.7.0...v2.8.0

v2.7.0

13 May 09:31

Choose a tag to compare

Highlights

Chart template library — structure-named

  • Chart filenames now describe visual structure, not domain models. swot.svgquadrant_text_bullets.svg, bcg_matrix.svgquadrant_scatter_axes.svg, porters_five_forces.svghub_inward_arrows.svg, etc. Model names (SWOT / BCG / PEST / OKR / Porter's) live in summary keywords so Strategist匹配 still works.
  • charts_index.json slimmed to meta + charts.{summary} only — drops categories / quickLookup / keywords / label. Chinese↔English matching relies on summary自带等价词.
  • New templates: segmented_wheel, arc_anchored_list, plus a card / connector / depth-pattern expansion batch. snake_flow and isometric_stairs rebalanced for visual weight.
  • Strategist §VII chart-match framing widened — encourages reuse via structural fit rather than exact model name.

Template system — explicit-path-only triggers

  • /create-template and template selection trigger only on user-supplied directory path. No slug matching, no name resolution. layouts_index.json is discovery-only metadata.
  • create-template workflow restructured into intake → proposal → confirmation gate three-stage flow.
  • New mirror replication mode for verbatim PPTX library import (在 standard / fidelity 之外).
  • design_spec.md slimmed to a personality-only skeleton; 8-variant fidelity cap dropped.
  • Strategist Style Objective confirmation split into mode + visual style two questions.
  • Removed legacy templates: exhibit, 科技蓝商务, mckinsey, smart_red.

PPTX ↔ SVG round-trip — fidelity hardening

  • pptx_to_svg: pattern fills, EMF/WMF/Office vector assets, theme-style backgrounds for masters/layouts standalone, layered + flat view emission, all-masters/all-layouts exposure.
  • svg_to_pptx: affine transforms preserved for native pictures, nested <svg viewBox> sprite crops → <p:pic>, round2SameRect round-trip, SVG text transparency + stroke preservation, Japanese / Korean fonts added to EA fonts list (#93).
  • pdf_to_md bold formatting preserved in merge_adjacent_formatting (#91).
  • DOCX office vector image metadata preserved; EMF assets supported in PPT markdown export.

Customizable animation + recorded narration

  • New animation sidecar workflow — semantic custom animation planning, page-level entrance/emphasis/exit.
  • Recorded narration export hardened; narration + animation guidance synced across docs.

Split-mode resume-execute

  • New standalone resume-execute workflow — open a fresh chat, say "继续生成 projects/",跳过 Phase A 直接进入 SVG 生成 + 导出.
  • Topic-research workflow refreshed.

Other

  • pdf_to_md adds --images mode (all / filtered / none).
  • Dropped web_to_md.cjs + Node.js dependency — pure Python now.
  • Image .env loader strips inline # comments; .env examples move inline comments to their own line.
  • SVG editor serves /assets/ so PPTX-imported media renders.
  • OpenAI gpt-image-2 request options validated.
  • Executor batch-reads layout / chart templates before generation.
  • spec_lock gains per-page page_layouts and page_charts; chart layout compatibility clarified.
  • Marketplace plugin tracks commit SHA instead of pinned version.

Install / upgrade

See README for the four supported install paths (Claude Code / Cursor / VS Code + Copilot / Codebuddy). No breaking changes for existing projects.

Chart filename migration note: if you reference chart templates by filename in custom prompts or external scripts, several files were renamed in this release. Check skills/ppt-master/templates/charts/ for the new structure-based names.

Full Changelog: v2.6.0...v2.7.0

v2.6.0

05 May 11:47

Choose a tag to compare

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: v2.5.0...v2.6.0

v2.5.0

30 Apr 12:12

Choose a tag to compare

✨ 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

29 Apr 15:07

Choose a tag to compare

✨ 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

12 Apr 13:57

Choose a tag to compare

Highlights

Native DrawingML export is now the default. Every element — text, shapes, charts, icons — exports as a real PowerPoint object. Click anything and edit it directly. No more "Convert to Shape."

Two files per export: a native .pptx (fully editable) and an _svg.pptx (visual reference backup), both saved to exports/ with timestamps.

What's New

Converter & Export

  • Native PPTX export with DrawingML shapes — text boxes, groups, gradients, shadows, glow effects all convert natively
  • Office compatibility mode (default on) — PNG fallback via asvg:svgBlip for Office 2016+ / LTSC 2021
  • SVG clipPath on images → native DrawingML picture geometry
  • SVG marker-start / marker-end → native DrawingML arrow heads
  • SVG rotate() transform support on all element types
  • Stroke linejoin, text-decoration, donut chart, and shadow/glow improvements

Templates & Visualization

  • 20 layout templates across 5 categories (brand, general, scenario, government, special)
  • 52 visualization templates — charts, infographics, process diagrams, relationship diagrams, strategic frameworks
  • 6,700+ vector icons (Tabler Filled, Tabler Outline, Chunk)
  • PPTX template import for /create-template workflow — extract backgrounds, logos, theme colors, fonts from existing .pptx files

Source Conversion

  • PowerPoint → Markdown conversion (ppt_to_md.py)
  • DOCX / EPUB / HTML / LaTeX / RST conversion via Pandoc (doc_to_md.py)
  • PDF image noise filtering for cleaner extraction
  • macOS Keynote fallback for PPTX template import

Image Generation

  • 12 backends: Gemini, OpenAI, Qwen, Zhipu, Volcengine, Stability, FLUX, Ideogram, SiliconFlow, Fal, Replicate, MiniMax
  • Explicit provider configuration with per-backend API keys

Workflow

  • Topic research workflow for source-less PPT generation
  • Mandatory design spec and chart template read gates
  • Sequential page generation enforced for cross-page consistency
  • exports/ output structure with timestamps

Community

  • Comprehensive FAQ based on real user issues
  • Issue templates (bug report + feature request)
  • CONTRIBUTING.md, Code of Conduct, Security Policy

Requirements

  • Python 3.10+
  • Office 2016+ (Office 365 recommended)
  • Optional: Node.js 18+ (WeChat), Pandoc (DOCX/EPUB)

Full docs: SKILL.md · FAQ · Live Demo