
Pptx Html Fidelity Audit
Produce a slide-by-slide fidelity audit table when HTML-to-deck exports misalign footers, typography, and vertical rails.
Overview
pptx-html-fidelity-audit is an agent skill most often used in Ship review (also Build docs) that standardizes slide fidelity audit tables with severity, root causes, and fix plans.
Install
npx skills add https://github.com/nexu-io/open-design --skill pptx-html-fidelity-auditWhat is this skill?
- Stable markdown audit table with Slide | Issue | Severity columns and 🔴-first scanning
- Documented severity legend: 🔴 critical overlap, 🟠 borderline, 🟡 typography drift
- Root-cause block for missing CONTENT_MAX_Y, hero anchoring, and italic propagation
- Fix-plan section tied to footer rail invariants and EN serif italic preservation
- Drop-in template for recurring deck-name and date headers
- Three-tier severity legend: 🔴 critical, 🟠 warning, 🟡 typography drift
- Three documented root-cause categories in the example audit (footer rail, hero anchoring, italic propagation)
Adoption & trust: 1.1k installs on skills.sh; 61.4k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your HTML-to-PPTX pipeline ships slides with footer collisions and lost typography, but every audit uses a different format.
Who is it for?
Solo builders maintaining scripted deck pipelines who need repeatable QA before sending slides to customers or executives.
Skip if: Greenfield slide design from briefs with no existing HTML/PPTX conversion to verify.
When should I use this skill?
Step-3 deck fidelity review when HTML or script export misaligns footers, vertical rails, or typography versus source HTML.
What do I get? / Deliverables
You deliver a consistent fidelity audit markdown file stakeholders can scan for 🔴 issues plus an actionable fix plan for layout scripts.
- Fidelity audit markdown with slide issue table and severity
- Root-causes and fix-plan sections for layout script changes
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Ship → Review because the deliverable is a Step-3 audit gate before decks ship to stakeholders or clients. Review subphase fits structured severity tables (🔴🟠🟡), root-cause notes, and fix plans—not initial design exploration.
Where it fits
After generating training slides from HTML, run the template to log footer collisions before merging to main.
Gate a client deck by filling the audit table with 🔴 overlap rows and a CONTENT_MAX_Y fix plan.
Before publishing a webinar deck, confirm italic and footer spacing match brand HTML using the stable severity legend.
How it compares
Structured review template for deck fidelity, not a slide generator or generic design system skill.
Common Questions / FAQ
Who is pptx-html-fidelity-audit for?
Solo designers and builders who export presentations from HTML or automation and need a fixed audit format before release.
When should I use pptx-html-fidelity-audit?
After Build docs work when validating a deck export in Ship review, or before Launch distribution when slide fidelity must match brand HTML.
Is pptx-html-fidelity-audit safe to install?
It is a local markdown template with no runtime side effects; review the Security Audits panel on this Prism page for the upstream package.
SKILL.md
READMESKILL.md - Pptx Html Fidelity Audit
# Audit Table Template Drop-in markdown template for the Step-3 audit deliverable. Keep the column order and severity legend stable across audits — readers learn to scan for 🔴 first. ## Template ```markdown **Fidelity audit · `<deck-name>` · <date>** | Slide | Issue | Severity | |---|---|---| | 1 cover | meta-row 底端 6.95" 蓋過 footer (6.7") | 🔴 | | 2 principle | meta-row 蓋 footer | 🔴 | | 5 checklist | row B 步驟描述底端 7.2" 切到 footer | 🔴 | | 8 3E | 收束段落直接坐在 footer 起點 | 🔴 | | 9 on-day | step 描述底端剛好碰 footer,無安全距 | 🟠 | | 10 obs | row 2 obs-card 底端 6.95" 切 footer | 🔴 | | 11 P&D | Note 段底端 7.34" 完全壓在 footer 之下 | 🔴 | | 13 deliv. | pipeline 描述底端 7.05" 切 footer | 🔴 | | 14 closing | meta-row 底端 7.24" 壓到 footer 之外 | 🔴 | | 多處 | em (Playfair italic)、特殊字級對比未保留 | 🟡 | **Root causes** 1. **No footer rail enforced.** Content blocks pinned at hand-picked y-coordinates; the script had no `CONTENT_MAX_Y` invariant, so `top + height` silently crossed `6.7"` whenever the content was taller than the test slide. 2. **Hero slides anchored at `MARGIN_TOP`.** Vertical centering was done by eye; cover and chapter-intro slides drift down as block heights vary. 3. **Italic propagation skipped.** `<em>` spans in HTML mapped to plain runs; the EN serif italic identity was lost across all hero slides. **Fix plan** - Introduce `CONTENT_MAX_Y = 6.70"` and `FOOTER_TOP = 6.85"` as module-level constants. - Route all content blocks through a `Cursor` that refuses to cross the rail. - Switch hero slides to `hero_layout(blocks)` — compute total stack height, center on canvas. - Tighten `desc_h` (pipeline `0.85"`, checklist `0.65"`) to fit text + 0.05" pad. - Add `italic=True` path in `add_run()` that swaps to EN serif for italic Latin runs; skip italic for CJK. - Add post-export `verify_layout.py` step; require zero rail violations. ``` ## Severity legend (reproduce inline in reports) ```markdown - 🔴 **critical** — content cropped, text invisible, footer overlap, off-canvas. Must fix. - 🟠 **high** — content visible but visual hierarchy broken, no breathing room. Should fix. - 🟡 **medium** — italic/em missing, font fallback wrong, color drift. Fix in this pass. - 🟢 **low** — minor spacing/alignment, sub-pixel offsets. Note but don't block. ``` ## Verification footer (append after re-export) ```markdown **Verification** - ✅ 0 rail violations across 14 slides - ✅ All shapes within canvas (`top + height ≤ 7.5"`, `left + width ≤ 13.333"`) - ✅ Italic preserved on all `<em>` runs (EN serif), skipped on CJK runs - ✅ Hero slides centered (cover, 03 act-i, 06 act-ii, 11 act-iii, 13 closing) - File: `<absolute-path>.pptx` · 54.7 KB ``` # Font Discipline for PPTX Exports Companion to `layout-discipline.md`. The rail / cursor primitives in that file catch geometric drift; this file catches the typography drift that geometry can't see — variable-font traps, missing CJK slots, fake italic on Han characters. These are the bugs that pass `verify_layout.py` and still look wrong. Read this when: - The audit table has 🟡 entries about italic / em / font fallback. - PowerPoint silently swaps to Calibri / Arial / Microsoft JhengHei / Georgia after you specified a different family. - `unzip pptx | grep typeface` shows a face that isn't in your design system. ## Layer 1 — Font mapping in the export script Walk each CSS class used by the source HTML and confirm the export script maps it to the **same** font family. ⚠️ **Trap:** the visual category your eye reads is not always the class's semantic category. Editorial decks routinely bind `.lead`, `.callout`, or `.q-big` to a serif face, not the sans-serif you'd guess from "lead". Open the HTML's CSS, read the `font-family` declaration for each class, and copy the literal family name into the export's font table. Don't rely on visual intuition; rely on gre