Skip to content
CAI
Software that uses CAICheck a score

hugohe3/ppt-master

50.0

Weak · 26 September 2026

162.2k

lines of production code

Python

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a comprehensive Python-based toolkit for automating the creation and editing of PowerPoint presentations. It enables users to convert various source documents into Markdown, design slide layouts using SVG, and export them to native PPTX files with high-fidelity support for charts, formulas, and media. The platform also provides modular backends for AI-driven image and audio generation, alongside interactive web interfaces for template selection, design review, and SVG editing.

Features

Batch conversion and metadata profiles for source-to-markdown scripts

The source-to-markdown conversion tools now support processing multiple files and entire directories in a single run, automatically generating unique output paths when needed. Additionally, every conversion now produces a sidecar \.conversion\_profile.json\ file containing metadata about the source, output, and extracted assets, enabling better tracking and debugging of the conversion process.

_skills/ppt-master/scripts/source\_to\md · high confidence

Introduce DrawingML conversion subpackage for SVG-to-PPTX export

The SVG-to-PPTX export pipeline now uses a dedicated \drawingml\ subpackage to handle the conversion of SVG elements into native PowerPoint DrawingML. This change introduces a core converter dispatcher, specialized modules for hyperlink handling and style generation (fills, strokes, gradients), and a bundled font-advance table to ensure accurate text measurement and layout. It also includes utility functions for coordinate transformation, color parsing, and font fallback resolution, providing a structured foundation for the SVG-to-PPTX export process.

_skills/ppt-master/scripts/svg\_to\pptx/drawingml · high confidence

Introduce PPT Master SVG Editor with live preview and multi-language support

Adds a new client-side SVG editor and live preview interface for PPT Master, featuring a three-panel layout for slide navigation, visual editing, and annotation management. The editor supports direct element modification, AI-driven annotation workflows, and multi-select capabilities, with all changes staged until explicitly applied. It includes a built-in language switcher supporting English, Japanese, and Traditional Chinese, and enforces strict security via Content Security Policy and SVG element allowlisting in the preview sanitizer.

_skills/ppt-master/scripts/svg\editor/static · high confidence

Introduce SVG annotation editor for PPT Master

Adds a new Python-based SVG editor subpackage under \skills/ppt-master/scripts/svg\_editor\ that enables element-level annotation and editing of SVG files. The package includes an \annotations.py\ module for reading and writing custom XML attributes (such as \data-edit-target\) to SVG elements, and a \server.py\ Flask backend that serves a web UI for managing these annotations. This allows users to perform targeted edits on SVG assets within the PPT Master workflow.

_skills/ppt-master/scripts/svg\editor · high confidence

Introduce staged design confirmation interface with live style previews

The Confirm UI now presents a two-stage workflow for finalizing presentation design. Stage 1 allows users to confirm the communication contract and choose between free design or specific template workspaces. Stage 2 enables the selection of coherent design directions, including visual style, color schemes, typography, and image strategies, with live combined previews of color and typography. The interface supports multiple languages (English, Chinese, Japanese, Traditional Chinese) and provides detailed controls for canvas format, audience, and delivery context.

_skills/ppt-master/scripts/confirm\ui/static · high confidence

Introduces modular PPTX package assembly helpers for SVG-to-PPTX export

The SVG-to-PPTX export tool now uses a dedicated \pptx\_package\ subpackage to handle core export logic. This change introduces structured modules for managing slide dimensions and format detection, discovering SVG and notes files with filename-priority matching, converting SVGs to PNGs with a cache-aware renderer (preferring CairoSVG), and generating the necessary PPTX XML structures for slides, notes, and narration. This modularization supports more robust handling of slide layouts, notes, and audio narration during the export process.

_skills/ppt-master/scripts/svg\_to\_pptx/pptx\package · high confidence

Introduces native PPTX master and layout structure preservation

The \template\_import\ module now includes a new \native\_structure.py\ script that builds a portable master/layout contract from the PPTX template import manifest. This change enables the system to detect reusable structure (masters, layouts, and their relationships) and recommend a 'preserve' mode when the source template's master-layout graph is complete and contains non-minimal assets, rather than defaulting to a generic template output. This allows for more accurate round-trip fidelity when importing complex PowerPoint templates with custom masters and layouts.

_skills/ppt-master/scripts/template\import · high confidence

Introduces structured configuration and community governance files

The repository now includes a comprehensive \.env.example\ file that documents the new explicit provider configuration system for image generation, replacing the previous generic \IMAGE\_API\_KEY\ with provider-specific keys (e.g., \OPENAI\_API\_KEY\, \GEMINI\_API\_KEY\) and detailing resolution order and sponsor relay shortcuts. Additionally, new governance documents have been added: \CODE\_OF\_CONDUCT.md\ establishes community standards, \CONTRIBUTING.md\ defines strict contribution guidelines (including requirements for prior issues for prompt changes and human review for AI-assisted PRs), \SECURITY.md\ outlines the vulnerability reporting process, and \SPONSORING.md\ / \SPONSORING\_CN.md\ detail sponsorship tiers and requirements. The \index.html\ file now redirects to the external examples site, and \GEMINI.md\ has been removed.

(repo-wide) · high confidence

Native chart and formula conversion pipeline

The SVG-to-PPTX converter now supports native PowerPoint objects by introducing a dedicated subpackage that handles chart reconstruction and inline LaTeX formula compilation. Charts are generated using XlsxWriter workbooks and emitted as standard or ChartEx XML, preserving axis semantics, data labels, and styling while validating source packages and fallback baselines. Inline mathematical expressions written in LaTeX are compiled into editable Office Math XML, supporting the Microsoft 365 profile with strict validation of the resulting OMML structure.

_skills/ppt-master/scripts/svg\_to\_pptx/native\objects · high confidence

New PPT Master scripts directory with comprehensive toolset and documentation

The \skills/ppt-master/scripts\ directory has been introduced, providing a complete set of user-facing Python scripts for the PPT Master skill. This includes a new \README.md\ detailing the directory layout and usage for conversion, project management, SVG processing, and export. The directory contains entry-point scripts such as \source\_to\_md.py\ for document conversion, \project\_manager.py\ for project setup, \svg\_to\_pptx.py\ for SVG-to-PPTX export, and \animation\_config.py\ for managing animation sidecars. It also includes internal subpackages for image backends (\image\_backends/\), TTS backends (\tts\_backends/\), and template import helpers (\template\_import/\), along with an \attribution\_guard.py\ to enforce skill integrity.

skills/ppt-master/scripts · high confidence

New PPTX OOXML intake and cloning engine

A new reusable OOXML reading and source-preserving package primitive library has been added to the PPTX master skill. This engine enables deep analysis of PPTX content—including text, tables, charts, and SmartArt diagrams—and provides robust slide cloning that correctly isolates private dependencies (such as custom data tags and per-slide theme overrides) while keeping shared structure and media intact. It also includes validation for slideshow custom-show references and cleanup of unreferenced package parts, ensuring higher fidelity and integrity when importing and reusing presentation content.

_skills/ppt-master/scripts/pptx\ooxml · high confidence

New PPTX-to-SVG converter with high-fidelity color and chart support

A new semantic PPTX-to-SVG converter has been added to the \pptx\_to\_svg\ module, enabling the reverse of the existing SVG-to-PPTX workflow. This tool reads OOXML (DrawingML) directly from .pptx archives and emits SVGs with shape-level fidelity. It includes a robust color resolution system that handles all six OOXML color types (sRGB, scheme, system, preset, HSL, scRGB) and their modifiers, ensuring accurate theme and palette mapping. Additionally, it supports the extraction and reconstruction of native ChartEx payloads for specific chart types (such as treemaps, histograms, and waterfall charts) and validates preset shape geometries, allowing for precise round-trip conversion of complex presentation elements.

_skills/ppt-master/scripts/pptx\_to\svg · high confidence

New SVG quality-checking tool for PPT Master projects

A new quality-checking tool has been added to PPT Master to validate SVG assets before they are converted to PowerPoint. This tool, accessible via the \svg\_quality\_checker.py\ script, enforces structural, visual, and semantic contracts for authoring SVGs. It supports multiple validation stages (early, first-page, page, final) to catch issues incrementally during development, and includes a template mode to verify template workspaces. The checker provides detailed JSON and plain-text reports, helping users ensure their designs meet the requirements for native export and round-trip fidelity.

_skills/ppt-master/scripts/svg\quality · high confidence

New TTS backends for narration audio generation

The PPT Master narration system now supports four new text-to-speech providers: ElevenLabs, CosyVoice, MiniMax, and Qwen. These backends enable users to generate narration audio using these services, with ElevenLabs, CosyVoice, and MiniMax providing word-timed subtitles for synchronized playback. The MiniMax backend defaults to the domestic API endpoint (api.minimaxi.com) for improved accessibility in certain regions.

_skills/ppt-master/scripts/tts\backends · high confidence

New browser-based review surface for design\_spec.md

A new local web server and UI have been added to the spec-review tool, allowing users to review and edit the design\_spec.md file in a browser. The interface supports block-level Markdown editing with staged drafts, conflict detection when the source file changes on disk, and a separate sidecar for saving annotations/comments. The server runs locally (default port 6060) and provides a dark-themed, responsive UI with navigation, validation hints, and multi-language support (English, Simplified Chinese, Traditional Chinese, Japanese).

_skills/ppt-master/scripts/spec\review · high confidence

New interactive confirmation UI for template and design selection

The PPT Master skill now includes a dedicated Flask-based web interface (confirm\_ui) that replaces or augments previous chat-based confirmation flows. This new UI guides users through a staged confirmation process: Stage 1 allows selecting a template and defining the communication contract, while Stage 2 confirms the final deck solution and production plan. The server serves live catalogs synced from configuration, supports language-aware font selectors, and manages its own project-specific lock files and port (default 5050) to avoid conflicts with other local services. It ensures a structured, verifiable handoff between the AI agent's recommendations and the user's final approval.

_skills/ppt-master/scripts/confirm\ui · high confidence

New modular image generation backends for PPT generation

The PPT generation skill now supports a pluggable image generation architecture with dedicated backend modules for Black Forest Labs (FLUX), fal.ai, Gemini, Ideogram, MiniMax, ModelScope, OpenAI, OpenRouter, and Qwen. This change introduces a shared backend helper library (backend\_common) for standardized error handling, retry logic, and image processing, allowing users to select their preferred AI provider via the --backend flag in the image generation CLI.

_skills/ppt-master/scripts/image\backends · high confidence

New template installation and authoring round-trip tooling

The PPT Master skill now includes a new \\apply\_template.py\\ script that installs selected Brand, Style, Layout, and Deck workspaces into a project, handling validation, asset copying, and collision checks. Additionally, \\authoring\_roundtrip.py\\ materializes editable flat SVG pages back into layered slide inputs for the SVG-to-PPTX exporter, preserving source metadata for unchanged objects. Supporting scripts \\compact\_svg\_coordinates.py\\ and \\compact\_svg\_styles.py\\ migrate legacy SVG files by normalizing coordinate precision and inherited style declarations, while \\extract\_svg\_pictures.py\\ allows explicit extraction of SVG groups into self-contained picture assets for native PowerPoint export.

python · high confidence

New web image search providers with license filtering

PPT Master now supports searching for images across multiple web sources (Openverse, Pexels, Pixabay, Wikimedia) directly from the CLI. This adds a new \image\_sources\ module with provider-specific implementations that aggregate and return image candidates. Key features include zero-config support for Openverse and Wikimedia (no API keys needed), while Pexels and Pixabay require environment variables (\PEXELS\_API\_KEY\, \PIXABAY\_API\_KEY\). The system supports license tier filtering (e.g., 'no-attribution-only' vs 'all') and orientation filtering (landscape/portrait/square). All providers return standardized \AssetCandidate\ objects with metadata like title, author, license info, and download URLs.

_skills/ppt-master/scripts/image\sources · high confidence

Removals

Removal of legacy Python tooling and configuration modules

The \tools/\ directory has been cleaned up by removing a suite of legacy Python scripts and configuration files, including \config.py\, \project\_utils.py\, \project\_manager.py\, \error\_helper.py\, \svg\_quality\_checker.py\, \flatten\_tspan.py\, \embed\_icons.py\, \embed\_images.py\, \finalize\_svg.py\, \batch\_validate.py\, \generate\_examples\_index.py\, and \README.md\. This change eliminates the previous standalone Python-based project initialization, SVG validation, and post-processing utilities, likely as part of a broader architectural shift to a different tooling stack or workflow.

tools · high confidence

SVG chart templates removed from templates/charts directory

The \templates/charts\ directory has been cleared of its existing SVG chart templates (including bar, line, donut, funnel, gantt, and KPI card charts) and the associated \README.md\ documentation. This change removes the static template assets and usage guides that were previously available in this location, likely as a prerequisite for the new JSON-based template index and new SVG assets introduced in other parts of the repository.

templates/charts · high confidence

Behavioural changes

Project management internals moved behind stable script shims

The internal implementation of project management (lifecycle, planning artifacts, and page context) has been reorganized into a dedicated \\project\_management\\ package with stable CLI entry points. Users should now interact with project operations via the top-level \\scripts/project\_manager.py\\ script (e.g., \\init\\, \\import-sources\\, \\validate\\, \\page-context\\) rather than accessing internal modules directly. This change provides a consistent command-line interface for managing project structure, validating artifacts, and handling source imports, while keeping the underlying logic encapsulated within the new package structure.

_skills/ppt-master/scripts/project\management · high confidence

Refactored SVG-to-PPTX conversion into a modular package with enhanced text and shape handling

The \svg\_to\_pptx\ script has been reorganized into a structured Python package (\svg\_to\_pptx/\) to improve maintainability and enable in-memory processing of SVG outputs. This change introduces several behavioral improvements for the conversion process: positional \\<tspan\>\ elements are now flattened in memory to preserve complex text layouts that DrawingML cannot otherwise support; static local \\<use\>\ references and project-specific icon placeholders are expanded directly without requiring intermediate disk steps; and inline SVG geometry properties (such as \x\, \y\, \width\, \height\) are compiled into XML attributes to ensure accurate shape positioning. Additionally, the package now supports boolean shape operations (union, intersect, subtract) and validates cloned fragment targets to prevent unsafe URL references, resulting in more robust and editable PowerPoint presentations.

_skills/ppt-master/scripts/svg\_to\pptx · high confidence

Fixes

Refactored SVG finalization into a unified, single-pass image and icon processing pipeline

The \svg\_finalize\ script module has been restructured to replace the previous three independent steps (crop-images, fix-aspect, embed-images) with a single-pass \align\_embed\_images\ module. This change merges image alignment, aspect-ratio correction, and Base64 embedding into one operation, eliminating redundant file I/O and preventing geometry corruption caused by conflicting spatial transforms. The refactored pipeline also inlines cropped bitmaps directly, removing the need for intermediate \images/cropped/\ directories and preventing stale asset accumulation. Additionally, the module now includes dedicated handlers for embedding project icons (supporting chunk-filled, tabler, phosphor-duotone, and simple-icons libraries) and flattening nested \\<tspan\>\ elements to preserve text formatting during conversion.

_skills/ppt-master/scripts/svg\finalize · high confidence

Test coverage

Added test fixtures and test scripts for native projection and template application

Added SVG fixtures in \skills/ppt-master/scripts/tests/fixtures/native\_projection\ to validate the rendering of native charts (column, area, radar, treemap) and tables (business models, risk matrix, power market calculation) within the presentation engine. Added \test\_apply\_template.py\ to verify the \apply\_template\ script's behavior, including style/brand/layout/deck installation, idempotency, and error handling for collisions. Added \test\_audit\_r3\_native\_images.py\ to test image treatment logic (opaque vs. transparent JPEG derivation) and native chart XML generation (line style rejection and marker symbols).

skills/ppt-master/scripts/tests · high confidence

Dependencies

Introduce PPT Master skill with explicit dependency requirements

The repository now includes a \requirements.txt\ that delegates to \skills/ppt-master/requirements.txt\, which explicitly lists the Python packages required for the PPT Master skill. This includes libraries for SVG-to-PPTX conversion (python-pptx, XlsxWriter, skia-pathops, uharfbuzz), document-to-Markdown conversion (PyMuPDF, mammoth, markdownify, ebooklib, nbconvert, openpyxl), web-to-Markdown (requests, beautifulsoup4, curl\_cffi), image processing (Pillow, numpy), AI integration (google-genai), and the SVG editor (flask).

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 50.

Lenses

  • Code Health 73
  • Architecture 98
  • Maturity 71
  • Readiness 32
  • Security 94
  • Accessibility 52

Changes since last survey

  • 300 commits — 167 feature/other, 133 fixes

By area

  • skills/ppt-master — 273 commits
  • (root) — 12 commits
  • .claude-plugin/marketplace.json — 8 commits
  • (repo) — 5 commits
  • docs/assets — 1 commit
  • docs/rules — 1 commit

Notable commits

  • fix: Merge pull request #278 from WodenJay/fix/verify-wrapped-python-daemons
  • fix: Merge pull request #282 from QiuLsG/codex/fix-source-help-dependencies
  • fix: Merge pull request #283 from MaxFreedomPollard/fix-video-subtitle-clause-spacing
  • fix: Merge pull request #287 from zhuoyi780-alt/fix/wsl-preview-browser
  • fix: Merge pull request #292 from MaxFreedomPollard/fix/roster-first-page
  • fix: fix(animation_config): refuse a file path where a project directory is expected instead of passing silently
  • fix: fix(audio): merge MiniMax word timings that share one original-text span
  • fix: fix(checker): icon references keep their fill local under compact authoring; template mode reports the roster contract beside a Brand or Style spec
  • fix: fix(checker): require the CC token in an image credit only for a Creative Commons licence
  • fix: fix(checker): stop a trailing backtick from joining a §IX Hyperlinks URI
  • fix: fix(checker): structure errors say paint may change; a slot overflow no longer advises expanding slot bounds; typed-slot tip names the lost animation anchor
  • fix: fix(daemons): report lock pid on startup, drop redundant liveness probe
  • fix: fix(edit-native): import normAutofit font scale and theme minor fonts; checker admits an edit no wider than its slot's source text and refuses absolute-y rows in a semantic shape
  • fix: fix(image-search): halve originals above Pillow's decompression-warning size
  • fix: fix(image_search): keep the caller's provider pin when a batch row needs selection
  • fix: fix(pptx_intake): report grouped shapes in slide space by applying every enclosing grpSp transform
  • fix: fix(prompts): address the Codex adversarial review of the readability pass
  • fix: fix(prompts): calibrate text width once on P01, then estimate by font
  • fix: fix(prompts): drop preset exit clauses and name hand-drawn arrows as a receipt contradiction
  • fix: fix(prompts): make Relationships the single owner of page semantics; validate its presence
  • …and 280 more

Architecture

  • 0 containers · 1 bounded contexts · 0 dependency edges (baseline)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

hugohe3/ppt-master was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 481e057ecd9f5ff094c9c789b17b2d1331e278e8 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-9984f8053b7b.