install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/openai/skills/slides" ~/.claude/skills/comeonoliver-skillshub-slides && rm -rf "$T"
manifest:
skills/openai/skills/slides/SKILL.mdsource content
Slides
Overview
Use PptxGenJS for slide authoring. Do not use
python-pptx for deck generation unless the task is inspection-only; keep editable output in JavaScript and deliver both the .pptx and the source .js.
Keep work in a task-local directory. Only copy final artifacts to the requested destination after rendering and validation pass.
Bundled Resources
: Copy this folder into the deck workspace and import it locally instead of reimplementing helper logic.assets/pptxgenjs_helpers/
: Rasterize ascripts/render_slides.py
or.pptx
to per-slide PNGs..pdf
: Detect content that overflows the slide canvas.scripts/slides_test.py
: Build a contact-sheet style montage of rendered slides.scripts/create_montage.py
: Report missing or substituted fonts as LibreOffice resolves them.scripts/detect_font.py
: Convert SVG/EMF/HEIC/PDF-like assets into PNGs for quick inspection.scripts/ensure_raster_image.py
: Load only when you need API details or dependency notes.references/pptxgenjs-helpers.md
Workflow
- Inspect the request and determine whether you are creating a new deck, recreating an existing deck, or editing one.
- Set the slide size up front. Default to 16:9 (
) unless the source material clearly uses another aspect ratio.LAYOUT_WIDE - Copy
into the working directory and import the helpers from there.assets/pptxgenjs_helpers/ - Build the deck in JavaScript with an explicit theme font, stable spacing, and editable PowerPoint-native elements when practical.
- Run the bundled scripts from this skill directory or copy the needed ones into the task workspace. Render the result with
, review the PNGs, and fix layout issues before delivery.render_slides.py - Run
for overflow checks when slide edges are tight or the deck is dense.slides_test.py - Deliver the
, the authoring.pptx
, and any generated assets that are required to rebuild the deck..js
Authoring Rules
- Set theme fonts explicitly. Do not rely on PowerPoint defaults if typography matters.
- Use
,autoFontSize
, and related helpers to size text boxes; do not use PptxGenJScalcTextBox
orfit
.autoFit - Use bullet options, not literal
characters.• - Use
orimageSizingCrop
instead of PptxGenJS built-in image sizing.imageSizingContain - Use
for equations andlatexToSvgDataUri()
for syntax-highlighted code blocks.codeToRuns() - Prefer native PowerPoint charts for simple bar/line/pie/histogram style visuals so reviewers can edit them later.
- For charts or diagrams that PptxGenJS cannot express well, render SVG externally and place the SVG in the slide.
- Include both
andwarnIfSlideHasOverlaps(slide, pptx)
in the submitted JavaScript whenever you generate or substantially edit slides.warnIfSlideElementsOutOfBounds(slide, pptx) - Fix all unintentional overlap and out-of-bounds warnings before delivering. If an overlap is intentional, leave a short code comment near the relevant element.
Recreate Or Edit Existing Slides
- Render the source deck or reference PDF first so you can compare slide geometry visually.
- Match the original aspect ratio before rebuilding layout.
- Preserve editability where possible: text should stay text, and simple charts should stay native charts.
- If a reference slide uses raster artwork, use
to generate debug PNGs from vector or odd image formats before placing them.ensure_raster_image.py
Validation Commands
Examples below assume you copied the needed scripts into the working directory. If not, invoke the same script paths relative to this skill folder.
# Render slides to PNGs for review python3 scripts/render_slides.py deck.pptx --output_dir rendered # Build a montage for quick scanning python3 scripts/create_montage.py --input_dir rendered --output_file montage.png # Check for overflow beyond the original slide canvas python3 scripts/slides_test.py deck.pptx # Detect missing or substituted fonts python3 scripts/detect_font.py deck.pptx --json
Load
references/pptxgenjs-helpers.md if you need the helper API summary or dependency details.