import
Scannednpx machina-cli add skill michaelengland/deckwright/import --openclawImport
Import an existing PowerPoint presentation by reverse-engineering it into an editable PptxGenJS generation script. This is the entry point for editing decks that weren't created through deckwright.
Prerequisites
- User has a
.pptxfile they want to edit or improve
Process
1. Identify the Source File
Ask the user to provide or confirm the path to the .pptx they want to edit. If they've already mentioned it, confirm:
"I'll import
[filename.pptx]for editing. Is that the right file?"
Do not proceed without a valid file path.
2. Read the Import Reference
Read ${CLAUDE_PLUGIN_ROOT}/references/pptx-import.md for the full import workflow, capabilities, and known limitations.
3. Run the Reverse-Engineering Script
Follow the "Running the Script" section in ${CLAUDE_PLUGIN_ROOT}/references/pptx-import.md — it covers installation, invocation, and the expected output folder structure. Check the exit code. If non-zero, read stderr and diagnose the issue using the Troubleshooting section in that reference.
4. Generate Thumbnails from the Original
Before running the generated script, convert the original .pptx to slide images as a visual baseline for comparison. Follow the PDF Export and Visual Validation workflow in ${CLAUDE_PLUGIN_ROOT}/references/pptx-generation.md, saving output to decks/<name>/original/slides/.
5. Validate and Fix (Loop)
Follow the same regenerate-compare-fix loop used in /deckwright:present: regenerate, compare slide-by-slide against the originals, fix differences, repeat.
- Install PptxGenJS if needed:
npm install pptxgenjs - Run the generated script from the deck folder:
cd decks/<name> && node <name>.js - Convert the regenerated
.pptxto slide images and a thumbnail grid (same validation workflow, output to the deck folder'sslides/directory as usual) - Compare slide-by-slide against the original thumbnails. For each slide, check:
- Is the text content and positioning correct?
- Are colors and fonts right?
- Are images present and correctly placed?
- Are shapes (backgrounds, dividers, accent bars) reproduced?
- Is the overall layout and whitespace faithful?
- If fixable differences exist — edit the generation script to correct them and regenerate. Common fixes:
- Adjust
x/y/w/hvalues for positioning - Fix font sizes or colors
- Add missing shapes or backgrounds
- Correct text content or formatting
- Adjust
- Repeat until the regenerated slides match the original as closely as possible.
6. Document Remaining Differences
Once you've fixed everything you can, catalogue what remains. Read the // WARNING: comments in the generation script and compare them with any visual differences you can still see.
Present a clear summary to the user:
"Import complete. Here's the final comparison:
- [N] slides match the original — no visible differences
- Remaining differences:
- Slide 3: Gradient background converted to solid
#1A1A2E(PptxGenJS doesn't support gradients)- Slides 1, 5, 12: Font "Calibri" substituted with "Arial" (web-safe only)
- Slide 8: SmartArt diagram simplified to basic shapes
- [any other differences]
These are inherent limitations of the import — they cannot be fixed automatically. You can adjust them manually in the generation script if needed."
7. Handoff
The generation script is now the source of truth for the deck. Present the user's options:
"Your presentation is imported. You can now:
- Edit directly — Tell me what to change and I'll modify the generation script
- Use /deckwright:narrative to rethink the story
- Use /deckwright:craft to restructure the content
- Use /deckwright:design to redesign the visual direction
- Use /deckwright:present to regenerate after any changes"
Principles
- Mechanical, not interpretive — The import produces code, not creative documents. It is a translation, not an analysis.
- Validate before proceeding — Always regenerate and compare before declaring the import complete.
- Surface limitations honestly — Do not hide what was lost in translation. Report font substitutions, gradient conversions, and skipped elements explicitly in the final summary.
- The generation script is the source of truth — After import, all edits flow through the
.jsfile.
Source
git clone https://github.com/michaelengland/deckwright/blob/main/skills/import/SKILL.mdView on GitHub Overview
Import an existing PowerPoint by reverse-engineering it into an editable PptxGenJS script so it can be edited and regenerated through the deckwright pipeline. This is the entry point for editing decks that weren’t created inside deckwright.
How This Skill Works
Identify the source pptx file path and confirm it before proceeding. Run the reverse engineering script as documented in the CLAUDE_PLUGIN_ROOT references pptx-import.md to generate a PptxGenJS script and output folder. Generate thumbnails from the original to decks/name/original/slides, then use a regen and compare loop to fix differences until the regenerated deck matches the original. Follow the Running the Script section in the reference for installation, invocation, and troubleshooting.
When to Use It
- You want to edit an existing .pptx that was created outside deckwright.
- You need to reverse-engineer a presentation for editing.
- You want to import a PowerPoint into the deckwright workflow.
- You plan to invoke /deckwright:import to start the flow.
- You are migrating a legacy deck to a PptxGenJS based workflow for regeneration.
Quick Start
- Step 1: Identify the path to the .pptx and confirm it is the right file.
- Step 2: Run the reverse-engineering script to generate the PptxGenJS script and output folder.
- Step 3: Regenerate the deck, compare slides to originals, and iterate until differences are resolved.
Best Practices
- Confirm the exact .pptx file path before starting import.
- Read and follow the full import workflow documented in the references.
- Run the reverse-engineering script and verify the exit code.
- Regenerate and compare slide-by-slide against original thumbnails before finalizing.
- Document remaining differences and adjust the generation script if needed.
Example Use Cases
- Import a client PowerPoint to edit branding and content in deckwright.
- Reverse-engineer a legacy deck for modernization with PptxGenJS.
- Migrate slides from outside tools into the deckwright new pipeline.
- Import a deck and regenerate with updated fonts and colors.
- Audit differences after import and log actionable fixes for the script.