bestdeejay-design/agent-skills/presentation-maker
- community
Checking that the SKILL.md file is still in the repository.
End-to-end presentations from a topic — outline -> JSON spec -> 16:9 HTML slides (with mandatory Playwright verification) and real .pptx (full 14-type design system), plus strategy presets, PDF export, and deck-quality audits. One command per stage.
Install
npx vskill@latest install bestdeejay-design/agent-skills/presentation-makerSKILL.md
presentation-maker
Build a complete, on-brand presentation from a single topic or outline file. The skill is a pipeline of small, single-purpose scripts — one command per stage — so each step is inspectable, debuggable, and composable.
Russian triggers:сделай презентацию,презентация,слайды,pptx,сделай доклад,собери слайды,структура слайдов,аутлайн презентации,16:9 слайды,презентация в powerpoint.
Pipeline
Дека НЕ считается готовой, пока не пройдены все четыре gate: verify_slides.py PASS, fit_solver PASS внутри build_html.py (смотри .fit_report.json), vision_qa.py finalize PASS (реально просмотрено, не имитация), и qa_pptx.py PASS для pptx-варианта. content_profile.py и creative_brief.py также можно запускать отдельно (для отладки/просмотра решений) — build_html.py их не требует как отдельный шаг, но выведет те же .profile.json/.brief.json сам.
Every stage reads/writes the same deck.json contract, so you can regenerate any artifact after editing the spec.
Stage commands
All commands run from the repo root. Scripts live in scripts/.
1. Strategy (optional but recommended)
Flags: --goal (pitch|consulting|keynote|report|edu), --audience, --topic, --language (ru|en), --list, --show <goal>. If goal is omitted it is inferred from audience/topic keywords, else defaults to pitch. The chosen strategy (arc / mood / density / palette_name / layouts) is auto-applied by deck_md.py when the matching frontmatter fields are absent.
2. Outline → spec
Flags: positional md (topic or outline file), --out (default deck.json), --goal, --audience, --tone, --palette (theme name or mood), --lang/--language. The outline format is documented in references/strategy.md; in short: a leading YAML-ish frontmatter (title, goal, audience, language, theme, density, topic) followed by slide blocks separated by a line containing only ---, each starting with # Headline.
3. HTML slides (16:9)
Builds from the modular base (templates/base.html — tokens, typography, components, navigation, all pattern/composition CSS included). Internally runs content_profile → creative_brief → composer (constrained by both) → fit_solver (geometry retry, up to 3 attempts per slide) before writing the final HTML — see the Pipeline diagram above. Writes slides.profile.json, slides.brief.json, slides.fit_report.json next to the output for inspection. If any slide still fails fit after retries, the build succeeds but prints the failing slide + reason to stderr — check .fit_report.json before treating the deck as done. Output is a self-contained 16:9 deck.
4. Verification gate (MANDATORY)
Runs in real Chromium (Playwright) and checks, per slide: a heading + non-empty content, no horizontal overflow, cards/rows hold their content (no clipping or spill), text containers do not clip, and keyboard navigation switches slides. Exit 0 = pass; exit 1 = fail.
4b. Visual QA gate (MANDATORY) — vision_qa.py
Screenshots every slide (via .active toggling, waiting out the CSS transition) and prints the fixed 7-point rubric + the list of image paths. This script cannot judge the images itself — only the agent running the skill has vision. The agent MUST view each screenshot (image-reading tool, not by re-reading the JSON) and score it against the printed rubric, then record every verdict:
finalize exits 0 only if every slide has a recorded verdict AND all are PASS. A slide with no recorded verdict is FAIL ("не проверено"), never a silent pass — there is no structural auto-pass fallback. Ни одна презентация не считается готовой, пока не пройдены все четыре gate: fit_solver PASS (Слой 3, внутри build_html.py — см. .fit_report.json), verify_slides.py PASS, vision_qa.py finalize PASS (Слой 4, реально просмотрено агентом), qa_pptx.py PASS (для pptx-варианта).
5. PowerPoint
Draws a real .pptx via python-pptx on a 1600×900 design canvas (13.333×7.5", 16:9, PX=7620 EMU/px): all 14 slide types rendered through the shared PPTX design system — eyebrow, ghost page numbers, chrome (logo + page indicator), decor ovals, tinted "sandwich" bookends, shadowed cards, numbered step ovals, square bullet markers, oversized metrics/quote/hero numbers. Fonts are Arial (never Inter — LibreOffice substitutes matter for QA). See "PPTX design system" below for the full element set and contracts.
Checks per slide: shapes inside canvas, content above BOTTOM_STOP, no text-overlap, tables fit; --render additionally exports JPEGs via LibreOffice → pdftoppm for human/vision review. Design elements named ghost*, decor*, chrome-* are exempt from bounds/content checks.
5b. Extern linter gate — intern (optional but recommended)
`intern` (MIT) is an open-source CLI linter for .pptx: alignment (CLOSE_X/CLOSE_Y), text quality (DOUBLE_SPACE, EMPTY_TEXTBOX, REPEATED_WORD), margins, font/color variety. It catches issues our geometric gate does not model — it already found a real bug (triple spaces around · in the footer).
Install once (any of):
Run through our wrapper (it whitelists design-system elements by shape name — ghost*, decor*, chrome-*, quote-*, process-card, step-num, toc-* — and can drop token rules for token-driven decks):
--skip-token-rules ignores FONT_SIZE_VARIETY/COLOR_VARIETY — our design system intentionally uses a token hierarchy (eyebrow 11pt … metrics 64pt, quote mark 120pt). For non-token decks omit it to keep those checks.
6. PDF export
Renders the same themed `slides.html` into a multi-page 16:9 PDF (one slide per page) using Playwright — no separate layout/theme is re-implemented, so the PDF is visually 1:1 with the HTML. See references/pdf.md.
7. Quality audit
Deterministic, browser-free aesthetic gate (exit 0/1). Checks WCAG contrast, no raw hex outside :root, ≤4 accent roles, assertion headlines, words-per-slide budget, and a single mood across the deck. See references/audit.md.
JSON spec schema (deck.json)
Slide object (content)
Each slide has a type (or auto/omitted → inferred from content) plus type-specific fields. Common types and their key fields:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/presentation-maker/SKILL.md
Popularity
- Repository stars
- 6
- 7-day trend score
- 10
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/bestdeejay-design/agent-skills/presentation-maker)