pptx-penfick
Skill12 starsChanged 53 days agoMITView on GitHub
Generate PowerPoint decks from a structured JSON outline (page-by-page types, titles, bullets). Use when the user asks to create, build, or export a PPT/PPTX/ 演示文稿/幻灯片/deck/presentation. CLI: pptx-penfick (alias pptskill). Produces local .pptx plus structural QA. Does not invent logos or real product photos.
In this repositoryOne other file it gives its agents.
- vision-supportSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
If you cannot inspect PNGs, still run qa --visual and say 「仅结构/几何 QA,未做像素级目检」 in the reply.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
pptx-penfick
Deterministic PPT renderer: JSON outline → .pptx + QA. Agent owns research and outline content; CLI owns layout, CJK fonts, and validity.
CLI command:
pptx-penfick(aliaspptskillif installed that way). Requires the CLI package installed (see skill README).
Iron laws (follow every deck job)
- Output only under the current project/workspace (
cwdor the project the user named). Never%USERPROFILE%/ Desktop unless the user asks. - User materials first — if facts/structure/numbers are provided, do not web-search; fill gaps by asking one question or marking 示意.
- Never copy facts/numbers/segments/people from example outlines into another topic. Do not open
examples/during generation jobs when you already know the schema. - Before render:
pptx-penfick validatethenpptx-penfick content-check(use--expect-pageswhen the user asked for N pages;--allowonly if the topic truly includes a deny term). - Deliver the
.pptx: sayPPT 已生成+ absolute path + one-line summary; callpresent_files(or attach) with the.pptxfirst if the host has it. Never end on outline/QA only. - If you cannot inspect PNGs, still run
qa --visualand say 「仅结构/几何 QA,未做像素级目检」 in the reply.
Workflow
- Clarify topic, page count, audience, language, theme (发布会→dark-keynote;汇报→light-corporate;课件→education-blue;路演→pitch-green).
- Output dir under the project:
<project>/<slug>/(outline, assets, qa, pptx). - Research policy: materials first (Iron laws). Unverified numbers → 示意.
- Draft outline JSON — one thesis per slide; prefer
chart/image_text/compare/kpi; every slidenotes. - Assets (if
image_text): local files →pptx-penfick assets import …→assets check. - Validate + content-check:
pptx-penfick validate outline.json pptx-penfick content-check outline.json --expect-pages 15 - Render:
pptx-penfick render outline.json -o <path>.pptx(optional--ensure-contrast). - QA:
pptx-penfick qa out.pptx --visual --json qa-report.jsonthenexport-pngif needed;update-slideto fix. - Deliver per Iron law 5.
Slide types (summary)
cover · agenda · section · title_body · two_col · timeline · data_cards · chart · image_text · compare · kpi · quote · closing
Themes: dark-keynote · light-corporate · education-blue · pitch-green · minimal-mono · finance-navy · warm-editorial
Custom theme JSON / per-slide theme / theme_tokens / logo extract / theme fix — see CLI: pptx-penfick --help, pptx-penfick themes.
CLI reference
pptx-penfick validate <outline.json>
pptx-penfick content-check <outline.json> [--expect-pages N] [--allow terms]
pptx-penfick render <outline.json> -o out.pptx [--theme …] [--ensure-contrast]
pptx-penfick qa <out.pptx> [--visual] [--json report.json]
pptx-penfick export-png <out.pptx> --out-dir qa/
pptx-penfick update-slide <outline.json> --index N --patch patch.json
pptx-penfick assets check|import …
pptx-penfick theme extract|fix …
pptx-penfick themesExit codes: 0 ok · 2 schema · 3 render/export · 4 QA / content-check failed.
MCP: pptskill-mcp / python -m pptskill.mcp_server.
Out of scope
- CLI image download/generation (agent may fetch then
assets import) - Vision auto-fix loop
- In-place edit of existing
.pptx
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

