github hugohe3/ppt-master v6.4.0

4 hours ago

Minor release collecting a week of fixes found by running the pipeline end to end across languages, input types, deck lengths, and a revision round on a delivered deck. Every change is backed by a reproduced defect; no route, gate, or command was added or removed.

Converter (source_to_md.py)

  • PDF tables with partial ruling keep the columns drawn outside the ruled box (059119a); spreadsheet notes above the header become a quote instead of a phantom row; a scanned PDF and an out-of-order Arabic text layer are warned about (6c372a2, b3073f8).
  • Web fetch keeps the declared charset under a lossy decode and warns when only a sliver of the page body was extracted (95e3c41); web tables keep their links and land on a GFM grid (17d953a, 0ae80b1); document URLs route to their converter and honour --no-images and meta refresh (0b593d6, 25a9984).
  • DOCX charts, table footnotes, and absolute chart targets survive conversion (22da436, 4bbf7b7); PPTX read-back keeps soft line breaks (c71d9e7).
  • Safety: every redirect hop is validated before it is requested, and CGNAT and multicast targets are refused (4bbf7b7).
  • -o on a single input names the Markdown file and says so; --json keeps stdout to JSON.

Text measurement and multilingual decks

  • Width calibration runs per planned script (Thai, Devanagari, Arabic, …) and at bold weight; Indic vowel signs advance the estimator; wrapping keeps words whole in every space-delimited script and breaks Korean between words (8900e87, e64a2b3, 88fb822, 0ae80b1).
  • Indic, Thai, Arabic, and Japanese faces are on the PPT-safe list; Japanese decks get EA faces and kinsoku; right-to-left decks get RTL defaults; explicit BCP-47 scripts pick the theme script slot (0609875, 5771f4f).
  • Latin runs inside a non-Latin deck proof as English (f76d1ec). Quick decks declare their language on the page root and the export derives theme fonts from the pages (0b06d19).

Native charts and tables

  • Table parity compares runs by effective style and lets explicit run colour and weight override the cell default (451c681, aee33e5); parity reads inherited text-anchor and tspan colour (5771f4f).
  • series[].line_style is rejected with a clear error and passes only inside a combo; Cambria Math is accepted; JSON CDATA survives compaction; classic axes are refused on ChartEx charts; data-label points follow their show flags (4a7512e, 83d8d00, 25a9984).
  • Fallback stamping reports a malformed page instead of skipping the valid ones; preset atoms keep their paint through style compaction (7acddfb, 6881d37).

Export and motion

  • Morph candidates are planned and authored whether or not animation is enabled (1fb122b); exported objects are named after their SVG id (a849c49); structured decks animate slot groups and re-skin master atoms (529403b).
  • MiniMax word timings that share one original-text span merge into one subtitle; written-out numbers stay whole (96742ff, 7086c45).

Quality gate

  • The final gate compares the design_spec §IX roster with svg_output/, so a page dropped or left un-planned during a revision no longer passes silently (191f462).
  • The carrier receipt counts pages whose §IX Relationships line names a carried relation; the unresolved-geometry warning names the tspan rule; text picture fills count as image placements (95e3c41, ed17157).

Workflow

  • A delivered project's revision has a named entry: routing.md sends it to a Revision Round section in generate-pptx.md (Default) or a revision note in quick-generate.md (Quick), covering which layer owns each kind of change, what a roster change renumbers, and which commands rerun (77c2745, 4d55172).
  • User-supplied images with licence terms register in image_sources.json so their credits are bound at the gate; research fetches pass --no-images (8e5e30a).
  • update_spec.py docs state what a colour change still edits by hand and when to re-stamp fallbacks.

Preview

Install

The ppt-master-skill-v6.4.0.zip asset contains only skills/ppt-master/ for agents that load the skill directory directly.

Don't miss a new ppt-master release

NewReleases is sending notifications on new releases.