Skill v1.0.0
currentAutomated scan100/100name: awesome-ppt description: Core Awesome PPT workflow for image-model-rendered PowerPoint decks. Use when the user invokes $awesome-ppt or asks to make a polished PPT/PPTX by designing full-slide image prompts where gpt-image/imagegen renders the complete slide including all titles, body text, labels, and visual design, assembling those rendered slide images into a PPTX, and, only in editable mode, using ppt-master to rebuild the image-rendered deck as native editable text, shapes, charts, and objects. metadata: version: "1.0.0"
Awesome PPT
Overview
Build a PPTX by planning the deck, generating one complete slide image per page with imagegen, then assembling those rendered slide images into PowerPoint.
V1 is image-model-first: every visible title, subtitle, bullet, label, caption, and callout must be included verbatim in the image prompt and rendered by the image model. Do not create a blank/background image and add the main content later as PowerPoint text.
The first assembled PPTX is editable at the slide/image object level. Native editable text overlays are optional helper layers only; they are not the source of visible content in the default image-first workflow.
When the user wants a fully editable deck, prefer the $awesome-ppt-editable command. It runs the ppt-master optimization pass after the image-first PPTX is built. This is a reconstruction pass: ppt-master uses the gpt-image-2 slide images as visual references and uses rendered_text as the exact editable content source, then rebuilds the deck as native SVG/PowerPoint text, shapes, charts, and objects. Do not claim that raster screenshots are automatically or losslessly converted into editable objects.
Do not skip the image generation stage for an editable request. The correct full flow is: select the theme style prompt, write per-slide content/style/layout image prompts, generate slide images, build the image-first PPTX, then run the ppt-master editable reconstruction pass.
Command Shape
Accept free-form prompts after the skill name:
$awesome-ppt-std <deck prompt> [--pages N] [--ratio 16:9|4:3|1:1] [--lang zh|en|...] [--style "..."] [--out deck.pptx]$awesome-ppt-editable <deck prompt> [--pages N] [--ratio 16:9|4:3|1:1] [--lang zh|en|...] [--style "..."] [--out deck.pptx]$awesome-ppt <deck prompt> [--pages N] [--ratio 16:9|4:3|1:1] [--lang zh|en|...] [--style "..."] [--editable] [--out deck.pptx]
Command modes:
$awesome-ppt-std: stable standard mode. Generate images and assemble the image-first PPTX. Never runppt-master.$awesome-ppt-editable: experimental editable mode. Always complete standard mode first, then run theppt-masternative editable reconstruction pass.$awesome-ppt: legacy compatibility mode. Default to standard mode; run editable mode only when the user supplies--editable,--native, "fully editable", or "ppt-master".
Parameters:
--pages N: requested slide count. If missing, infer from the narrative; default to 8 when the request is underspecified.--ratio: slide aspect ratio. Default to16:9.--lang: deck language. Infer from the user prompt when missing.--style: visual direction, brand mood, or reference style.--editable/--native: legacy$awesome-pptoption. Prefer$awesome-ppt-editablefor explicit editable runs.--out: output PPTX path. Default to a descriptive slug in the working directory.
If --pages N is supplied, the final slide_count, number of generated images, and number of PPT slides must all equal N.
Workflow
- Parse the request and options. Identify audience, goal, language, slide count, ratio, visual tone, output path, and attached/source files.
- Inspect source files before planning. Extract only the content that supports the deck: thesis, evidence, quotes, data, images, brand assets, and constraints.
- Identify the closest theme style from the user's topic, audience, and requested mood. Read
references/theme-style-prompt-library.md, select the nearest style prompt, then adapt it to the user's specific request instead of copying it mechanically. - Create a compact deck brief with
slide_count, narrative arc, selected theme style, adapted design system, content density, and image text-rendering policy. - Create one slide spec per slide using
references/slide-spec-schema.md. - For every slide, define
rendered_text: the complete visible text that must appear inside the generated image. - For every slide, write an
imagegenprompt fromreferences/image-prompting.md. The prompt must include everyrendered_textitem verbatim, plus layout instructions for where each text item appears and the adapted theme style. - Generate slide images with the
imagegenskill/tool. Save each final slide image into a project-local folder such asawesome-ppt-output/<deck-slug>/images/. - Inspect generated images for text fidelity. If title/body text is missing, misspelled, or replaced with gibberish, regenerate that slide with a tighter prompt before assembling the deck.
- Run
scripts/validate_deck.pyagainst the deck spec before building. - Run
scripts/build_deck.pyto create the image-first PPTX. - Open or render-check the result when the environment supports it; otherwise at least verify that the PPTX file exists and the package can be written.
- If mode is editable, or legacy
$awesome-pptreceived--editable,--native, "fully editable", or "ppt-master": runscripts/export_ppt_master_handoff.pyagainstdeck.json, then invokeppt-masterwith the generatedppt-master-request.mdorppt-master-brief.md. Treat this as a second-stage optimization after the pure image-first PPTX exists; never substitute a direct SVG-only build for the image-first deck. - Run the
ppt-masterreconstruction in a fresh rebuild folder. Do not reuse an oldsvg_output/,svg_final/, or previous exported PPTX when testing a new deck. - After
ppt-masterexports, runscripts/inspect_pptx_package.pyon the native PPTX. For decks that should be fully native, verify the expected slide count, native text nodes, low or zero full-slide media usage, required text strings, and no unexpected black fallback colors.
Planning Rules
- Start from the story, not the image prompts. Each slide needs one job and one dominant read.
- Always identify the user's presentation theme before writing slide specs. Use
references/theme-style-prompt-library.mdas a style baseline, but optimize it for the specific audience, topic, language, and constraints. - If the user gives an explicit style, it wins over automatic theme matching. Use the library only to sharpen palette, layout, typography, and visual vocabulary.
- Use
--pagesas a hard constraint. If the requested content cannot fit, ask before changing the page count. - Keep slide text short enough for the image model to render accurately. Split crowded slides instead of shrinking text.
- Put all visible content text into
rendered_textand the image prompt. - Keep
rendered_textexact and complete because it becomes the source text for theppt-mastereditable reconstruction pass. - Use
editable_textonly when explicitly requested as an auxiliary mirror layer for later manual editing. Do not use it to supply missing visible content after image generation. - For charts and tables, include the exact visible labels/values in
rendered_textand the image prompt. Avoid dense spreadsheet-like tables in v1 because rendered text fidelity becomes the bottleneck. - If exact legal, financial, or compliance text must be perfectly editable and auditable, pause and explain that the image-first workflow is the wrong default for that slide.
File Outputs
Recommended run folder:
awesome-ppt-output/<deck-slug>/deck.jsonimages/slide-01.pngslide-02.png<deck-slug>.pptxppt-master-handoff/ppt-master-brief.mdppt-master-request.mdimages/slide-01.pngppt-master-rebuild/<deck-slug>-editable.pptx
The deck.json file is the source of truth for assembly. Use relative image paths from the JSON file location when possible.
The ppt-master-handoff/, ppt-master-rebuild/, and editable PPTX output are created only when running $awesome-ppt-editable or legacy $awesome-ppt --editable. The handoff is the source package for ppt-master; it should preserve reference images and exact text so ppt-master can rebuild the deck as native editable elements.
Scripts
scripts/validate_deck.py: validate slide count, required fields,rendered_text, prompt coverage, image existence, and image aspect ratios.scripts/build_deck.py: assemble a PPTX from a validateddeck.json. The standard-library v1 builder writes one full-slide image per slide and can optionally add editable text boxes ifeditable_textis present.scripts/export_ppt_master_handoff.py: export appt-masterreconstruction brief fromdeck.json, copying generated slide images as visual references for the editable rebuild.scripts/inspect_pptx_package.py: inspect a PPTX package for slide count, media count, native text nodes, required text, and suspicious black fallback colors.scripts/requirements.txt: reserved for future optional Python dependencies. V1 scripts use only the Python standard library.
No dependency installation is required for v1. If future optional dependencies are added, install them with:
python -m pip install -r awesome-ppt/scripts/requirements.txt
Validate and build:
python awesome-ppt/scripts/validate_deck.py awesome-ppt-output/my-deck/deck.jsonpython awesome-ppt/scripts/build_deck.py awesome-ppt-output/my-deck/deck.json --out awesome-ppt-output/my-deck/my-deck.pptxpython awesome-ppt/scripts/export_ppt_master_handoff.py awesome-ppt-output/my-deck/deck.jsonpython awesome-ppt/scripts/inspect_pptx_package.py awesome-ppt-output/my-deck/my-deck-editable.pptx --expect-slides 5 --expect-native-text --require-text "Transformer"
References
- Read
references/slide-spec-schema.mdbefore creatingdeck.json. - Read
references/theme-style-prompt-library.mdbefore creating the deck brief or image prompts. - Read
references/image-prompting.mdbefore generating slide images. - Read
references/editability-policy.mdwhen deciding whether any optional editable helper layer is appropriate. - Read
references/ppt-master-integration.mdbefore running the editable reconstruction optimization.