Active Learning System Generator
Purpose
This skill transforms any book (PDF or EPUB) into a comprehensive active learning system within Obsidian. It creates 9 types of learning materials for each book section:
- Overview - Pre-reading framework
- Core Concepts - Key ideas extraction
- Mind Maps - Visual relationship mapping
- SOPs - Standard operating procedures for practice
- Similar Resources - Related books and references
- Counter-Arguments - Critical thinking perspectives
- Open Questions - Deep exploration prompts
- Practice Exercises - 5 question types (comprehension, inference, Socratic, critical, application)
- Discussion Records - Conversation tracking templates
When to Use This Skill
Use this skill when a user says they want to:
- "Deeply understand a book"
- "Create a learning system for [book]"
- "Generate exercises and practice materials"
- "Build a knowledge base for [topic]"
- "Study [book] with active recall"
The skill should also be used when:
- The user provides a book path (PDF/EPUB)
- They want to integrate with Obsidian
- They need systematic learning materials
- The book is lengthy (1000+ pages)
How to Use This Skill
Step 1: Analyze the Book
Check file format and integrity
# Use bundled script to analyze book scripts/analyze_book.py --path "/path/to/book.pdf"- Determines if PDF is text-based or scanned
- Counts total pages
- Estimates content extractability
- Generates reading difficulty score
Extract book structure
scripts/extract_structure.py --path "/path/to/book.pdf" --output "/tmp/structure.json"- Identifies table of contents
- Detects chapter boundaries
- Creates section mapping
- For long books: creates processing chunks (100-page segments)
Generate book overview
- Uses first 50 pages and last 20 pages
- Identifies core themes and concepts
- Creates reading difficulty assessment
- Suggests learning timeline
Step 2: Process Content in Chunks (for large books)
For books >300 pages, process in 100-page chunks to ensure completeness:
# Process each chunk
scripts/process_chunk.py --chunk 1 --pages 1-100 --book "/path/to/book.pdf"
scripts/process_chunk.py --chunk 2 --pages 101-200 --book "/path/to/book.pdf"
# ... etc
Integrity Check: After each chunk, verify:
- Number of sections/chapters extracted
- Core concepts identified
- Practice exercises generated
- Flag any chunks with low extraction quality
Step 3: Generate Learning Materials
For each book section (or chunk), generate all 9 document types:
# Generate all materials for a section
scripts/generate_section.py --section 1 --type all --book "/path/to/book.pdf"
This creates:
00-章节总结.md- Summary template01-核心观点.md- Core concepts extraction02-思维导图.md- Mermaid mind maps03-发展链路.md- SOPs and practice plans04-相似推荐.md- Related resources05-反观点.md- Critical perspectives06-开放性问题.md- Deep exploration questions07-练习题.md- 5 types of exercises08-讨论记录.md- Discussion templates
Step 4: Create Knowledge Base Structure
scripts/setup_obsidian.py --book "Book Title" --author "Author" --category "Category" --output "/path/to/vault/读书笔记/"
Creates:
- Main directory structure
- Index file with book list
- Knowledge point index
- Learning progress tracker
- 5-year roadmap template
Step 5: Integrity Verification
Critical Step: Verify all content was generated completely
scripts/verify_completion.py --book "/path/to/book.pdf" --output "/path/to/vault/读书笔记/Book/"
Checks:
- ✅ All 9 document types created
- ✅ Number of sections matches book structure
- ✅ Exercise count (should be 10-15 per section)
- ✅ SOP completeness (should have 3-5 per section)
- ✅ Cross-links between documents
- ✅ Page coverage (for long books: all chunks processed)
If verification fails: Re-run generation for missing sections
Step 6: Package and Deliver
scripts/package_system.py --book-path "/path/to/vault/读书笔记/Book/" --output "/path/to/deliverable.zip"
Creates distributable package with:
- All generated markdown files
- Setup instructions
- Quick start guide
- Learning roadmap
Handling Large Books (1000+ pages)
Chunk Processing Strategy
For books >300 pages:
Automatic Chunk Detection
- Script divides book into 100-page segments
- Preserves chapter boundaries (doesn't split chapters across chunks)
- Creates chunk mapping file
Sequential Processing
# Process chunk by chunk for chunk_id in range(1, total_chunks + 1): scripts/process_chunk.py --chunk chunk_id --book book.pdf scripts/verify_chunk.py --chunk chunk_id # Verify before proceedingIntegrity Checkpoints
- After each chunk: verify extraction quality >80%
- If quality <80%, use OCR fallback for that chunk
- Log any chapters/sections that couldn't be extracted
Content Stitching
- Merge chunk outputs maintaining logical flow
- Ensure cross-chapter links work correctly
- Generate overview that covers entire book
Fallback for Low Quality Extraction
If a book has poor text extraction (scanned pages, images):
# Use OCR fallback
scripts/extract_with_ocr.py --chunk problematic_chunk --book book.pdf
User Notification: If OCR is used, inform user:
- "This book required OCR processing. Generated content may have lower accuracy."
- Suggest finding a text-based version if available
Adaptability for Different Book Types
The skill automatically adapts based on book type:
1. Theory/Concept Books (e.g., psychology, philosophy)
- Emphasis on: understanding, critical thinking, application
- More Socratic questions
- More counter-arguments
- Application exercises focus on real-life scenarios
2. Practical/How-to Books (e.g., self-help, business)
- Emphasis on: practice plans, SOPs, implementation
- More SOPs with step-by-step instructions
- More practice exercises
- Discussion focused on obstacles
3. Spiritual/Mindfulness Books (e.g., meditation, awakening)
- Emphasis on: direct experience, practice, integration
- More experiential exercises
- Open questions for personal exploration
- Lifestyle integration guidance
4. Academic/Textbooks
- Emphasis on: comprehension, structure, knowledge mapping
- More detailed mind maps
- Comprehensive summaries
- Critical analysis exercises
5. Fiction/Literature
- Emphasis on: themes, characters, interpretation, reflection
- Character analysis exercises
- Thematic exploration questions
- Personal reflection prompts
- Discussion templates for book clubs
Bundled Resources
scripts/
analyze_book.py- Analyzes book format and readabilityextract_structure.py- Extracts table of contents and chaptersprocess_chunk.py- Processes 100-page segmentsgenerate_section.py- Generates all 9 document types for a sectionsetup_obsidian.py- Creates Obsidian vault structureverify_completion.py- Integrity check for generated contentpackage_system.py- Packages everything for delivery
references/
book_types.md- Guidance for different book genresquestion_templates.md- Templates for 5 question typessop_templates.md- Templates for SOPsmindmap_templates.md- Mermaid diagram templatesintegrity_checklist.md- Verification checklist
assets/
learning-roadmap-template.md- Overall learning path templateprogress-tracker-template.md- Progress tracking spreadsheetsummary-template.md- Chapter summary template
Usage Example
User Request: "我想深入学习《思考,快与慢》,文件在~/Books/thinking.pdf,请帮我建立学习系统"
Skill Response:
Analyze the book:
python scripts/analyze_book.py --path "~/Books/thinking.pdf"Output: "Book detected: 512 pages, text-based PDF, psychology genre"
Extract structure:
python scripts/extract_structure.py --path "~/Books/thinking.pdf"Output: "Found 38 chapters, 5 parts, generating 5 learning sections"
Process each section:
for i in {1..5}; do python scripts/generate_section.py --section $i --book "~/Books/thinking.pdf" doneSetup Obsidian structure:
python scripts/setup_obsidian.py --book "思考,快与慢" --author "丹尼尔·卡尼曼" --category "心理学" --output "~/Documents/OB/读书笔记/"Verify completion:
python scripts/verify_completion.py --book "~/Books/thinking.pdf" --output "~/Documents/OB/读书笔记/心理学/思考,快与慢/"Output: "✅ Complete! 5 sections, 45 documents generated, 180 exercises created"
Package and present:
- Create zip file with all materials
- Generate quick start guide
- Present learning roadmap to user
Quality Assurance
Integrity Check Process
After generating all materials, always run verification:
# In scripts/verify_completion.py
def verify_book_system(book_path, output_dir):
"""Comprehensive verification of generated learning system"""
issues = []
# Check 1: All sections processed
expected_sections = count_sections(book_path)
actual_sections = count_directories(output_dir)
if actual_sections < expected_sections * 0.9:
issues.append(f"Missing sections: {expected_sections - actual_sections}")
# Check 2: All document types present
for section in get_sections(output_dir):
docs = os.listdir(section)
required_docs = [
"00-章节总结.md", "01-核心观点.md", "02-思维导图.md",
"03-发展链路.md", "04-相似推荐.md", "05-反观点.md",
"06-开放性问题.md", "07-练习题.md", "08-讨论记录.md"
]
missing = [d for d in required_docs if d not in docs]
if missing:
issues.append(f"Section {section} missing: {missing}")
# Check 3: Exercise count
exercise_count = count_exercises(output_dir)
expected_exercises = expected_sections * 10
if exercise_count < expected_exercises * 0.8:
issues.append(f"Low exercise count: {exercise_count}/{expected_exercises}")
# Check 4: Page coverage (for chunked books)
if is_chunked(book_path):
coverage = check_page_coverage(book_path, output_dir)
if coverage < 0.95:
issues.append(f"Low page coverage: {coverage * 100:.1f}%")
# Check 5: Cross-links
link_count = count_cross_links(output_dir)
expected_links = expected_sections * 5
if link_count < expected_links * 0.7:
issues.append(f"Insufficient cross-links: {link_count}/{expected_links}")
return {
"complete": len(issues) == 0,
"issues": issues,
"stats": {
"sections": actual_sections,
"exercises": exercise_count,
"links": link_count,
"coverage": coverage if is_chunked(book_path) else 1.0
}
}
User Report Format
After verification, present results to user:
📚 书籍分析完成!
📖 书籍信息:
- 书名:《XXX》
- 页数:512页
- 类型:心理学/哲学/实践指南
- 处理方式:文本提取(质量:95%)
✅ 系统生成统计:
- 学习章节:5大部分
- 生成文档:45个(9种类型×5章节)
- 练习题:180道(平均每章36道)
- 思维导图:5个
- SOP指南:15个
- 预计学习时间:3-6个月
🔍 完整性检查:
- ✅ 所有章节已处理
- ✅ 所有文档类型已生成
- ✅ 练习题数量达标
- ✅ 交叉链接已建立
- ⚠️ 建议:第3章练习题略少,已补充
📍 文件位置:
~/Documents/OB/读书笔记/类别/书名/
🚀 下一步:
1. 阅读00-概览.md(15分钟)
2. 阅读第一部分并完成练习题
3. 开始呼吸觉察实践
Troubleshooting
Common Issues and Solutions
Issue 1: Low extraction quality
- Symptom: Script reports <80% text extraction
- Solution: Use OCR fallback + notify user
- Script:
scripts/extract_with_ocr.py
Issue 2: Missing sections
- Symptom: Verification shows missing chapters
- Solution: Re-run extraction for missing pages
- Script:
scripts/extract_missing.py --pages start-end
Issue 3: Too many exercises
- Symptom: Generated 50+ exercises for one section
- Solution: Use filter to select most important 10-15
- Script:
scripts/filter_exercises.py --section X --max 15
Issue 4: Broken cross-links
- Symptom: Obsidian shows broken links
- Solution: Run link repair script
- Script:
scripts/fix_links.py --vault "/path/to/vault"
Issue 5: User wants customization
- Solution: Provide configuration file
- Template:
references/config_template.md
Best Practices
For Skill Users
- Always run verification after generation
- Start with overview before diving in
- Don't skip exercises - they're core to learning
- Adapt timeline to your schedule (3-6 months is flexible)
- Use discussion records for conversations with AI
For Skill Development
- Test with multiple book types before release
- Include fallback mechanisms for low-quality extraction
- Make verification mandatory - don't skip it
- Provide customization options for power users
- Document limitations clearly (e.g., scanned PDFs)
Limitations
Current Limitations
- Scanned PDFs: OCR accuracy ~85-90%, may miss nuances
- Complex layouts: Books with multi-column layouts may extract out of order
- Images/Diagrams: Text descriptions only, can't reproduce images
- Fiction/Poetry: Less effective than non-fiction (system designed for concept-heavy books)
- Language: Currently optimized for Chinese books, may need adaptation for other languages
Future Enhancements
- Multi-language support (English, Japanese, etc.)
- Better handling of complex layouts
- Image description generation for diagrams
- Audio book support
- Interactive exercise generation (with answer keys)
- Progress analytics dashboard
- Spaced repetition schedule integration
Example Skill Trigger Phrases
These user queries should trigger this skill:
- "我想深入学习《XXX》,请帮我建立学习系统"
- "为《XXX》生成主动学习材料"
- "我想真正理解这本书,需要练习题和讨论"
- "这本书太厚了,帮我分解学习"
- "为我的Obsidian创建这本书的知识库"
- "我想批判性地学习这本书"
Conclusion
This skill transforms passive reading into active, deep learning by generating comprehensive learning systems for any book. It handles books of any size through chunk processing and includes rigorous integrity checks to ensure completeness.
Remember: Always run verification after generation and be transparent with users about any quality issues or limitations.