Rylai PPTX
Original Codex-Hermes-Claude skill by Rylai.
Build presentations from local content with python-pptx. Use LibreOffice only for optional PDF
rendering. Do not hotlink images, fetch remote templates, or overwrite the source deck unless the
user explicitly requests it.
Runtime
Probe before installing:
python -c "import pptx; print(pptx.__version__)"
Install only when missing:
python -m pip install python-pptx
Resolve scripts/rylai_pptx.py relative to this skill directory.
Workflow
- Confirm the audience, purpose, source material, output path, and approximate slide count.
- Inspect an existing deck before editing it.
- Create a compact JSON content specification when building from scratch.
- Use only local image paths. Treat URLs as invalid input.
- Generate the deck, then inspect slide titles and extracted text.
- When LibreOffice is available, render to PDF and visually check representative slides.
- Check that text fits, images are legible, and the deck has a consistent hierarchy.
For an existing deck, write a task-specific python-pptx edit script in the workspace. Keep the
original file, preserve untouched slides, and save the revision to a new path.
JSON Build Format
{
"title": "Project Review",
"subtitle": "Decisions and next steps",
"slides": [
{
"title": "Current state",
"bullets": ["What is working", "What needs attention"]
},
{
"title": "Evidence",
"bullets": ["Metric one", "Metric two"],
"image": "local-chart.png"
}
]
}
The image field is optional and must point to a local file. Relative image paths are resolved
from the JSON file location.
Bundled CLI
Build:
python scripts/rylai_pptx.py build deck.json output.pptx
Inspect structure:
python scripts/rylai_pptx.py inspect output.pptx
Extract text as Markdown:
python scripts/rylai_pptx.py extract output.pptx output.md
Render to PDF with LibreOffice:
python scripts/rylai_pptx.py render output.pptx rendered
Use --force only when replacing an existing output is intended.
Quality Bar
- The PPTX reopens successfully and contains the expected slide count.
- Titles, body text, and slide order match the approved content.
- No text is clipped or placed outside slide bounds.
- Images come from local, attributable files and remain readable at presentation size.
- Rendered output contains no blank or broken slides.
- No source deck, user path, remote asset, or temporary test artifact is bundled with the skill.