Skip to content
Conduit

skill

lecture-notes-creator

πŸŽ“ Turn any course PDF into structured self-study notes with AI. MinerU extraction β†’ page-by-page notes β†’ 7-dimension AI review β†’ Notion sync. OpenCode skill for students.

ZelinZhou-THU/lecture-notes-creatorcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/ZelinZhou-THU/lecture-notes-creator itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 26, 2026

Lecture Notes Creator β€” AI-Powered PDF-to-Notes for Students

δΈ­ζ–‡ζ–‡ζ‘£ | English

License: Apache 2.0 Python 3.10+ Powered by MinerU

Turn confusing course PDFs into clear, page-by-page self-study notes β€” with AI extraction, structured writing, and iterative quality review.

How It Works

flowchart LR
    A["πŸ“„ Course PDF"] --> B["πŸ” MinerU<br/>Extraction"]
    B --> C["πŸ–ΌοΈ Image<br/>Understanding"]
    C --> D["πŸ“‹ Structure<br/>Analysis"]
    D --> E["✍️ Note<br/>Writing"]
    E --> F{"πŸ” AI Review<br/>7-Dim Score"}
    F -->|"Score β‰₯ 8"| G["βœ… Final Notes"]
    F -->|"Needs Work"| E
    G --> H["☁️ Notion<br/>Sync"]

Why Lecture Notes Creator?

Staring at a 200-page course PDF the night before the exam? We've been there.

Most students either:

  • Read passively β€” highlight everything, remember nothing
  • Copy-paste slides β€” end up with the same confusing content in a different format

Lecture Notes Creator takes a different approach:

TraditionalLecture Notes Creator
Dense slides with abbreviationsStep-by-step explanations with full context
Skipped derivations ("obviously...")Complete reasoning chains from intuition to math
No way to check coveragePage-by-page mapping β€” every slide accounted for
One-pass readingMulti-round AI review until quality threshold is met

Key Features

πŸ”¬ High-Fidelity Extraction

MinerU VLM mode preserves formulas (LaTeX), tables (HTML), and figures from any PDF. No more broken equations or garbled text.

πŸ“– Page-Driven Structure

Notes strictly follow P1β†’P2β†’P3 order. Every page mapped, nothing missed β€” cross-reference back to the original slides in seconds.

🧠 Adaptive Writing Styles

Traditional courses (physics/chem) follow analogy β†’ derivation β†’ meaning. Slide-based (CS/AI) follows motivation β†’ mechanism β†’ application. The LLM auto-detects which style fits your PDF.

πŸ”„ AI Review Loop

A sub-agent role-playing an undergraduate student scores each chapter across 7 dimensions. The loop iterates until score β‰₯8/10 β€” typically 1-2 rounds.

☁️ One-Click Notion Sync

Push notes to your Notion workspace with proper formatting (headings, LaTeX, tables, callouts). No manual formatting needed.

Quick Start

πŸ“– Full installation guide: INSTALLATION.md (English) | Quick start: QUICKSTART.md (English)

Prerequisites

  • Python 3.10+
  • MinerU API Key (from mineru.net)
  • (Optional) Notion API Key

Install

git clone https://github.com/ZelinZhou-THU/lecture-notes-creator.git
cd lecture-notes-creator
pip install -r requirements.txt

Configure your .env file:

MINERU_TOKEN=your_mineru_api_key_here
NOTION_API_KEY=your_notion_api_key_here  # Optional

Then open the project in OpenCode and give it your PDF. That's it.

  1. Analyze PDF (optional, only needed if >200 pages)

    python scripts/split_pdf.py analyze "path/to/courseware.pdf" --preview 3
    
  2. Extract content (generates .bat file, double-click to run)

    python scripts/create_extraction_bat.py "path/to/courseware.pdf" --output ./output_dir/mineru --mode auto
    
  3. Tell OpenCode "extraction done" β€” it checks status and continues

  4. Sub-agent analyzes images (optional, recommended for image-heavy PDFs)

  5. OpenCode handles the rest:

    • Identifies courseware type (traditional / slide-based)
    • Writes lecture notes page by page
    • Each chapter goes through AI review iteration
    • Optionally uploads to Notion

Project Structure

lecture-notes-creator/
β”œβ”€β”€ SKILL.md                          # Skill definition (core workflow)
β”œβ”€β”€ .opencode/agents/
β”‚   β”œβ”€β”€ lecture-reviewer.md           # Sub-agent: quality review
β”‚   └── image-describer.md            # Sub-agent: image understanding
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ split_pdf.py                  # PDF analyze / pre-split / merge
β”‚   β”œβ”€β”€ extract_pdf.py                # Page screenshots (fallback)
β”‚   β”œβ”€β”€ mineru_extract.py             # MinerU API calls
β”‚   β”œβ”€β”€ create_extraction_bat.py      # Generate .bat/.sh for extraction
β”‚   β”œβ”€β”€ run_mineru_standalone.py      # Run MinerU outside OpenCode (cross-platform)
β”‚   β”œβ”€β”€ wait_for_extraction.py        # Wait for extraction completion
β”‚   β”œβ”€β”€ reconstruct_full_md.py        # Rebuild Markdown from JSON
β”‚   β”œβ”€β”€ backfill_image_descriptions.py
β”‚   └── save_batch_json.py
β”œβ”€β”€ deps/
β”‚   β”œβ”€β”€ mineru/                       # MinerU skill reference
β”‚   └── notion/                       # Notion skill (built-in)
β”‚       └── scripts/                  # Notion upload scripts
β”œβ”€β”€ references/
β”‚   β”œβ”€β”€ writing-style-guide.md        # Writing style reference
β”‚   β”œβ”€β”€ review-prompt.md              # Review prompt template
β”‚   β”œβ”€β”€ notion-upload.md              # Notion upload guide
β”‚   β”œβ”€β”€ mineru-api-guide.md           # MinerU API reference
β”‚   └── output-structure.md           # Output file structure
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ INSTALLATION.md               # Installation guide (zh)
β”‚   β”œβ”€β”€ INSTALLATION_EN.md            # Installation guide (en)
β”‚   β”œβ”€β”€ QUICKSTART.md                 # Quick start guide (zh)
β”‚   └── QUICKSTART_EN.md             # Quick start guide (en)
└── requirements.txt

Credits

Built with:

License

Apache License 2.0

↑↓ navigate openesc close