Slide analyze
AI Skills that create PowerPoint from your templates. Preserves brand design, fonts, colors, layouts. For Claude Code & Copilot.
npx -y skills add anyideaz/pptx-skills --skill slide-analyzeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Analyze a PPTX template to extract style guidelines, sample code, and cataloged images into the slide workspace.
SKILL.md
5.8 KB, as published. Nobody here has run it
Skill: slide-analyze
Analyze a PPTX template file to extract fonts, colors, layouts, slide masters, and embedded images. Produces a structured context.json, a guideline.md with design rules, and sample_code.js demonstrating the template style.
Workflow
Step 1 — Accept Input
Ask the user for the PPTX file path if not provided. Confirm the file exists.
Step 2 — Derive Template Name
Derive a filesystem-safe template name from the filename with a timestamp suffix:
- Take the filename without extension (e.g.,
my-corp-template.pptx→my-corp-template) - Replace spaces and special characters with hyphens
- Convert to lowercase
- Append a timestamp in
YYYYMMDD-HHmmssformat (use the current date/time) - Example:
my-corp-template.pptx→my-corp-template-20260407-143022
The timestamp ensures each analyze run produces a unique folder so re-analyzed versions never overwrite each other.
Step 3 — Create Workspace
Create the template workspace directory:
slide-workspace/templates/{template-name}/
Copy the original PPTX file to:
slide-workspace/templates/{template-name}/original.pptx
Step 4 — Check Dependencies
Check that python-pptx is available:
python -c "import pptx" 2>/dev/null || python3 -c "import pptx" 2>/dev/null
If the check fails, run the appropriate setup script:
- Unix/macOS:
bash shared/scripts/setup_deps.sh - Windows:
powershell -ExecutionPolicy Bypass -File shared/scripts/setup_deps.ps1
Step 5 — Extract Template Context
Run the extraction script:
python shared/scripts/extract_template.py \
"slide-workspace/templates/{template-name}/original.pptx" \
"slide-workspace/templates/{template-name}/"
Or on Windows:
python shared/scripts/extract_template.py "slide-workspace/templates/{template-name}/original.pptx" "slide-workspace/templates/{template-name}/"
This produces:
slide-workspace/templates/{template-name}/context.json— full structured contextslide-workspace/templates/{template-name}/images/— extracted image files
If exit code is non-zero, report the error and stop.
Step 6 — Read Extracted Context
Read context.json and note:
presentation.slide_width_inchesandslide_height_inchesfonts_summary.families_used— font names usedtheme.color_scheme— theme colorsslide_masters— number of masters and their namesslide_layouts— number of layouts and their namesimages_manifest— list of extracted images
List the files in images/ directory to confirm images were extracted.
Step 7 — Read Prompt Rules
Read the analysis prompt from shared/prompts/analyze-rules.md.
Read the PptxGenJS API reference from shared/docs/pptxgenjs-api.md.
Step 8 — Generate Guideline and Sample Code
Using the extracted context.json content, images metadata, and the prompt rules from analyze-rules.md as your system instructions, generate two outputs:
guideline.md — A markdown document covering:
- Typography (exact font families, sizes, weights from context)
- Color palette (exact hex codes from theme and shape fills)
- Layout patterns (slide types detected, with descriptions)
- Spacing and alignment conventions
- Imagery style guidelines
- Brand/style rules
sample_code.js — A complete, runnable PPTXGenJS script that:
- Recreates the template structure
- Uses exact font names, colors, and positions from context
- References images via
images['filename'] - Includes one example slide per layout type
- Follows all rules in analyze-rules.md
The JSON response format from analyze-rules.md is { "guideline": "...", "pptxgenjs_code": "..." }.
Step 9 — Save Outputs
Write the generated content to:
slide-workspace/templates/{template-name}/guideline.mdslide-workspace/templates/{template-name}/sample_code.js
Step 10 — Report Summary
Report to the user:
- Template name and workspace path
- Fonts found: list from
fonts_summary.families_used - Theme colors: list from
theme.color_scheme - Masters: count and names
- Layouts: count and names
- Images extracted: count from
images_manifest - Files created: guideline.md, sample_code.js, context.json, images/
Output Structure
slide-workspace/
templates/
{template-name}/
original.pptx ← Copy of input file
context.json ← Structured extraction (fonts, colors, layouts, masters)
guideline.md ← Design guidelines in Markdown
sample_code.js ← Sample PPTXGenJS code demonstrating the template
images/ ← Extracted image files
master0_Logo.png
layout0_bg.jpg
...
Error Handling
- File not found: Ask user to verify the path
- Not a .pptx file: Inform user only .pptx files are supported
- extract_template.py exits with code 3: PPTX parse error — file may be corrupted
- No images directory: Template has no embedded images (normal for simple templates)
- LLM output not valid JSON: Retry or ask user to try again
Notes
- The
imagesvariable in generated code is pre-injected by the runner; never re-declare it effective_backgroundon each slide is the definitive background — use it, not the rawbackgroundfield- Multiple slide masters are common in corporate templates — each gets its own
MASTER_Nname