PPT HTML Skill is a Codex skill and Node.js runtime for creating and inspecting editable PowerPoint decks through a deterministic PPTX-XML-HTML intermediate layer.
The project is built for workflows where a slide deck must remain editable in PowerPoint while also being readable and auditable by agents. Instead of flattening slides into screenshots, the generator maps structured JSON or canonical IR into native PowerPoint text boxes, shapes, lines, images, object names, Morph transition metadata, sidecar manifests, and HTML mirror files.
- Keeps generated presentations editable as native PPTX objects.
- Provides an HTML mirror registry with stable
data-pptx-objectidentifiers for inspection and downstream edits. - Stores canonical IR and object manifests next to the output deck and inside PPTX
customXml. - Supports common deck blocks: cover, section, subtitle, content, metric, and closing slides.
- Extracts existing PPTX files into best-effort IR and HTML mirror files for review or repair.
SKILL.md- Codex skill entrypoint and operational rules.agents/openai.yaml- Skill display metadata and default prompt.assets/example-deck.json- Starter deck spec for smoke tests and demos.references/spec.md- Deck spec and canonical IR reference.references/editable-ppt-contract.md- Rules for preserving editable PPTX structure.scripts/ppt-html-cli.js- CLI for generating PPTX from spec/IR and extracting PPTX to IR/HTML.package.jsonandpackage-lock.json- Node.js runtime dependency definition.requirements.txt- Notes that there are no Python runtime requirements.archive/- Dated maintenance and verification notes.OVERVIEW.md- Maintainer inventory and project status.
npm installThe runtime uses Node.js dependencies only. Python requirements are intentionally empty.
node .\scripts\ppt-html-cli.js `
--mode generate `
--spec .\assets\example-deck.json `
--out .\demo.pptxThis writes:
demo.pptxdemo.ir.jsondemo.manifest.jsonhtml_mirror/slide_###.html
node .\scripts\ppt-html-cli.js `
--mode extract `
--pptx .\input.pptx `
--html-out .\input_html_mirror `
--ir-out .\input.ir.jsonExtraction is best-effort and focuses on common slide XML objects: text boxes, autoshapes, connectors, positions, sizes, fills, lines, font sizes, text, and object names.
The central constraint is simple: HTML and IR are the structure and registration layer, not a rasterization target. The PPTX output should use native editable PowerPoint objects. Raster images are allowed only for named photo, screenshot, logo, illustration, or icon regions, not as a full-slide replacement for editable content.
Current structure validation confirms the expected skill entrypoint, agent metadata, references, CLI, example asset, and Node dependency lockfile are present. A generation smoke test using assets/example-deck.json succeeds. The optional --render-check path currently skips in this standalone repository because scripts/export_pptx_pages.ps1 is not included.