github hugohe3/ppt-master v2.8.0

5 hours ago

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

Don't miss a new ppt-master release

NewReleases is sending notifications on new releases.