com um clique
ppt-yaml-deck-workflow
// Edit PraisonAIPPT YAML decks in examples, keep style consistent, regenerate matching PPTX, and verify output. Use when users request slide/verse/section/highlight updates for deck YAML files.
// Edit PraisonAIPPT YAML decks in examples, keep style consistent, regenerate matching PPTX, and verify output. Use when users request slide/verse/section/highlight updates for deck YAML files.
| name | ppt-yaml-deck-workflow |
| description | Edit PraisonAIPPT YAML decks in examples, keep style consistent, regenerate matching PPTX, and verify output. Use when users request slide/verse/section/highlight updates for deck YAML files. |
| disable-model-invocation | true |
Use this workflow for deck edits in examples/*.yaml where the output is a .pptx generated by praisonaippt (python-pptx via praisonaippt/core.py). This is not the Codex artifact-tool JS slide builder.
examples/<deck>.yamlexamples/<deck>.pptx (same basename; regenerate after every YAML edit)examples/template.yamlCopy and track:
Progress:
- [ ] 1) Identify target YAML deck and exact requested changes
- [ ] 2) Read current YAML structure before editing
- [ ] 3) Apply minimal YAML edits only
- [ ] 4) Regenerate matching PPTX with CLI
- [ ] 5) Confirm build success; paste slide outline + Google Drive View Link to user
- [ ] 6) Commit/push YAML (+ PPTX if tracked) when requested
| Key | Purpose |
|---|---|
presentation_title | Opening title slide |
presentation_subtitle | Optional subtitle on title slide |
slide_style | Global look (background, colours, font, alignment) for all slide types |
slide_size | Optional: widescreen / 16:9 / standard / 4:3 / 16:10, or { width, height } in inches |
auto_upload_gdrive | Default true on example decks; uploads PPTX after build when credentials exist (also honour ~/.praisonaippt defaults.auto_upload_gdrive) |
sections | List of section blocks (required) |
slide_style (match latest example decks)When creating or restyling a deck, use the same block as recent files (e.g. 100_fold_blessing.yaml, freedom_from_all_your_troubles.yaml):
auto_upload_gdrive: true
slide_style:
background_image: assets/background_alt.jpg
text_color: white
alignment: left
reference_position: top
font_name: Palatino
Omit slide_size unless the user needs standard / 4:3; default build is widescreen (16:9).
sections:
- section: Section title here # use '' to skip the section divider slide
section_subtitle: Optional # second line on section slide
verses:
- reference: ...
text: ...
| Key | Effect |
|---|---|
reference + text | Standard verse slide(s) |
highlights | Strings, or objects: text, color, bold, italic, underline, annotation (1–9) |
leading_title | Large headline above reference (sermon “message” slides); only on first slide when text is split |
split_max_length | Max chars per slide before splitting (default 200); use 400–500 for long NKJV passages |
font_size, alignment | Per-verse overrides (else from slide_style) |
reference_font_size | Larger reference line (title-style slides) |
list_type: bullet | numbered | List slide; text lines separated by \n |
slide_type: image + image_path | Image slide (image_fit: contain / cover / fill; optional reference + text as caption) |
text_below_reference | Extra passage block below verse body (same slide) |
Image slides — add a verse entry:
- slide_type: image
image_path: assets/diagrams/my_chart.png
image_fit: contain
reference: Slide label
text: Optional caption under the image
Paths resolve relative to the YAML file, then cwd, then repo root. Extract images from an existing PPTX with praisonaippt convert-json deck.pptx (saves under assets/extracted_images/<stem>/ when slides are image-only).
Generate new slide art with the gpt-image skill (.cursor/skills/gpt-image/): uv run .cursor/skills/gpt-image/scripts/generate.py --size 1536x864 --output assets/generated/...png, then reference that path in YAML. Validate setup: uv run .cursor/skills/gpt-image/scripts/validate_skill.py.
Paths in slide_style.background_image are often relative to repo root (e.g. assets/background_alt.jpg).
load_verses_from_file → yaml.safe_load → validate_verses (praisonaippt/schema.py) → create_presentation (praisonaippt/core.py):
presentation_title / presentation_subtitlesection is non-empty → section slide; if section: '' → no section slideslide_type: image → image slide (resolved path, optional caption, image_fit)list_type: bullet | numbered → list slidesplit_long_text on text → one verse slide per chunk via add_verse_slide (background, reference, body, highlights)Optional CLI extras (only when user asks): --convert-pdf, --upload-gdrive (also triggered by auto_upload_gdrive: true).
examples/ (newest examples include 100_fold_blessing.yaml, freedom_from_all_your_troubles.yaml, elshadai.yaml).examples/ (copy template.yaml) with the requested name.slide_style above so design matches the latest example decks.slide_style on small content-only edits unless the user asked to restyle.color: green for law, #FFD700 for promise/grace, #9900FF for Hebrew names)..pptx, run praisonaippt convert-json file.pptx to recover highlights; if none are extracted, add them manually in YAML—create_presentation does not invent highlights.presentation_title matches what the user requested before regenerating.section block only where needed.praisonaippt/core.py for content changes—change YAML only.From repo root:
python3 -m praisonaippt.cli -i examples/<deck>.yaml -o examples/<deck>.pptx
Equivalent: praisonaippt -i examples/<deck>.yaml -o examples/<deck>.pptx
After a successful build, the CLI automatically prints a numbered slide outline (same as list-slides below). Use that output when reporting order to the user—do not run ad-hoc python3 -c snippets.
To list slides on an existing PPTX without rebuilding:
python3 -m praisonaippt.cli list-slides examples/<deck>.pptx
Equivalent: praisonaippt list-slides examples/<deck>.pptx
Skip the post-build outline with --no-list-slides on the generate command.
Example:
python3 -m praisonaippt.cli -i examples/100_fold_blessing.yaml -o examples/100_fold_blessing.pptx
Presentation created successfully, then the slide outline (slides: N and 01: … lines).list-slides).auto_upload_gdrive: true in the deck YAML (and rely on ~/.praisonaippt credentials). After every successful build, copy the CLI View Link: URL and give it to the user in your reply (full https://docs.google.com/... URL).auto_upload_gdrive: false, or upload error) and still confirm the local .pptx path..pptx if the repo tracks regenerated decks).: may require quotes (e.g. 'Romans 2:13 (NKJV)').sections and verses.>- or |-) for multi-line verse text.slide_styles instead of slide_style) log warnings—use exact key names from template.yaml.