包含 extensions、skills、prompts、settings、auth、models、mcp 等配置。 排除 node_modules、npm 缓存、sessions 等运行时数据。
11 KiB
Roadmap
PPT Master is a solo-maintained open source project, driven by priority rather than fixed timelines. This roadmap is here to align expectations: what's already shipped, what's under ongoing maintenance and evolution, and what's intentionally out of scope. Priorities shift with user feedback and real usage signals — no committed delivery windows.
Where we are: AI generates SVG from scratch → converts to DrawingML for natively editable PPTX. The core axis is pixel-fidelity across four renderers (PowerPoint / Keynote / LibreOffice / WPS) + real native shapes. Every direction below serves that axis.
Recent capability evolution
The past two months' structural capability growth. Single flags / incremental polish go to the commit log.
2026-03 — Native PPTX route takes shape
- Direct export to natively editable PPTX —
svg_to_pptxadds glow / rotate / text-decoration / stroke-linejoin; the full SVG → DrawingML chain becomes usable - Chart / layout template JSON indexes ship, AI selection path connected
2026-04 — Pipeline at scale
- Source-less generation:
topic-researchworkflow supports "topic only, no source files" - PPTX export step-change: SVG clipPath → DrawingML picture geometry, marker → native arrows, output consolidated to
exports/ - Chart library expands to 70 templates + three icon libraries (simple-icons / phosphor-duotone / brand-logo)
spec_lock.mdmachine-readable contract: Strategist locks the spec, Executor re-reads it before every page — cross-page consistency gets a real guarantee- Per-element animation on by default + recorded narration / video export (
workflows/generate-audio.md)
2026-05 — Visual editing + AI image systematization
- Live Preview enters the main pipeline (
workflows/live-preview.md) — browser preview, click elements to write annotations, say "apply my annotations" and the AI rewrites that region (built on @WodenJay's PR #85) - Replicate any PPTX as a template (
workflows/create-template.md) — PPTX → SVG reverse + OOXML theme / master / layout / asset extraction - AI image three-dimension system rendering × palette × type + Strategist h.5 lock, downstream consumes a fixed contract
- AI image
hero_pagedual-track — local insert + full-canvas hero image coexist - Brand identity preset subsystem (
workflows/create-brand.md) — extract and reuse brand palette / typography / logo / voice - Visual self-review workflow (
workflows/visual-review.md) — rubric-based per-page check of AI-generated SVGs - AI image: Type concept boundary clarification — Type is now narrowed to "the internal geometric skeleton of a local infographic block" (11 real skeletons); the four pseudo-types (hero / background / portrait / typography) fold back into
page_role: hero_pageplus four composition primitives (single-subject / portrait / typographic / atmospheric); hero_page text layering rule (visual keywords embedded, editable text via SVG overlay) - Brutalist AI newspaper example deck shipped (
examples/ppt169_brutalist_ai_newspaper_2026/) — first of the three P0 capability-backing demos: wall-to-wall small type + irregular columns + halftone monochrome + single-spot red + real native shapes; 10-page editorial annual report stressing text-position precision and cross-page consistency - Kubernetes Blueprint example deck shipped (
examples/ppt169_kubernetes_blueprint_2026/) — second of the three P0 capability-backing demos: isometric technical-drawing aesthetic + blueprint cyan/amber palette + hand-authored SVG geometry (no raster images) + custom drawing-in animation; 10-page Kubernetes architecture walkthrough stressing geometric shape generalization and chart-structure extensibility - AI image
customescape hatch —rendering/palette/ hero composition each acceptcustom+ a one-paragraph*_behaviorprose, replacing the false "default to vector-illustration / cool-corporate" fallback; end-to-end contract spansimage-renderings/_index.md§1.5,image-palettes/_index.md§2, Strategist h.5 hard-rule (≤1 custom per dimension; one candidate may carry both), spec_lock fields, and Image_Generator Step 2 consumption branch - Template architecture: three-kind consolidation (
docs/templates-architecture.md) — brand / layout / deck split into three independent dirs with per-kind schemas + segment-level fusion + git-style conflict resolution; SKILL.md Step 3 dispatches perkind, trigger rule remains "explicit path only" - Pattern fill PPTX safety net —
svg_quality_checker.pynow warns on<pattern>withoutdata-pptx-pattern(silent fallback toltUpDiag) and errors on values outside OOXMLST_PresetPatternVal(schema-failed PPTX that won't open);shared-standards.md §7documents the closed preset enum and the required<rect fill="<bg>"/>child convention - LaTeX math formula rendering shipped (
scripts/latex_render.py) — Strategist locks one of three policies (mixed/render-all/text-only) inside the Typography confirmation and writes an explicitimages/formula_manifest.json; the renderer walks a codecogs → quicklatex → mathpad → wikimedia fallback chain and emits transparent PNGs that land in §VIII asAcquire Via: formula/Status: Renderedrows; formula-heavy decks (academic / engineering / educational) finally have a native rendering route. Formula selection is a Strategist decision — the renderer never scans source files for$...$markers - Live preview direct editing — L1 / L2 / L3 (
workflows/live-preview.md) — the browser editor gains deterministic in-place edits with no AI round-trip: text content (L1), presentation attributes like fill / stroke / font-size (L2), and on-canvas geometry (L3) — drag a selected element to move it, arrow-key nudge (Shift= 10px), multi-select, plus a right-click overlap picker for stacked shapes. Edits stage withCtrl+Zundo + coalescing and write tosvg_output/on Apply changes; moves persist through finalize / export (moved text frames, promoted multi-line tspans, repositioned icons all reproduce in the PPTX). Re-export stays chat-driven; on-canvas resize handles are not yet implemented (resize via the geometry inputs)
Ongoing maintenance directions
Long-running improvements with no committed timeline. Only real directions are listed; specific fixes / single flags go to the commit log.
- Prompt slimming — compress per-role prompt token footprint and improve cache hit rate without sacrificing quality, for indirect cost / speed gains. Complements "Pure speed optimization" below: indirect optimization yes, quality-sacrificing speedups no.
Non-goals
The directions below come up repeatedly and have been evaluated as not on the path. Listing them is not a value judgment on the underlying need — they simply don't fit this project's main route. If you specifically need these capabilities, consider other tools or forking.
Read arbitrary PPTX templates → fill text only
PPT Master's main route is "AI generates SVG from scratch → DrawingML", with the whole pipeline built around full control of every shape / text / layout. "Parse existing PPTX placeholders + only refill text" is a different product shape requiring handling of arbitrary master / theme / placeholder systems — orthogonal to where this architecture invests.
The basic need is actually simple: if you just need "replace Excel data into fixed positions in a PPT template", have the AI write a few lines of python-pptx. You don't need this pipeline.
Switch to native PowerPoint charts (Excel-native chart)
Pixel-fidelity across the four renderers (PowerPoint / Keynote / LibreOffice / WPS) is the project's spine. Switching to native PowerPoint charts breaks that — the same PPTX renders different chart layouts across renderers. Charts as SVG is by design, not a capability gap.
If you need data-driven native Excel charts, pick a different tool or manually replace charts in PowerPoint post-export — this project won't build that path in.
uv as default / required dependency
Issue: #111
pip + requirements.txt is the only official install path because it works in every Python environment with no extra learning cost. uv is a fine tool, but making it default raises the bar for new users. If you personally prefer uv, use it in your fork — it won't affect the main line.
Pure speed optimization
Issue: #97
In the cost / speed / quality triangle this project picks quality. ~20 minutes for a high-quality PPTX is the current reasonable point.
Will do: indirect improvements via prompt slimming / cache hit rate. Won't do: trading quality for "throw a few pages together" speed.
If speed-sensitive and quality-tolerant, Gamma / similar AI tools are a better fit.
CLI / SaaS / desktop app form factors
The product form is firmly chat-driven AI IDE skill (Claude Code / Cursor / VS Code + Copilot / Codebuddy).
Won't do: standalone CLI (ppm-style), SaaS web service, Electron shell. Any "make it run independently of chat" proposal will be declined. Chat is the interaction core, not a wrapper.
Feedback channels
- Issues: github.com/hugohe3/ppt-master/issues — bugs / proposals
- Discussions: github.com/hugohe3/ppt-master/discussions — usage / experience sharing
- Email: heyug3@gmail.com
Before proposing a new direction, scan the Non-goals above. If your request falls there, it's unlikely to land — but we're happy to discuss other paths to your underlying need.