github hugohe3/ppt-master v5.0.0

5 hours ago

Important

This release rewrote the repository history. The 578 MB examples/ tree was removed from every commit it ever appeared in, cutting a clone from 808 MB to 116 MB. Example decks now live in their own repository — ppt-master-examples — and stay browsable at https://hugohe3.github.io/ppt-master-examples/, with the same in-browser viewer and the same .pptx downloads.

Existing clones and forks will not fast-forward. Because the history was rewritten, the old and new commits share no ancestor, and git pull will fail or produce an unrelated-histories merge. Realign an existing clone like this:

git log origin/main..HEAD --oneline   # check for unpushed commits first
git fetch origin
git reset --hard origin/main
rm -rf examples                       # no longer tracked; remove the leftover directory
git reflog expire --expire=now --expire-unreachable=now --all
git gc --prune=now                    # without this the old objects stay and the size never drops

Forks are affected the same way. Nothing else about the project moved: the skill, the scripts, the templates, and the documentation all stay in this repository.

v4.8.0 built out the image path. This release changes how the system chooses — across native shapes, charts, tables, sounds, layouts, and imagery. The old pattern was a mandatory recall step followed by heuristic matching: read the catalog, then guess which entry fits. That produced two failure modes at once — pages that reached for a preset because recall demanded it, and pages that settled for a neutral box because the heuristic found nothing. Both are gone. Every catalog is now a complete vocabulary the author reads as a map of what is expressible, and selection is decided by semantic fit at page scale. Nothing is selected because a step required it, and nothing falls back to neutral before fit has actually been tested.

Vocabulary-led selection replaces heuristic recall

  • The chart, preset, table, and sound catalogs are now complete maps. Each one documents the full expressible set rather than a keyword-searchable subset, so the author decides from what the system can actually express instead of from what a lookup happened to surface.
  • Mandatory recall was removed as a gate. Recall used to be an obligatory step that a page had to pass through, which pushed pages toward using a preset whether or not one fit. It is now a reference the author consults when the page has a shape question to answer.
  • The Visual Job Router became recall, not a gate. Same correction, applied to effects: the router informs the decision rather than standing in front of it.
  • Semantic fit is required before a neutral layout. A neutral container is a legitimate answer, but only after fit has been tested — not as the default landing spot when nothing obvious matched.
  • Preset discovery is semantic and page-local. Discovery runs against the page's own content and geometry rather than deck-level heuristics, and the inspection path is execution-safe and shell-safe (previously it could break on shell metacharacters in page content).
  • Lettering and illustration planning follow the same rule. Image carriers are selected by what the page needs, not by page role or by which capability happens to be available.
  • Style guidance no longer narrows capability. A resolved visual style expresses preference; it does not remove carriers from consideration. A restrained style still reaches for a photographic or lettering carrier when the page calls for one.

Page geometry as an authoring decision

  • Compound page geometry is authored, not assembled. Pages that combine multiple shape systems are designed at page scale, with the geometry decision made before the parts are chosen.
  • Page geometry is separated from relationship topology. How elements sit on the page and how they relate to each other are two decisions; conflating them produced layouts where the diagram's logic dictated the composition.
  • Preset selection moved into authoring. It belongs where the page is designed rather than in a preparation step that runs ahead of it.
  • Compact preset atoms are exempt from root-bounds checks, with the bounds contract documented — the checker previously flagged legitimately small native atoms.
  • Inline math reserves structural height, so a formula set inline no longer collides with the line box around it.
  • Carrier use and batch native presets are exposed to the author, so a page can commit to a carrier and generate its native parts together.

Image generation

  • ChatGPT image API models are supported as a backend.
  • Gemini reference-image editing is supported — an existing image can be passed as a reference rather than described from scratch.
  • Illustrated icon slices can be generated as a family and sliced to individual transparent elements.
  • Backend failures stop being retried when they are permanent, and a global backend failure halts the manifest batch instead of grinding through every remaining prompt against a backend that is down.
  • The MiniMax backend handles the documented image_urls response shape it actually returns.

Templates and workflow

  • Template kinds compose within one project workspace — a project can hold more than one kind, with the multi-kind workspace contract documented.
  • Create Template loads the shape vocabulary before contours are chosen, so template geometry is decided against the full expressible set.
  • Page carriers are resolved before resource preparation, so preparation serves decisions already made rather than guessing what will be needed.
  • Role-owned capability knowledge is preloaded, and the boundary between Strategist advice and Executor authority is stated explicitly.
  • The page-count recommendation defaults to a range rather than a single number, since the right length is usually an interval.
  • The three recommended directions are free of catalog framing — they are design directions, not catalog entries dressed up as choices.
  • PyYAML is declared as a dependency for template registration.

Failures that used to pass silently

  • Four swallowed conversion failures now surface. Source conversion could fail and report success, leaving an empty or partial document downstream.
  • The SVG editor stops reporting silent failures as success.
  • An empty icon search says so instead of returning nothing that reads as a valid empty result.
  • SVG documents that start with an XML declaration are detected during finalization rather than falling through the format check.
  • Text width no longer overestimates halfwidth forms and CJK bold, and module bounds are judged against real glyph width — both produced spurious overflow reports.
  • Quick reads the signals the scripts already emit, instead of re-deriving state that was already reported.
  • Supported native objects default to dormant markers, so a deck carries the markers without activating behavior nobody asked for.
  • Runtime paths are anchored to the installed skill root, which matters for the ZIP and plugin installs that have no repository around them.

Repository

  • Example decks moved to their own repository and the history was rewritten to remove them — see the note at the top of these release notes for what that means for an existing clone.
  • Four selection-level authoring defaults were restored in svg-effects.
  • Documentation was reconciled against the code: broken procedures repaired, contract drift settled, missing authority edges added, icon confirmation and brand resource policy aligned, and the FAQ answering the questions users actually asked.
  • Parameter refresh from PR #268.

Full changelog: v4.8.0...v5.0.0

Don't miss a new ppt-master release

NewReleases is sending notifications on new releases.