MemberPress AI Academy

    memberpress.ai

    Slides to Course · From a Deck to a Course

    Slide notes to lessons and quizzes

    Reading10 min

    Your speaker notes are the closest thing you have to a lesson script: they're what you actually say. But they're written for you, in shorthand, with the examples living in your head. A learner needs them spelled out, and that's a first draft Claude is good at.

    One slide at a time

    Give Claude the same three things every time: who the course is for, the lesson's one outcome from your outline, and the slide with its notes. Ask for two things back: a short script in your voice that teaches that outcome, and three quiz questions that check it.

    """One slide and its notes to a lesson script and a quiz.
    
    Gives Claude the same three things every time: who the
    course is for, the lesson's one outcome, and the slide
    with its speaker notes. It asks for a short script in the
    speaker's voice and three quiz questions on the outcome.
    
        python3 lesson.py workshop.pptx 5 "You can add one
        good example to a prompt in place of a paragraph of rules."
    """
    import sys
    
    import anthropic
    from pptx import Presentation
    
    BRIEF = """Course: for people who use Claude at work but get uneven results.
    Lesson outcome: {outcome}
    
    From the slide and speaker notes below, write:
    SCRIPT: a lesson script of about 120 words, in the speaker's voice, that teaches the outcome.
    Include one concrete example.
    QUIZ: three questions that check the learner can do it, each with the answer.
    Plain text, no markdown."""
    
    if __name__ == "__main__":
        path, number, outcome = sys.argv[1], int(sys.argv[2]), sys.argv[3]
        slide = Presentation(path).slides[number - 1]
        text = " / ".join(s.text_frame.text for s in slide.shapes
                          if s.has_text_frame and s.text_frame.text)
        notes = slide.notes_slide.notes_text_frame.text
        print(f"Slide {number}: {text}\nNotes: {notes}\n")
        response = anthropic.Anthropic().messages.create(
            model="claude-sonnet-5-5",
            max_tokens=4000,
            messages=[{"role": "user", "content": BRIEF.format(outcome=outcome) + f"\n\n<slide>\n{text}\nNotes: {notes}\n</slide>"}],
        )
        print("".join(b.text for b in response.content if b.type == "text"))
    

    Then the part that's yours

    • Read the script out loud.
    • Swap in your own example wherever Claude made one up. In our run, Claude's script described an email to "Dana" that nobody sent. Your examples are why people want your course and not a general one.
    • Check every quiz answer yourself. A quiz with a wrong answer marked right does more harm than no quiz at all.

    The common mistake

    Running the whole deck through at once and publishing what comes out. You'll get a pile of lessons that all sound the same, and none of them sound like you. Do one slide, fix it, and use what you fixed to sharpen the brief for the next one.

    Try these prompts