CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Four-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, then create new presentations that match your documented patterns. Includes an 88-entry Presentation Patterns taxonomy for scoring, brainstorming, and go-live preparation.

96

1.21x
Quality

93%

Does it follow best practices?

Impact

97%

1.21x

Average score across 30 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

strip-template.pyskills/presentation-creator/scripts/

#!/usr/bin/env python3
"""Strip demo slides from a PowerPoint template, keeping only layouts.

Usage:
    strip-template.py <template.pptx> <output.pptx>

Examples:
    strip-template.py ~/Templates/speaker-template.pptx clean-deck.pptx
"""

import sys
from pptx import Presentation

from _pptx_repair import NS_R, clean_viewprops


def strip_slides(prs):
    """Remove all slides from a presentation, keeping layouts intact.

    Returns the number of slides removed.
    """
    xml_slides = prs.slides._sldIdLst
    removed = 0
    for sldId in list(xml_slides):
        rId = sldId.get(f'{{{NS_R}}}id')
        prs.part.drop_rel(rId)
        xml_slides.remove(sldId)
        removed += 1
    clean_viewprops(prs)
    return removed


def main():
    if len(sys.argv) != 3:
        print(f"Usage: {sys.argv[0]} <template.pptx> <output.pptx>", file=sys.stderr)
        sys.exit(1)

    template_path, output_path = sys.argv[1], sys.argv[2]

    tmpl = Presentation(template_path)
    removed = strip_slides(tmpl)
    tmpl.save(output_path)
    print(f"Stripped {removed} slides from template. Saved to {output_path}")


if __name__ == "__main__":
    main()

skills

presentation-creator

SKILL.md

README.md

tile.json