Route (python-pptx programmatic)
- python-pptx programmatically outputs editable pptx (
assets/themes.py/patterns.md/examples/build_deck.py), data-intensive, batch page generation, and table-intensive cases all take this route. When a stronger sense of design is needed, PptxGenJS/Marp/reveal.js/Beamer can be borrowed (see "Implementation Tools" below), but Light's built-in runnable assets take python-pptx as the preferred route. - Three hard boundaries(cross-referenced with m11/a10, red lines): ① Data charts always use m11/m06 real data for charting, never let generative models draw data charts (they will fabricate values) ② The paper figure pipeline strictly forbids any AI-generated images (publisher ban, see m11
light-figure-drawing/references/figure_integrity.md"AI-Generated Image Policy" section) ③ Text always goes into native text boxes, never baked into images (otherwise "editable" is fake).
First decide three things
- Scenario and audience: defense (reviewers/advisor) vs pitch (investors/judges) vs report — determines content depth and pacing.
- Narrative logic: choose a skeleton (problem-method-results-value / pain point-solution-market-team / background-work-contribution-outlook), first list an outline (one core message per page).
- Visual style: choose a style by theme from db06 (academic/tech/agriculture/medical/business/minimal/light/dark/data visualization/pitch), define palette + font pairing + icon style, keep it unified throughout.If the project has
databases/db09-projects/projects/<project_name>/palette.json, its colors must be used(a visual SSOT instance shared with paper figures m11/frontend a05; schema see db09 README), ensuring the PPT uses the same colors as paper figures/frontend, not a separate set. Layout/narrative methods (action-title/one idea per page/data-ink/time-control formula) take the db06 card as SSOT; this SKILL does not write another copy; for tool star ratings/licenses/links, do not trust local snapshots, rundatabases/db06-ppt-styles/scripts/resource_signal.pyfor real-time verification (GitHub stars+spdx/PyPI license/URL liveness); on conflict trust online, when offline use snapshots marked stale, and do not block output.
Page types and layout
Cover (title/author/affiliation/date), agenda, transition pages, content pages (one idea per page + whitespace), chart pages (large chart, little text), process pages, timeline pages, comparison pages, team pages, conclusion pages, acknowledgments/QA pages. Layout principles: alignment, contrast, repetition, proximity; visual hierarchy (title > key points > details); controlled information density per page; highlight one key point. Specific scales (borrowed from the Anthropic PPTX skill): one primary color occupies 60–70% of visual weight + 1–2 secondary colors + 1 sharp accent color; dark colors for cover/conclusion, light colors for content (sandwich structure); lock in one repeated visual motif (rounded image frame/color-ring icon/single thick side border) and carry it through the whole deck. Font sizes: title 36–44pt, section title 20–24pt, body 14–16pt, notes 10–12pt; margins ≥0.5", block spacing uniformly 0.3" or 0.5". Body text always left-aligned, only titles centered. Every page must have a visual element; pure text pages are forbidden. Explicit taboos: do not add decorative underlines below titles (a sign of AI flavor, use whitespace instead); do not repeat the same layout on every page; do not default to blue (choose colors by theme); when text boxes need to align with shapes, set margin=0.
Academic report special track (papers/defenses/conferences)
- Action title: Write each page title as a complete sentence stating the conclusion, not a topic label (write "All three cohort treatment effects are significant" instead of "Results").
- Ghost deck test: Reading only all the titles in sequence must be able to tell the entire argument; if not, revise the outline first before making pages.
- Choose one of three narrative skeletons: SCR (Situation-Complication-Resolution) / funnel + answer (background→gap→method→findings→significance) / answer first (for time-pressed judges).
- One report tells only one argument, everything else goes into the appendix; each page has one responsibility, one exhibit. Results page: chart on the left, interpretation bullets on the right; annotate key findings directly on the chart (arrows/highlighted regions/"↑23%"/color change for the focus sequence); body text ≤~40 words/page; end with Conclusions rather than "Thank You".
- Academic color schemes are more restrained: white background, a single sans-serif font, at most three colors (primary
1F4E79+secondary2E75B6+accent), no decorative icons/gradients.
Implementation tools (as needed, see a09)
Choose based on "whether editable PPTX is needed / text-based version control / design intensity":
- python-pptx(Python,The preferred route for this skill's built-in runnable assets):
Presentation()→slides.add_slide(slide_layouts[i])→ placeholders/add_textbox/add_picture/add_table/add_chart→save(); unitsInches/Pt, colorsRGBColor. Strong at data-driven batch page generation, table-intensive, connecting to the Python analysis pipeline of m06/m11; no gradients (use gradient images as backgrounds), cannot render PDF itself (go through LibreOffice). - PptxGenJS(Node):
new pptxgen()→addSlide()→addText/addShape/addImage/addTable/addChart→writeFile(), coordinates = inches. Usebullet:true+breakLine:truefor list items (avoid Unicode•); setmargin:0to align with shapes; shadow offset must be ≥0, color uses 6-digit hex without#; no gradients (use gradient images as backgrounds). The preferred choice for creating Anthropic general decks "from scratch";the JS route has no runnable assets in this skill, go directly to a09 → anthropics/skills' pptxgenjs.md。 - Marp(Markdown): set front-matter
theme/paginate/headingDivider/style,---for pagination,<!-- -->for notes;npx @marp-team/marp-cli deck.md --pdf|--pptx(goes through headless browser).--pptxBy default each page is rasterized into an image and cannot be edited again; if editable text is needed add--pptx --pptx-editable(styles may not be fully reproduced). - reveal.js(HTML):
Reveal.initialize({plugins:[Markdown,Notes,Math]});sectionfor pagination, nesting = vertical;?print-pdfexports PDF; strong interactivity/animation but distribution is not as good as PPTX. - Beamer(LaTeX, academic):
\documentclass{beamer}+\usetheme{};frame/columns/block/alertblock; overlays use\item<1->or\pause; strong formulas/BibTeX, slow visual iteration. - Poster:LaTeX
beamerposter(\usepackage[orientation=portrait,size=a0,scale=1.4]{beamerposter}) ortikzposter(\block{}{}); or PPTX poster (set the slide size to a single A0 page, python-pptx setslide_width/height). A0=841×1189mm, photos ≥150–300 DPI, embed fonts to prevent misalignment. - Design/AI-oriented(workflow can be borrowed, closed-source): Canva Connect API (
POST /autofillsbrand template batch filling, requires Enterprise), Gamma Generations API (POST /v1.0/generationsprompt→deck, canexportAs:pptx/pdf), Beautiful.ai (rule-driven adaptive layout concept), Slidesgo (template inspiration filtered by industry/style/color). - 3D rendered illustrations (for roadshows/presentations): Blender (open-source and free, procedural modeling and renderingnot AI image generation; there is the community ahujasid/blender-mcp ~22.7k★ and the Blender Foundation's official Lab MCP, requires installing Blender locally) can produce 3D product/installation/structural schematic renders, giving startup roadshows/Challenge Cup a sense of presence.Strictly observe three hard boundaries: 3D rendered images are only forDecorative/display images, not used as data figures (data figures follow m11 real data), do not enter the paper figure pipeline, and text still lands in native text boxes. For 3D visualization of scientific data/structures, see the Blender section of m09 (figure-planning).
- Process/architecture/roadmap: use Draw.io MCP(diagram-as-code, official jgraph/drawio-mcp) to produce flowcharts/system architecture diagrams/technical roadmaps, and export PNG/SVG to embed in PPT—neater than manually placing python-pptx shapes, editable and reusable, and in line with the "big figures, few words" principle. Still observe the red line: if the text in the figure is a key title/key point, put it in a native PPT text box; data figures follow m11.
- One-click conversion from paper to deck: choose one of two routes—the image-rendering route (Paper2Slides/HKUDS, RAG→analysis→planning→rendering, staged checkpoints) suits decks balanced between text and images; the LaTeX/Beamer route (takashiishida/paper2slides, flatten source→LLM produces Beamer→chktex lint→compile) suits hardcore papers heavy in formulas. For the complete CLI/parameters/empirical lessons of both, see
references.md(the two paper2slides sections). Reuse paper figures (m11) for charts and adapt for projection: redraw from the paper rather than pasting PDF figures directly, enlarge axis labels to ≥16pt, and enhance contrast. - Image-generation boundary (a hard red line mutually identified with m11 figure_integrity): the aforementioned AI image-generation/rendering routes (products of external tools such as Gamma and Paper2Slides)are only for PPT/pitch/frontend inspiration images, and no product may enter the paper figure pipeline. Paper figures always follow m11 (light-figure-drawing) data-driven drawing—the three leading publishers Nature/Science/Elsevier explicitly prohibit AI-generated paper images (see light-figure-drawing
light-figure-drawing/references/figure_integrity.md"AI-generated image policy" section). If experimental data figures are to be placed in a PPT, redraw and adapt them for projection from m11 finished products; do not use generative models to create data figures.
Presentation pacing
Provide speaker notes and suggested timing for each slide; mark "must say/can omit"; control the total number of slides to match the duration (defenses are often 8–12 min ≈ 10–15 slides).
Aesthetic self-check (before delivery)
□ Consistent style (color/font/icons) □ One key point per slide □ No long blocks of text □ Charts clear and projectable □ Neat alignment □ Coherent logic □ Prominent key points □ Slide count matches duration. Academic add-ons: □ Every slide has an action title □ Ghost deck test passed □ Every results slide has one figure with a "so what" annotation □ Borrowed figures/data have in-slide citations □ There is a References slide at the end □ Ends with Conclusions □ Body text ≥20pt.
This skill comes with runnable assets (use them directly, don't reinvent them)
assets/themes.py: theCOLORS/FONTSconstant blocks for db06's ten major themes (academic/tech/agriculture/medicine/business/minimal/light premium/dark high-contrast/data visualization/competition pitch), with a unified 8-field color palette (bg/surface/primary/secondary/accent/text/muted/line) + font pairings.from themes import get_theme; t=get_theme("academic"). dataviz additionally comes with the Okabe-Ito colorblind-friendly sequence.python themes.pyself-test prints the full table.patterns.md: layout snippets that python-pptx can run directly—cover/table of contents/transition/content/results (figure on the left, interpretation on the right)/comparison (highlighted list table)/timeline/conclusion/References, includingfill_bg(full-bleed rectangle method without a native slide background),add_text(margin=0)、rect, and other shared utility functions.add_textuses_set_run_fontsto set both Latin and East Asian fonts (Chinese does not fall back to the default heiti)、style_chartapplies theme colors to native charts (does not use Office's default blue-orange-gray),add_figure_with_captionimports m11 finished figures + captions (data figures are not redrawn in the PPT).examples/build_deck.py: End-to-end generation of a 6-page academic pptx (cover + content + results + comparison +conclusion wrap-up+References, aligned with the "Conclusions wrap-up without writing Thank You" rule), each page with speaker notes,add_textwith both Latin + CJK fonts set, comes with a ghost deck test.python build_deck.py --theme tech -o tech_demo.pptx, runs without external data.scripts/thumbnail.py: pptx→thumbnail grid for visual QA. Prefer LibreOffice pixel rendering (requires soffice + PyMuPDF/pdftoppm); when soffice is absent, automatically fall back to pure python (read python-pptx geometry and use PIL to draw layout diagrams), enough to catch overlap/overflow/blank pages/misalignment/layout duplication.python scripts/thumbnail.py deck.pptx --cols 4。scripts/pptx_eval.py:Quantifiable PPT evaluation(borrowing ideas from PPTAgent/PPTEval). Upgrade visual QA from eyeballing to scoreable, regressable—content density/design consistency/coherence three-dimensional deduction system (against this section's hard criteria: ≤7 bullet points per page, font size range, number of colors, no text-only pages/same layout), scoring page by page + deduction reasons.python scripts/pptx_eval.py deck.pptx。Only structural metrics are calculated; color taste/narrative quality/whether charts use real data still require manual + thumbnail eyeball review. Complementary to thumbnail: thumbnail is for humans to look at, pptx_eval gives scores.scripts/to_pdf.py: soffice headless wrapper for pptx→pdf. LibreOffice is not installed in this environment; the script will explicitly report unavailable and give installation guidance + alternatives (no silent fake success).python scripts/to_pdf.py deck.pptx,--checkonly detects the engine.scripts/pacing.py:Defense/roadshow duration estimation. Read the duration markers in each page's speaker notes (40s/1.5min/[90s]) and sum them to estimate total duration, compare against--limitto give OK/overtime + mark pages with heavy duration (imbalanced allocation); pages without markers fall back to word count × speaking rate.python scripts/pacing.py deck.pptx --limit 12. Duration is an estimate; be sure to do a live timed rehearsal—the script only catches obvious overtime/imbalance.
QA (act as a bug hunter, not as confirmation)
Assume there are problems after the draft is produced. ① Content QA:python -m markitdown out.pptx check for omissions/typos/order, and grep -iE "xxxx|lorem|ipsum" catch leftover placeholders. ② Visual QA: prefer python scripts/thumbnail.py out.pptx to produce a thumbnail grid and scan page by page (layout diagrams can be produced even without soffice); when LibreOffice is available, python scripts/to_pdf.py out.pptx convert to PDF then pdftoppm -jpeg -r 150 out.pdf slide produce high-fidelity images, and check each image for overlap/text overflow/low contrast/misalignment/insufficient margins/decorative lines pressing on two-line titles; if there is a sub-agent, hand it over to it (fresh eyes). ③ After changes, re-render only the affected pages, looping until a full round has no new problems before finishing.
Connections
Content comes from m07 (paper body)/m06 (results), charts come from m11, competition roadshows come from m17; visual style is coordinated with a05/m11 (terminology and metrics unified by a07); file parsing borrows a01; version and style registration in db06/db09. Before delivery, pass the a08 (light-self-review) self-check gate.
Deliverables
Complete PPT (source file + export) + narrative outline + speaker notes for each page + style description (registered in db06/db09).
Artifact names written to disk (CONVENTIONS §6.1, downstream orchestrator/a08 schedules by name):slides/(source pptx + export) + slide_outline.md。
Compliance
Commercial templates: only learn the layout, do not directly copy (CONVENTIONS §5); final output must be original. Content must be consistent with the paper/project (a07). Closed-source/template sources such as Canva/Gamma/Slidesgo: borrow workflow and layout inspiration, but license terms must be confirmed first; proprietary skills such as Anthropic/academic-pptx: only learn the method, do not copy scripts.
For item-by-item hardcore notes on tools (real endpoints/parameters/pitfalls), see references.md.