- apply_template.py installs selected Brand, Style, Layout, and Deck workspaces into a project with validation, provenance tracking, and idempotent re-runs
- mbb-consulting Style added for strategy documents with numbered exhibits, key-message columns, and fixed page chrome
- Tencent Cloud TokenHub image backend added as tencent with aliases tokenhub and hunyuan
- Native charts now mirror the fallback drawing, reading bar order, point markers, per-point colours, area fills, clustered gaps, overlap, and line start positions from the authored SVG
- Native tables export unfilled cells as noFill, carry defaults.run colour into plain-text cells, let paragraphs cells inherit run defaults, and honour authored row heights over padding
- Text width is now measured from real glyph advances for Arial, Times New Roman, Georgia, Verdana, and Calibri (all variants) using a bundled per-glyph advance table
- Chart and table parity findings that would break native-charts-and-tables are tagged as export-blocking
- text_measure.py calibrate now prints CAPS and DIGITS rates, an outline column, and merges role information
- Animation order now places unlisted groups after the nearest listed order instead of their SVG index, and static-role chrome animates when the sidecar names it
- Code style rules now allow unit tests under skills/ppt-master/scripts/tests/ on stated conditions
- Native data documentation expanded to include data_labels type support, row_heights with header row, borders.style form, defaults.cell, and full chrome token list
- Hidden SVG elements, hidden clip shapes, and hidden groups stay hidden during export
- Single-child group rotation is preserved during export
- Inline tspan dx is carried during export
- Root and native-gradient opacity apply during export
- Out-of-range shape frames and incomplete pattern fills are rejected instead of producing files PowerPoint must repair
- Zero-width strokes export as no line
- Camera MPO JPEGs keep their primary frame during export
- Image tools now honour EXIF orientation
From ppt-master
[!IMPORTANT] This release is about fidelity and evidence. Native charts and tables now follow the drawn SVG item by item, Latin text is measured from real glyph advances instead of class averages, templates install with one command, and the examples library grew to 33 decks that cover every visual style, mode, and canvas plus the first spreadsheet-, PDF-, and Style-template-driven decks. Create Template and Edit Native PPTX remain paused (bug fixes only).
Converter
- Native charts mirror the fallback drawing. Bar order, point markers and per-point colours, area fills without strokes, clustered gaps and overlap, and where a line starts inside the plot are all read from the authored SVG; sparse cell caches import as gaps; companion text is grouped with its chart so one animation moves the whole unit and sits on the fallback baseline. The chart frame grows past the plot so PowerPoint keeps the manual vertical layout instead of collapsing it.
- Native tables export unfilled cells as
noFill, carrydefaults.runcolour into plain-text cells, letparagraphscells inherit run defaults, and honour authored row heights over padding. - Text width from real glyphs. Arial, Times New Roman, Georgia, Verdana, and Calibri (regular, bold, italic, bold-italic) are measured from a bundled per-glyph advance table (
font_advances.json); monospaced faces measure as characters × fixed advance; wide faces (Arial Black) keep their factor. A mixed-case Arial line can now fill about 94% of its text frame before the wrap headroom applies, up from 85%, and the checker and the exporter agree on the same number on every machine. - Export correctness fixes: hidden SVG elements and hidden clip shapes stay hidden, hidden groups keep their animation target, single-child group rotation is preserved, inline
tspan dxis carried, root and native-gradient opacity apply, out-of-range shape frames and incomplete pattern fills are rejected instead of producing a file PowerPoint repairs, zero-width strokes export as no line, camera MPO JPEGs keep their primary frame, and image tools honour EXIF orientation.
Source conversion
- Excel values keep full precision, source encodings are detected, inline spacing and absolute links survive web pages, HTML comments are dropped, raw Markdown and plain-text URLs are saved verbatim,
pdf_to_mdkeeps line-leading decimals,--no-imagesworks for web pages, an extension-less-obecomes<name>.md, batch conversion never overwrites an input, andimport-sourcescopies another project's files instead of moving them. - The source converter's
--helpno longer needs optional dependencies installed (#282).
Templates
apply_template.pyinstalls selected Brand / Style / Layout / Deck workspaces into a project per the apply-template-workspace runbook: validation, library/explicit provenance, Layout over Deck, roster and asset copy, idempotent re-runs, and a §5.3 receipt.mbb-consulting, a new Style for strategy documents at document density — numbered exhibits with unit lines, a key-message column closing in an implication panel, five to seven modules per page, fixed page chrome, size anchors, fallback colours and typography — distilled from the EV market-priorities example.consulting-decisionkeeps its restrained method-first defaults.
Checker and authoring tools
- Chart/table parity findings that would break
--native-charts-and-tablesare tagged as export-blocking; parity honoursnumber_format, exact ticks,style.body_textfor first columns, the centred header default, and names the multi-column rect behind a whole-column fill. text_measure.py calibrateprints CAPS and DIGITS rates, an outline column, and merges--role; the width check reads inline hyperlink runs;validateresolves the real project directory;initresolves the projects root from the skill and checks the page count against the roster.- Animation order: unlisted groups follow the nearest listed order instead of their SVG index; static-role chrome animates when the sidecar names it, only structural layers and the slide background stay fixed;
list-groupsnames chrome ids. - Slice diagnostics tell drift from overflow, keep the pure key, and flag backing panels; image search pages through a saved candidate pool;
rotate_imagesreports failures. - A Tencent Cloud TokenHub image backend (
tencent, aliasestokenhub/hunyuan) joins the image generators (#279).
Prompts and rules
- Animation guidance: chrome is static by default and animates per page when named; Morph endpoints are groups fixed at first draw, continuity carriers are the default Morph; entrance order follows the reading path; illustration roles decide what moves.
- Text and layout guidance: bounds top and bottom edges are spelled out, role groups still declare bounds, the all-tspan first line carries inline emphasis, digits use the DIGITS rate, calibration rates are sample averages with a 5% margin, and repeated writing forms are treated as method-level at the early gate.
- Native data:
data_labelstype support, native objects never Morph-pair,row_heightsincludes the header row,borders.styleform,defaults.cell, and the full chrome token list are documented where the exporter reads them. docs/rules/code-style.md§11 now allows unit tests underskills/ppt-master/scripts/tests/on stated conditions (stdlib unittest, scripts only, in-test fixtures, no CI); the suite has 212 tests.
Examples
The examples site now holds 33 decks (471 pages), with the first decks driven by a spreadsheet source (Apple FY2025 operating review from XLSX + CSV), by a PDF source (the ResearchStudio-Reel paper reading, English, academic-research Style), and by bundled Style templates (Cloudflare outage postmortem, uv product launch, EV market priorities on mbb-consulting), alongside new photo-, data-, and illustration-led decks (Apollo photo essay, China 2025 economy briefing, pixel-art breakfast atlas, solar-terms long-form and story, tea A4 handout, heritage-goods moments grid, brutalist field guide, WebGPU Quick, banner and header sets). Six May-era examples were migrated to the current checker without regenerating them.
Community
- #278 (@WodenJay): wrapped Python daemon processes are verified on startup.
- #282 (@QiuLsG): source converter help stays dependency-free.
- #279: Tencent Cloud TokenHub backend.
Assets: ppt-master-skill-v6.3.0.zip is the skill-only tree for loading skills/ppt-master/ into any agent tool; the source archive carries the full repository.