CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Two-skill presentation system: analyze your speaking style into a rhetoric knowledge vault, then create new presentations that match your documented patterns. Includes an 88-entry Presentation Patterns taxonomy for scoring, brainstorming, and go-live preparation.

95

Quality

95%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

slide-generation-rules.mdrules/

Slide Generation Rules

Speaker Notes — Separate Batch Pass

Speaker notes MUST be injected as a separate step AFTER all slides are created. Never add notes inline during slide creation.

# ✅ CORRECT: Separate pass after all slides exist
prs = Presentation('deck.pptx')
for idx, notes_text in notes_map.items():
    slide = prs.slides[idx]
    slide.notes_slide.notes_text_frame.text = notes_text
prs.save('deck.pptx')

# ❌ WRONG: Adding notes during slide creation
for slide_data in outline:
    slide = add_slide(...)
    slide.notes_slide.notes_text_frame.text = slide_data['notes']  # NOT HERE

Why: MCP PPT server doesn't support notes. Notes are always a python-pptx batch operation on the saved .pptx file.

Template Stripping — Before Content

Remove all existing slides from the template BEFORE adding new content slides. Use the _sldIdLst + drop_rel() pattern, not a public API.

rules

slide-generation-rules.md

vault-language-policy.md

CHANGELOG.md

README.md

tessl.json

tile.json