Slide edit
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-editAssembled 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
Edit an existing generated presentation by modifying its PPTXGenJS code based on user instructions, then regenerate the PPTX file.
SKILL.md
5.6 KB, as published. Nobody here has run it
Skill: slide-edit
Edit an existing generated presentation. Reads the current PPTXGenJS code, applies the requested changes, and regenerates the PPTX file.
Prerequisite: The presentation must be generated first using the slide-generate skill.
Workflow
Step 1 — Accept Input
Gather from the user (ask if not provided):
- Presentation name: Which presentation to edit (list available presentations in
slide-workspace/presentations/if unsure) - Edit description: What changes to make (e.g., "change title font to red", "add a chart on slide 3", "remove slide 5")
Step 2 — Verify Presentation Workspace
Check that the presentation workspace exists and contains the required files:
slide-workspace/presentations/{presentation-name}/
code.js ← required (current code to edit)
outline.md ← reference for slide structure
If missing, inform the user to run slide-generate first.
Step 3 — Identify Template Used
Determine which template was used for this presentation:
- Check
preamble.js(if exists) for comments like// Template: template-name - Check
code.jsfordefineSlideMastercalls or image references that match a template name - If still unclear, ask the user which template was used
The template workspace is at: slide-workspace/templates/{template-name}/
Step 4 — Read Current State
Read from the presentation workspace:
code.js— the current complete PPTXGenJS codeoutline.md— slide structure reference
Read from the template workspace:
context.json— template structure dataguideline.md— design rulessample_code.js— style reference
List all files in slide-workspace/templates/{template-name}/images/ to get available image filenames.
Step 5 — Read Prompt Rules
Read prompt rules from:
shared/prompts/edit-rules.md— editing-specific rulesshared/prompts/shared-pptxgenjs-rules.md— shared generation rules
Read the API reference from shared/docs/pptxgenjs-api.md.
Step 6 — Apply Edit
Using edit-rules.md as system instructions, generate the COMPLETE updated PPTXGenJS code:
Provide as context:
- Current
code.jscontent - User's edit description
- Template
guideline.md - Template
context.json(with background_color fields) sample_code.jsreference- Available image filenames
Key editing rules:
- Output the COMPLETE updated code (not a diff or partial code)
- Preserve the overall template style unless user asks to change it
- Make ONLY the requested changes
- Keep
pptx.writeFile({ fileName: 'output.pptx' })at the end - Preserve
fill.transparencyvalues - Never re-declare the
imagesvariable
Step 7 — Save Updated Code
Back up the old code first:
slide-workspace/presentations/{presentation-name}/code.js.bak
Write the updated code to:
slide-workspace/presentations/{presentation-name}/code.js
Step 8 — Check Dependencies
Check that pptxgenjs is available:
node -e "require('pptxgenjs')" 2>/dev/null
If it fails, run the setup script:
- Unix/macOS:
bash shared/scripts/setup_deps.sh - Windows:
powershell -ExecutionPolicy Bypass -File shared/scripts/setup_deps.ps1
Step 9 — Regenerate PPTX
Generate a timestamped output filename in output-YYYYMMDD-HHmmss.pptx format (use the current date/time):
Execute the updated code:
node shared/scripts/run_pptxgenjs.js \
"slide-workspace/presentations/{presentation-name}/code.js" \
"slide-workspace/templates/{template-name}/images" \
"slide-workspace/presentations/{presentation-name}/output-{timestamp}.pptx"
Step 10 — Report Result
Report to the user:
- Changes made (brief summary)
- Output file:
slide-workspace/presentations/{presentation-name}/output-{timestamp}.pptx - Any warnings from the runner
- Note: previous code backed up to
code.js.bak
Error Handling
- Presentation not found: Prompt user to run
slide-generatefirst - Template not identifiable: Ask user which template was used
- Runner exits with code 3: JavaScript error in generated code — inspect the error and offer to fix
- Runner exits with code 4: No .pptx produced — check that
pptx.writeFile()is present - Revert needed: User can restore from
code.js.bakif the edit made things worse
Multiple Edits
For multiple sequential edits:
- Each edit reads the CURRENT
code.js(already incorporating previous edits) - The backup (
code.js.bak) always reflects the PREVIOUS state before the latest edit - The
outline.mdis not automatically updated — if slide structure changes significantly, update it manually or ask the user if they want the outline updated
Notes
- The
imagesvariable is pre-injected by run_pptxgenjs.js — never re-declare it - Each slide's
background_colorfrom context.json is the definitive background — always set it explicitly - Layout images from
slide_layouts[layout_index].imagesmust be present on every slide using that layout - Preserve
fill.transparencyvalues — do not drop transparency when editing shapes
Gives 0 of the 12 instructions most slides presentations skills give
Counted across 568 of the 571 authors here whose files we hold, read 2026-08-06
- include a visual element on every slidein 52 of 568, across 21 files
- put one idea per slidein 50 of 568, across 42 files
- state the design approach before writing codein 38 of 568, across 8 files
- validate XML immediately after each editin 37 of 568, across 7 files
- rasterize gradients and icons as PNG images before referencing themin 37 of 568, across 7 files
- generate and inspect thumbnails to validate layoutin 37 of 568, across 7 files
- commit to a single visual motif across every slidein 37 of 568, across 12 files
- use web-safe fonts onlyin 36 of 568, across 7 files
- keep 0.5 inch minimum marginsin 35 of 568, across 9 files
- use two-column layout for slides with charts or tablesin 34 of 568, across 5 files
- save a template inventory analysis to a filein 33 of 568, across 4 files
- use subagents to visually inspect rendered slidesin 33 of 568, across 9 files
Said here and by no other author read
- ask user for presentation name and edit description
- verify presentation workspace exists
- identify template used for presentation
- read current code and template workspace files
- read prompt rules and api reference
- generate complete updated pptxgenjs code
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.