
Humanize PPT
FreeTransform raw material into presentation-ready outlines.
Free · Opens the source repo
What Humanize PPT does
Humanize PPT is a specialized presentation system designed to create structured, audience-focused outlines from raw materials such as notes, voice transcripts, or documents. This skill emphasizes the concept of Audience-State-Transfer (AST), ensuring that each slide effectively transitions the audience from their initial state to the desired outcome. By generating a detailed outline and making visual enhancement decisions for each slide, Humanize PPT prepares the content for downstream rendering without directly handling the rendering process itself.
The skill operates in two main phases: first, it processes the raw material to produce an AST outline along with a slide plan that includes media recommendations for each page. It then hands off this production brief to a downstream renderer capable of creating native PowerPoint or HTML presentations. After the slides have been rendered, Humanize PPT can conduct a comprehensive presentation checkup, assessing the quality of the slides against the original outline and providing actionable feedback to ensure that each slide is suitable for presentation.
Humanize PPT is particularly useful for professionals who need to create engaging presentations that maintain content density while also being visually appealing. It is ideal for educators, business professionals, and anyone who frequently delivers talks or presentations and requires a structured approach to content creation. The skill's focus on audience engagement and effective communication makes it a valuable tool in any presenter’s toolkit.
While Humanize PPT excels at preparing outlines and enhancing presentation quality, it is not a rendering tool itself. Users looking for a quick way to create visually appealing slides without the need for a structured outline may find it less suitable. Instead, this skill is best used in conjunction with downstream rendering tools that can utilize the detailed briefs it generates.
When to use it
Use this skill when you need to prepare a presentation from raw content and require a structured outline and media recommendations.
When not to use it
Avoid this skill if you only need a simple, visually appealing slide template without the need for a detailed outline or presentation checkup.
What you can build with it
Creating a Business Presentation
A business professional uses Humanize PPT to turn meeting notes into a structured presentation outline, ensuring each slide effectively communicates key points.
Preparing an Educational Lecture
An educator inputs lecture notes into Humanize PPT to generate a presentation that engages students and clearly conveys learning objectives.
Conducting a Quality Review of Slides
After rendering a presentation, a user runs a checkup with Humanize PPT to ensure all slides are suitable for delivery and meet audience engagement standards.
How to install Humanize PPT
View source1. Install with the skills CLI
npx skills add nexu-io/open-design/humanize-ppt --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nexu-ioHumanize PPT
Use this skill when a user wants to turn raw material, notes, voice transcripts, documents, or links into a presentation-ready outline and per-page media decisions before delegating rendering to a downstream skill. Old PPT/PPTX files are not read directly: extract their text first (see scripts/pptx_qa.py's dump/inspect output), then feed that text in as --source. A deck Humanize PPT already rendered goes through --qa-from <rendered.pptx> instead — the presentation checkup, not brief mode.
Positioning
Humanize PPT is a presentation system, born for the talk: an Outline Director (AST audience-state-transfer — every page turn moves the audience forward), a Per-Page Visual-Enhancement Director (real image / SVG diagram / Remotion video), a Production Brief Orchestrator, a Presentation Checkup Runner (演讲体检; formerly the QA loop, CLI flag still --qa-from), and a Presenter-Mode hand-off. The motivation: HTML-PPT template skills are great at concept display but blow a simple idea into a dozen pretty pages, while a real 90-minute talk is ~30 — the pretty shell outruns the content density. Humanize closes that gap: it keeps the beauty (rendered natively by the downstream template skill) and makes it presentable — a line you can stand up and deliver. Downstream template skills own "renders beautifully"; Humanize owns "it's a talk, and someone checked it."
The presentation checkup in one sentence: it does not grade beauty, it grades the outline. It compares every rendered page against its outline page, pulls out the pages that can only be looked at but not spoken from, and keeps going until every page is one the speaker can stand up and present. A failed page, in plain words: a page that holds only a few words and never finishes its point, or a page that fails the audience state transfer it promised (the listener walks out of that page in the same state they walked in). Such a page should not exist; the checkup pulls it out and generates fix instructions.
Humanize is broadly compatible with downstream renderers that can consume plain markdown + JSON. Verified routes are: Chinese HTML → guizang-ppt-skill; English HTML → frontend-slides / beautiful-html-templates; native editable PowerPoint → ppt-master. Other downstreams remain hot-pluggable; support levels live in registry/renderer_registry.json and move only on real output.
It runs before downstream PPT / HTML slide skills and around the post-render presentation checkup. It owns the AST contract, the per-page media decision (does this page need a photo, a system diagram, a 10-second process clip, nothing?), the production brief that the next agent consumes, and the checkup pass on rendered HTML/PPTX. It does not own the rendered deck itself.
There are two human review gates before rendering: the outline preview and the renderer's style gate. HTML routes use Humanize's ≥4 real-cover --style-gallery. PPT Master already owns a mandatory three-stage Confirm UI with native visual previews, so --renderer ppt-master --style-gallery delegates to that gate and writes style_gallery_plan.json + commands/style-gallery/ppt-master-confirm-ui.md rather than duplicating the catalog.
The user calls Humanize PPT once for the brief, hands the brief to a downstream skill for native rendering, then calls Humanize again with --qa-from <rendered.html|native.pptx> to run the 3-iteration presentation checkup. Each iteration writes qa_report.md, fix_prompt.md, and qa_iteration.json. After 3 rounds with remaining failures, status flips to needs-human.
Humanize PPT never copies a downstream skill's template, never injects custom sections into it, and never post-processes rendered HTML or PPTX. Fixes return to the downstream author source. See references/guizang-production-brief-orchestrator.md and adapters/ppt-master-bridge-notes.md.
For public positioning, describe Humanize PPT as a brief orchestrator that pairs with native downstream renderers. Do not frame it as a renderer itself, and do not present it as a "router" that picks the best visual style for the user — that decision lives in the brief, the downstream skill's own templates, and the human's review. When a user only wants a pretty template page, that is a rendering-skill job, not a Humanize job: state the choice, not a prohibition.
AST theory
AST means Audience-State-Transfer.
- Audience: who is listening, what they know, what they resist, and why they would keep listening.
- State: the audience state before and after the deck, plus the core tension that blocks the transition.
- Transfer: the slide-by-slide path that moves the audience from initial state to desired state.
Core sentence:
PPT is not an information container. PPT is an audience state-transfer artifact.
Required output contract
For every Humanize PPT run, produce:
deck_brief.md— audience, goal, tension, success criteria.ast_outline.md— AST map and narrative arc.slide_plan.json— slide-by-slide plan, with per-pagemedia: {image, diagram, video}decision andlayout_hint.speaker_intent.md— what the speaker should do on each slide. Downstream skills consume this as the source for their native speaker notes and presenter shell.asset_manifest.md— Humanize's per-page material decisions: which page needs which kind of asset (image / diagram / video) and for what purpose.video_slots.json— optional Remotion / HyperFrames / native video insertion plan.style_brief.md— visual principle for downstream production.renderer_registry.json— renderer capability snapshot for this run.router_plan.json— selected primary renderer and staged route plan.commands/*.md— bounded instructions for each downstream specialist agent.run_manifest.json— final file inventory, route status, and QA status.<renderer>-production-prompt.md— the downstream entrypoint. In addition to the HTML routes,ppt-masteremitsppt-master-production-prompt.md+ self-containedppt-master-source.mdand disposableoutputs/ppt-master-handoff/copies.outputs/qa/qa_report.md— first-pass QA gate (brief mode) or per-iteration QA findings (QA mode).
QA mode (post-render) additionally produces per iteration:
outputs/qa/fix_prompt.md— downstream-skill-actionable fix instructions.outputs/qa/qa_iteration.json— round number, status (iterate/pass/needs-human), unresolved findings, history.
Style-gallery mode (--style-gallery, pre-outline gate) instead produces and stops:
- HTML routes:
style_gallery.htmlplus ≥4 cover entries. PPT Master: no fake gallery HTML; style selection stays in its native Confirm UI. style_gallery_plan.json— cover candidates for HTML ormode: downstream-confirm-uifor PPT Master.commands/style-gallery/<id>.md— cover command for HTML, orppt-master-confirm-ui.mdfor the native gate.
Recommended OPC workflow (v0.6.4)
O — Outline + Per-Page Media Direction
Humanize PPT: raw material → AST outline + per-page media decision
(deck_brief.md, ast_outline.md, slide_plan.json, speaker_intent.md,
asset_manifest.md, video_slots.json, style_brief.md)
P — Native Renderer Invocation (100% downstream)
zh → guizang-ppt-skill (Style A or B, native; recommended)
en → frontend-slides / beautiful-html-templates (native; recommended)
pptx → ppt-master (native DrawingML; explicit --renderer ppt-master)
other HTML-PPT skills → hot-pluggable, same brief contract
Humanize emits the production prompt and stops. The downstream
skill renders the deck. Humanize does NOT copy templates, does
NOT inject SLIDES_HERE / [必填] replacements, does NOT add
postMessage bridges to the rendered HTML.
Q — Presentation Checkup (演讲体检) on the rendered artifact
Humanize --qa-from <rendered.html|native.pptx> reads the output of P,
compares pages against the outline, scans for failure modes
(references/qa-failure-modes.md), writes qa_report.md and
fix_prompt.md, tracks iteration in qa_iteration.json.
Cap: 3 rounds. After cap with remaining findings, status
flips to needs-human.
C — Complete / Control
Downstream skill native speaker notes + presenter shell + deploy
(Humanize does not own these in v0.6.4 — the brief tells the
next agent to produce them in the downstream skill's own format)
Rules
v0.6.4 invariants (these are the hard rules; if you break any, you're off the v0.6.4 boundary)
- Humanize is brief-only. It writes the renderer production contract and stops. It does not open, copy, or post-process downstream templates or final HTML/PPTX.
- Downstream renderers are 100% native. The next agent follows the downstream skill's own
SKILL.md. The brief tells the next agent which skill to load, which Style (A/B) to use, which layouts to pick from, and which QA gates must pass — but it does not carry template internals. - The presentation checkup caps at 3 iterations. Round 4 with remaining fail findings is
needs-human. The loop does not spin forever; it hands the decision back to a human. - Speaker notes and presenter shell — Humanize produces a baseline
presenter-shell.html; downstream owns the full stage. Humanize owns the semantic source (speaker_intent.md) and now also writesoutputs/presenter/presenter-shell.htmldirectly fromslide_plan.json+speaker_intent.md(usable standalone, even before the downstream deck exists). The downstream skill produces the native speaker notes and fuller presenter console. Humanize does not injectpostMessagebridges or?slide=URL parameters into the rendered HTML. - The production prompt is the downstream entrypoint. It names every support artifact the renderer must read. PPT Master additionally reads
ppt-master-source.md, which freezes the Humanize page story and notes intent without duplicating PPT Master's visual contracts.
Working rules
- Do not let slide renderers consume raw material directly when Humanize PPT can first produce the AST contract.
- Keep the downstream skill as the owner of the full stage view; Humanize's
presenter-shell.htmlis a functional baseline, not a replacement for native consoles. - Absorb AI-writing cleanup principles from humanizer tools, but do not reduce Humanize PPT to text polishing.
- Prefer a small verified workflow over a broad unverified promise.
- For public Skill releases, create/push the repo, install from GitHub locally, run one safe full sample, verify the brief + presentation checkup on the verified known-good checkpoint (https://github.com/LearnPrompt/humanize-ppt/tree/main/examples/03-codex-guizang-native-ink-classic), and only then polish README details.
- For Agent Teams development, emit
router_plan.json,run_manifest.json, boundedcommands/*.md, and the per-renderer production prompt before wiring real downstream Skills. - For WorkBuddy/CodeBuddy team upload packages, do not package demo or rendered HTML outputs as the team zip. The upload zip must mirror a team-plugin structure like
trading-team: root-level.codebuddy-plugin/plugin.json,agents/,skills/,rules/, andsetting.json(plus optionalavatars/,.workbuddy-plugin/,README.md,settings.json). Therules/directory should include a scenario rule file such asrules/<plugin-name>_rules.mdwith frontmatter (description,alwaysApply,enabled,updatedAt,provider) and a<system_reminder>block describing available agents, skills, SOP, and usage requirements. Verify withunzip -lthat the root is notindex.html/assets/screenshots/sourceand is not folder-wrapped unless the target uploader explicitly requires a wrapper directory. - Do not treat HyperFrames/Remotion videos as a single embedded player that replaces PPT content. For Humanize PPT deliverables, video tools are material producers: transitions, explainer clips, before/after comparisons, talking-material inserts, social previews, and fallback stills that fill specific slide needs. The
media.videodecision per page (seeslide_plan.jsonschema) tells the downstream skill which pages want a Remotion clip, for what purpose, and at what duration.
Operational references
references/guizang-production-brief-orchestrator.md— canonical brief specification: what<renderer>-production-prompt.mdmust and must not contain.references/qa-failure-modes.md(+ English mirrorreferences/qa-failure-modes.en.md) — failure-mode catalog for the presentation checkup; code-side source of truth isFAILURE_MODESinscripts/humanize_ppt_v2.py.references/style-gallery-spec.md— the--style-gallerycover-style gate.references/renderer-guidance.md— per-renderer recommended paths and the known-good checkpoint rules.references/renderer-verification.md— per-renderer verification evidence behind the frontmatter one-liners.adapters/ppt-master-bridge-notes.md— native PPTX route boundary and OOXML checkup contract.SPEC.md— engine technical specification: CLI surface, data flow, output contract, style gallery, checkup, media model, renderer registry.- Full annotated index of all references, adapters, version notes, and helper scripts:
docs/index.md.
Local demo
The recommended stable entrypoint is scripts/humanize_ppt.py (versioned scripts remain as compatibility shims). Full CLI examples — brief mode, presentation checkup, native PPTX, outline preview, legacy entrypoints — live in docs/local-demo.md.
--out warning: point --out at a dedicated run directory. Brief mode rebuilds it from scratch every run, but only wipes it automatically when it is missing, empty, or already a previous Humanize PPT run (run_manifest.json / style_gallery_plan.json / outline-preview.md / preview-confirmed.json at its root) — otherwise it refuses and asks for --force.
Frequently asked questions about Humanize PPT
Similar skills
PPTX HTML Fidelity Audit
Ensure your PPTX matches its HTML source perfectly.
HTML PPT Studio
Create professional HTML presentations effortlessly.
Replit Deck
Create visually cohesive decision decks with ease.
Open Design Landing Deck
Create engaging marketing decks with a magazine-style format.
Magazine Web Presentation
Create visually striking HTML presentations with ease.
PPT Template Creator
Transform PowerPoint templates into reusable skills.
