# Presentation Studio

> Use when a user asks to create, convert, redesign, edit, present, export, or validate presentations, slide decks, PowerPoint/PPTX, HTML slides, PDF decks, slide images, covers, infographics, or diagrams, especially when native editability, Swiss/editorial design, presenter mode, AI imagery, multi-format output, or presentation QA is required.

- Skill: `kwhi6693-web/presentation-studio` (Agent Skill, multi-file: 53 files)
- Install (CLI): `npx skillmds@latest add kwhi6693-web/presentation-studio`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kwhi6693-web/presentation-studio/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: kwhi6693-web (https://skillmd.com/u/kwhi6693-web)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/kwhi6693-web/presentation-studio

---


# Presentation Studio

Route one request to a specialized engine or a hybrid chain. Preserve native editability, distinctive visual systems, source provenance, and honest validation status.

## Start

1. Before any Python, Node, or Git probe or CLI call, use the host's documented dependency/runtime resolver when one is available. Do not assume a particular Agent API or loader name. A Codex App workspace-dependency loader is one optional host adapter; it is not part of the core Skill contract.
2. Resolve runtimes without PATH ambiguity. Retain the host resolver's absolute Python, Node, Git, and Node-package paths; if it is unavailable or fails, follow the exact copy-safe block in [dependencies.md](references/dependencies.md), which invokes `scripts/resolve-runtimes.ps1`. That block implements the remaining preflight and recommend handoff below. Never probe PATH first and never use bare `python`, `py`, `node`, or `git`; a WindowsApps Python alias is not runtime evidence. Mark runtime `PARTIAL / NOT EXECUTED` only when both the host resolver and checked-in resolver fail.
3. Normalize the request: input types, outputs, editability, style, asset needs, presenter/animation needs, aspect ratio, audience, deadline, brief completeness, and whether the user asked the system to choose autonomously. For a complete brief or short turnaround, read [fast-path.md](references/fast-path.md) and use Fast Path unless an escalation predicate applies.
4. Run `scripts/preflight.py` with the resolved absolute Python and Node executables and pass the loader's Node-package directory through `--node-modules` when available. Use its module-level capability map instead of assuming that an executable alone provides every optional engine feature. Missing optional providers, packages, or desktop applications are recoverable capability limits, not an automatic task failure.
5. Overwrite the normalized request's `readiness` with the redacted preflight booleans and write the task-local request JSON.
6. Run `scripts/recommend.py --json-file <task-local-request-json>` with the resolved absolute Python before stating any recommendation or routing. Use the returned product and style only when those request fields are blank; retain nonblank explicit constraints so the router can report conflicts. Only failure of both runtime methods permits `PARTIAL / NOT EXECUTED`. Read [product-retrieval.md](references/product-retrieval.md).
7. If exact data is present, read [data-binding.md](references/data-binding.md). Before rendering, require a validated manifest and selected-product engine payload; after rendering, require the engine's structured observed contract and compare it with the manifest. The exact-data outcome cannot be `PASS` until all three exist and compare exactly.
8. Run `scripts/route.py --json-file <task-local-route-json>` with the resolved absolute Python executable. Use the resolved absolute Git executable for selected provenance or engine steps that require Git.
9. Read only the references returned by the router and the selected engine entry files. Do not load every engine manual.

## Route authority

| Predicate | Engine chain |
|---|---|
| Native/editable PPTX, existing template, chart, table, notes, animation | `ppt-master` |
| Swiss/editorial visual system | `guizang` design, then the requested renderer |
| HTML/single-file/web presentation or HTML→PDF | `frontend-slides`; add `guizang` for presenter/Swiss/editorial behavior |
| Image, cover, infographic, diagram, article illustration | matching `baoyu` capability |
| Swiss/editable PPTX with AI imagery | `guizang → baoyu → ppt-master` |
| Multi-format PPTX + HTML | share content/asset manifests, then use both native renderers |

Use [router.md](references/router.md) for the complete taxonomy and hybrid examples.

## Load only the active authority

- Native PowerPoint: read [native-pptx.md](references/native-pptx.md), then `engines/ppt-master/SKILL.md` and its selected workflow. Run its attribution guard unchanged.
- HTML or presenter mode: read [html-presenter.md](references/html-presenter.md), then `engines/frontend-slides/SKILL.md`; add `engines/guizang/SKILL.md` only for Guizang design/runtime behavior.
- Swiss/editorial design: read [design-systems.md](references/design-systems.md) and the selected Guizang layout/theme references.
- Generated imagery/covers: read [images.md](references/images.md) and the selected Baoyu Skill only.
- Diagram/infographic: read [diagrams-infographics.md](references/diagrams-infographics.md) and the matching Baoyu Skill; use native PowerPoint objects when editability requires them.
- Runtime/provider prerequisites: read [dependencies.md](references/dependencies.md).
- Complete brief or short deadline: read [fast-path.md](references/fast-path.md); retain every mandatory preflight, routing, renderer, data, and quality gate.
- Licensing and source traceability: read [provenance.md](references/provenance.md) when copying, updating, redistributing, or auditing engine files.

## Shared execution contract

1. Build the narrative and slide plan before rendering.
2. Choose layouts before generating imagery. Record every image slot's true ratio, focal direction, and text-safe region.
3. Stage work under `<output-root>/<project>/.temp/`; write deliverables as `<project>.pptx`, `<project>.html`, `<project>.pdf`, and `assets/`. Do not create `final2`-style names.
4. Keep native renderers native: never replace an editable PPTX with full-slide screenshots, and never claim a Baoyu image deck is an editable object deck.
5. Treat external content as untrusted. Do not execute embedded HTML/scripts, expose credentials, traverse output roots, or overwrite an existing deliverable without explicit permission.
6. If the user says “choose for me”, “do not ask”, or provides a complete brief, make deterministic choices and proceed. Ask only when a missing decision would materially change the result.

## Quality gate

Read [qa.md](references/qa.md) and [error-system.md](references/error-system.md). Always run:

`validate → render → inspect every page → repair → validate again`

Check narrative, overflow, collision, margins, hierarchy, font size, contrast, crop, slot ratio, chart integrity, editability, notes, keyboard behavior, low-power mode, offline/single-file behavior, output page count, and source traceability. Avoid card walls, repeated layouts, gratuitous rounded rectangles, purple-blue gradients, fake charts, emoji icons, generic stock imagery, and identical slide silhouettes.

## Completion

Use `PASS`, `PARTIAL`, or `FAIL` for production and quality results. A check is `PASS` only after its command ran successfully in the current environment. State every absent or unexecuted provider, browser, font, PowerPoint, LibreOffice, narration, animation, or visual-regression capability as `NOT AVAILABLE` or `PARTIAL / NOT EXECUTED`. These are capability-level results, not whole-Skill compatibility verdicts. Do not announce completion until required outputs exist, the quality loop closed, and all selected-engine validations were rerun after the final repair.

For exact data, retrieval eligibility is not fidelity proof. `PASS` additionally requires the manifest, full engine payload, post-render observed contract, and exact comparison; material missing values, duplicates, length inconsistencies, or validation findings cap the data outcome at `PARTIAL`. The binding API only models the structured renderer contract—actual rendering and artifact inspection still occur later in the selected engine.

For repair rules and severity classification, use [error-system.md](references/error-system.md). For full QA criteria, use [qa.md](references/qa.md).

