| name | notebooklm-lesson-planner |
| description | Create structured Google NotebookLM lesson plans with curated sources and tailored audio overview prompts. Use when the user wants to create a NotebookLM notebook, generate learning content with audio overviews, or build a curriculum with multiple focused segments. Handles both single lesson creation and batch processing of multiple topics. |
NotebookLM Lesson Planner
Create comprehensive lesson plans for Google NotebookLM with validated sources and customized audio overview prompts.
What This Skill Does
This skill helps you create NotebookLM notebooks by:
- Finding high-quality sources - Identifying 10-20 online resources that are publicly accessible, LLM-readable, and substantive
- Validating sources - Ensuring all URLs are active, accessible, and not behind paywalls or crawler blocks
- Generating tailored prompts - Creating specific prompts for each learning area that guide NotebookLM's audio overview generation
- Structuring content - Organizing lessons to avoid redundancy and ensure comprehensive coverage
When to Use This Skill
Use this skill when the user wants to:
- Create a NotebookLM notebook on a specific topic
- Generate a learning curriculum with multiple focused audio overviews
- Build educational content with curated sources
- Process multiple topics in batch (e.g., 100+ lesson plans)
Workflow Overview
The process varies based on whether you're creating a single lesson or processing a batch:
Single Lesson Mode:
- Gather requirements from user
- Find and validate sources
- Generate prompts for each learning area
- Provide complete lesson plan
Batch Mode:
- Process JSON specification file
- For each lesson: find sources, validate, generate prompts
- Output complete lesson plans for all topics
Single Lesson Mode
Step 1: Gather Requirements
Ask the user for:
- Main topic - The overall subject (e.g., "Firewall Configuration")
- Learning areas - Specific subtopics to cover (e.g., "ACLs", "NAT", "VPN", "Logging")
- Listener context - Information about the learner:
- What they already know
- Expertise level (beginner, intermediate, advanced)
- What they want to learn
- Why they're learning this (use case, goal)
- Target source count - How many sources to find (recommend 15, range 10-20)
Step 2: Find Sources
Use web_search to find sources that:
- Cover the main topic and learning areas
- Are publicly accessible (no paywall, no login)
- Are high-quality and substantive
- Provide appropriate depth for listener's level
Search strategy:
- Start with comprehensive sources covering multiple learning areas
- Find specialized sources for each specific learning area
- Ensure diversity in source types (tutorials, documentation, analysis)
- Aim for 10-20 total sources
See references/source_finding.md for detailed strategies on:
- Source quality criteria
- Search techniques
- Source type evaluation
- Coverage matrix planning
Step 3: Validate Sources
After finding sources, validate them using the validation script:
scripts/validate_sources.py url1 url2 url3 ... --verbose
The script checks:
- URL is active (200 status)
- No paywall detected
- Content is substantive (>500 chars)
- No obvious crawler blocking
If sources fail validation:
- Remove invalid sources
- Find replacements using web_search
- Re-validate until all sources pass
Step 4: Generate Prompts
For each learning area, create a tailored prompt for NotebookLM's audio overview generator.
Read prompt templates first:
view references/prompt_templates.md
Each prompt must include:
- Topic/Learning Area - What specific area this overview covers
- Listener Profile - Who the listener is, what they know, their expertise level
- Coverage Scope - What this overview should cover in detail
- Previous Coverage - What was covered in the last episode (for continuity)
- Upcoming Topics - What will be covered in future episodes (to avoid going into detail)
- Exclusions - Critical! What NOT to cover in detail (handled by other overviews)
- Approach and Goals - Tone, depth, teaching style, and learning objectives
- Length Suggestion - Duration target: [
15 min] for standard, [22 min] for longer episodes - Additional Context - Any other relevant information
Exclusion and continuity strategy:
- Overview 1: No previous coverage, upcoming: areas 2, 3, 4
- Overview 2: Previous: area 1, upcoming: areas 3, 4
- Overview 3: Previous: areas 1-2, upcoming: area 4
- Overview 4: Previous: areas 1-3, no upcoming topics
This ensures each overview is focused, non-redundant, and builds on prior knowledge.
Case Study Requirement: One audio overview in every lesson MUST be a real-life case study focusing on real companies and their experiences. This overview should analyze actual implementation stories, challenges faced, and lessons learned from real organizations.
Step 5: Generate Quiz Prompts
For each lesson, create 4 quiz prompts based on the audio overviews. Each quiz prompt should:
- Reference the audio overview - Which overview this quiz is based on
- Specify length - short, default, or long
- Specify difficulty - medium or hard
- Guide quiz content - What topics/concepts to focus on
Quiz distribution:
- Quiz 1: Based on Overview 1 (difficulty: medium, length: default)
- Quiz 2: Based on Overview 2 (difficulty: medium, length: short)
- Quiz 3: Based on Overview 3 (difficulty: hard, length: default)
- Quiz 4: Based on Overview 4 or case study (difficulty: hard, length: long)
Step 6: Deliver Lesson Plan
Provide the user with:
- Complete source list - All validated URLs with brief descriptions
- Coverage summary - Which sources cover which learning areas
- Audio Overview Prompts - One prompt per learning area, numbered and ready to use (including length suggestions)
- Quiz Prompts - Four quiz prompts with length and difficulty specified
- Instructions - How to use the lesson plan with NotebookLM:
- Add all sources to NotebookLM notebook
- For each audio overview, copy the corresponding prompt
- Generate audio overviews in sequence
- Generate quizzes using the quiz prompts
Output format:
# NotebookLM Lesson Plan: [Topic]
## Sources (15)
1. [Source 1 Title] - [URL]
Coverage: [Learning areas covered]
2. [Source 2 Title] - [URL]
Coverage: [Learning areas covered]
...
## Audio Overview Prompts
### Overview 1: [Learning Area 1] [~15 min]
[Full prompt text including: coverage, previous coverage, upcoming topics, approach and goals]
### Overview 2: [Learning Area 2] [~15 min]
[Full prompt text]
### Overview 3: [Case Study] [~22 min]
[Full prompt text - real-life case study of real companies]
...
## Quiz Prompts
### Quiz 1: [Topic] (Based on Overview 1)
**Length**: default | **Difficulty**: medium
[Full quiz prompt text]
### Quiz 2: [Topic] (Based on Overview 2)
**Length**: short | **Difficulty**: medium
[Full quiz prompt text]
...
## Usage Instructions
1. Create a new notebook in Google NotebookLM
2. Add all 15 sources to the notebook
3. For each audio overview:
- Click "Generate Audio Overview"
- Copy and paste the corresponding prompt above
- Generate the overview
4. For each quiz:
- Click "Generate Quiz"
- Copy and paste the corresponding quiz prompt
- Generate the quiz
5. Listen to overviews in sequence (1→2→3→...)
Batch Mode
For processing multiple topics from a JSON file.
Step 1: Understand Batch Specification
The user provides a JSON file with this structure:
{
"lessons": [
{
"topic": "Sandwich Making",
"learning_areas": ["bread", "proteins", "cheeses", "vegetables"],
"listener_context": {
"knows": ["basic cooking"],
"wants_to_learn": ["gourmet techniques"],
"skill_level": "intermediate"
},
"target_sources": 15
},
{
"topic": "Firewall Configuration",
"learning_areas": ["ACLs", "NAT", "VPN"],
...
}
]
}
Step 2: Process Each Lesson
For each lesson in the batch:
- Follow the Single Lesson Mode workflow
- Find sources (may need multiple web_search calls)
- Validate sources
- Generate prompts
- Save lesson plan to individual JSON file
Important for batch processing:
- Process lessons sequentially (don't try to parallelize)
- Be efficient with web_search (combine queries when possible)
- Validate sources in batches using the script
- Save progress incrementally (one lesson at a time)
Step 3: Output Structure
Create a directory structure:
output/
├── lesson_001_sandwich_making.json
├── lesson_002_firewall_configuration.json
├── lesson_003_database_optimization.json
...
└── batch_summary.md
Each JSON file contains:
{
"topic": "Sandwich Making",
"learning_areas": ["bread", "proteins", "cheeses", "vegetables"],
"listener_context": {...},
"sources": [
{
"url": "https://example.com/sandwich-guide",
"title": "Complete Sandwich Making Guide",
"coverage": ["bread", "proteins", "cheeses", "vegetables"]
},
...
],
"prompts": [
{
"area": "bread",
"prompt": "Topic: Bread Selection for Sandwiches\n\n..."
},
...
]
}
The batch_summary.md provides an overview of all lessons created.
Quality Guidelines
Source Quality
- Minimum 10 sources, maximum 20
- All sources must pass validation
- Each learning area covered by at least 3 sources
- Mix of comprehensive and specialized sources
- Appropriate depth for listener's expertise level
Prompt Quality
- Each prompt 200-350 words (optimal with new requirements)
- Clear previous coverage and upcoming topics sections
- Clear exclusions to avoid overlap
- Listener context consistent across all prompts
- Specific coverage guidance
- Appropriate tone and depth for audience
- Length suggestion included ([
15 min] or [22 min]) - Approach and goals clearly stated
- At least one case study overview per lesson
Quiz Quality
- 4 quizzes per lesson minimum
- Each quiz mapped to a specific audio overview
- Mix of difficulty levels (medium and hard)
- Mix of lengths (short, default, long)
- Clear guidance on topics to test
- Questions should reinforce key concepts from the audio overviews
Coverage Balance
- No learning area should dominate (unless intentional)
- No learning area should be under-represented
- Sources should provide diverse perspectives
- Both breadth and depth appropriate for topic scope
Tips and Best Practices
Finding sources:
- Start broad, then get specific
- Use multiple search queries per learning area
- Look for official documentation first
- Check publication date for time-sensitive topics
- Verify accessibility before adding to list
Writing prompts:
- Be explicit about exclusions
- Reference other overviews by number
- Provide specific examples of what to cover
- Match technical depth to listener's level
- Include practical context (why they're learning this)
Validating sources:
- Always run validate_sources.py before finalizing
- Manually spot-check 3-5 sources
- If >20% fail validation, reconsider search strategy
- Replace failed sources before generating prompts
Batch processing:
- Process 10-20 lessons at a time
- Check one complete lesson before processing all
- Save progress frequently
- Use consistent listener_context format across batch
Common Issues
Sources failing validation:
- Check for paywall indicators in URL or title
- Try alternative sources on the same topic
- Ensure using HTTPS not HTTP
- Verify site isn't down temporarily
Overlapping prompts:
- Review exclusion sections
- Ensure each area has clear boundaries
- Consider if learning areas need restructuring
- Make exclusions more specific
Coverage gaps:
- Add more specialized sources
- Use more specific search queries
- Look for sources that bridge multiple areas
- Consider if learning areas are too granular
Batch processing slow:
- Combine search queries where possible
- Validate sources in batches
- Process during off-peak hours
- Consider breaking into smaller batches
Files and Scripts
Scripts:
validate_sources.py- Validate URLs for NotebookLM compatibility
References:
prompt_templates.md- Templates and examples for creating promptssource_finding.md- Strategies for finding high-quality sources
Usage examples in references files.