Six-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, create presentations that match your documented patterns, produce the deck illustrations + thumbnail visual layer, and publish talk pages to a Jekyll shownotes site. Includes a 102-entry Presentation Patterns taxonomy (91 observable, 11 unobservable go-live items) for scoring, brainstorming, and go-live preparation.
86
92%
Does it follow best practices?
Impact
86%
1.24xAverage score across 26 eval scenarios
Advisory
Suggest reviewing before use
"""Tests for export-pdf.py — PDF export via LibreOffice."""
import os
import shutil
import pytest
from conftest import make_deck
@pytest.mark.skipif(not shutil.which("libreoffice"), reason="LibreOffice not installed")
def test_libreoffice_export(export_pdf, tmp_path):
"""LibreOffice converts a PPTX to PDF successfully."""
prs = make_deck(3)
pptx_path = str(tmp_path / "deck.pptx")
prs.save(pptx_path)
pdf_path = str(tmp_path / "deck.pdf")
result = export_pdf.try_libreoffice(pptx_path, pdf_path)
assert result is True
assert os.path.isfile(pdf_path)
assert os.path.getsize(pdf_path) > 100
@pytest.mark.skipif(not shutil.which("libreoffice"), reason="LibreOffice not installed")
def test_libreoffice_custom_output_path(export_pdf, tmp_path):
"""PDF output goes to the specified path, not alongside the PPTX."""
prs = make_deck(2)
pptx_path = str(tmp_path / "source" / "deck.pptx")
os.makedirs(os.path.dirname(pptx_path), exist_ok=True)
prs.save(pptx_path)
pdf_path = str(tmp_path / "dest" / "output.pdf")
os.makedirs(os.path.dirname(pdf_path), exist_ok=True)
result = export_pdf.try_libreoffice(pptx_path, pdf_path)
assert result is True
assert os.path.isfile(pdf_path)
@pytest.mark.skipif(not shutil.which("libreoffice"), reason="LibreOffice not installed")
def test_libreoffice_missing_file(export_pdf, tmp_path):
"""Non-existent PPTX produces no PDF output."""
pdf_path = str(tmp_path / "out.pdf")
export_pdf.try_libreoffice(
str(tmp_path / "missing.pptx"),
pdf_path,
)
# Whether it returns True or False depends on LibreOffice version,
# but a missing input should never produce a valid PDF
assert not os.path.isfile(pdf_path).github
eval-resources
humor-postmortem-blind-spots
qr-bitly-slug-from-outline
qr-missing-shortener-detection
shownotes-publisher-omit-placeholder
shownotes-publisher-publish-no-date
shownotes-publisher-publish-with-date
shownotes-publisher-update-add-video
video-extraction-diagnostics
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
rules
scripts
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
shownotes-publisher
vault-clarification
vault-ingress
vault-profile
tests