study-notes-generator

Study Notes Generator

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "study-notes-generator" with this command: npx skills add touricks/fanshi_personal_skills/touricks-fanshi-personal-skills-study-notes-generator

Study Notes Generator

Transform documents from slides/ into feature-rich HTML study notes saved to notes/ .

Workflow

  • Read the source document from slides/ (see PDF Handling below for large files)

  • Extract and organize content into learning-focused sections

  • Generate HTML using the template structure from assets/template.html

  • Save to notes/ with filename {original-name}-notes.html

PDF Handling (CRITICAL)

The Claude API has a hard limit of 100 images/documents per conversation. PDF pages are converted to images when read, so any PDF over ~90 pages will fail.

For PDFs over 50 pages:

  • Always extract text first using pdftotext : /opt/homebrew/bin/pdftotext "slides/filename.pdf" "slides/filename.txt"

  • Generate notes from the .txt file only

  • Do NOT read the PDF file directly — only read the extracted .txt

For PDFs under 50 pages:

  • Read the PDF directly with the Read tool (using pages parameter for 10+ pages)

Parallel Processing (Multiple Documents)

When processing multiple documents at once:

Validate with one agent first: Spawn 1 background Task agent, wait for it to succeed, then spawn the rest. This avoids wasting tokens on a batch of agents that all fail the same way.

Use Task tool with run_in_background: true for independent per-file agents. Do NOT use TeamCreate — team agents require message-driven coordination and will idle without producing output when tasks are independent.

Batch size: Spawn at most 4 agents in parallel to avoid rate limits. If more files remain, wait for the first batch to complete before launching the next.

Strong negative constraints in agent prompts: When instructing agents, use explicit prohibitions:

  • GOOD: "Do NOT read any PDF files. ONLY read the .txt file."

  • BAD: "Prefer reading the text file over the PDF." Agents ignore weak preferences but obey strong negations.

Content Extraction Guidelines

When analyzing the document, identify and extract:

Key Concepts & Definitions

  • Core terminology and their meanings

  • Fundamental principles being taught

  • Mark with <div class="concept"><strong>Term</strong>Definition...</div>

Problem-Solution Pairs

  • What problem/challenge does each concept address?

  • How does the method/technique solve it?

  • Mark with:

<div class="problem-solution"> <div class="problem">Problem: What challenge exists?</div> <div class="solution">Solution: How this concept/method addresses it</div> </div>

Examples & Applications

  • Concrete examples from the document

  • Real-world applications mentioned

  • Mark with <div class="example">...</div>

Important Notes

  • Warnings, common mistakes, or critical points

  • Mark with <div class="important">...</div>

CRITICAL: Mandatory Examples Rule

For ANY content that is NOT a pure definition, you MUST provide at least one concrete example.

What requires examples:

Content Type Example Required? Reason

Pure definition (e.g., "X is defined as Y") Optional Definition is self-contained

Properties/Characteristics YES Need to show how property manifests

Theorems/Claims YES Need to illustrate what theorem means

Comparisons (X vs Y) YES Need concrete case showing difference

Security properties YES Need attack scenario or counterexample

Algorithms/Procedures YES Need step-by-step walkthrough

"Why" questions YES Need counterexample or motivation case

Example format:

<div class="concept"> <strong>Collision Resistance (抗碰撞性)</strong> Nobody can find x and y such that x ≠ y and H(x) = H(y). </div>

<div class="example"> <strong>Why this matters:</strong> Consider H(x) = last 4 bits of x. <br>Finding collision is trivial: H("00001010") = H("11111010") = "1010" <br>This H is NOT collision resistant - bad for security! </div>

Counterexample pattern for "Why not X?" questions:

When explaining why a definition/property is formulated a certain way, ALWAYS provide a counterexample showing what goes wrong with the alternative:

<div class="problem-solution"> <div class="problem">Why require H(x₁)=Y rather than x₁=x in one-wayness?</div> <div class="solution"> <strong>Counterexample:</strong> Let H(x) = LSB(x) (last n bits). <ul> <li>Given Y, can you find the original x? NO (2^n possibilities)</li> <li>Given Y, can you find ANY x' with H(x')=Y? YES, trivially!</li> </ul> If we used x₁=x, this insecure function would be called "one-way"! </div> </div>

HTML Structure

Generate HTML following this structure:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{Document Title} - Study Notes</title> <!-- Copy full <style> block from assets/template.html --> </head> <body> <h1>{Document Title}</h1>

&#x3C;nav class="toc">
    &#x3C;h2>Table of Contents&#x3C;/h2>
    &#x3C;ul>
        &#x3C;li>&#x3C;a href="#section-1">Section 1 Title&#x3C;/a>&#x3C;/li>
        &#x3C;!-- ... more sections -->
    &#x3C;/ul>
&#x3C;/nav>

&#x3C;section id="section-1">
    &#x3C;h2>Section 1 Title&#x3C;/h2>
    &#x3C;!-- Content with concepts, problem-solutions, examples -->
&#x3C;/section>

&#x3C;!-- More sections -->

&#x3C;!-- End with summary and quiz -->
&#x3C;div class="summary">
    &#x3C;h3>Key Takeaways&#x3C;/h3>
    &#x3C;ul>
        &#x3C;li>Main point 1&#x3C;/li>
        &#x3C;li>Main point 2&#x3C;/li>
    &#x3C;/ul>
&#x3C;/div>

&#x3C;section>
    &#x3C;h2>Self-Check Quiz&#x3C;/h2>
    &#x3C;!-- Quiz questions -->
&#x3C;/section>

</body> </html>

Collapsible Sections

Use <details> for content that benefits from progressive disclosure:

<details> <summary>Detailed Explanation of X</summary> <div> Extended content here... </div> </details>

Self-Quiz Questions

End each major topic or the document with quiz questions:

<div class="quiz"> <div class="quiz-question">What is the main purpose of X?</div> <details> <summary>Show Answer</summary> <div>The answer explanation here...</div> </details> </div>

Generate 3-5 quiz questions per major section covering:

  • Definitions (What is...?)

  • Application (When would you use...?)

  • Comparison (How does X differ from Y?)

  • Problem-solving (Given scenario Z, what approach...?)

Quiz answers should also include examples when explaining non-trivial concepts.

Output Checklist

Before saving, verify the notes include:

  • Clear title and table of contents

  • All major topics from source document

  • Key concepts highlighted with definitions

  • Concrete examples for ALL non-definition content (MANDATORY)

  • Problem-solution pairs explaining the "why"

  • Counterexamples for "why not X?" type questions

  • Collapsible sections for detailed content

  • Summary of key takeaways

  • Self-quiz questions with hidden answers (including examples in answers)

Resources

assets/

  • template.html
  • Full HTML template with CSS styles. Copy the <style> block into generated notes.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

langgraph

No summary provided by upstream source.

Repository SourceNeeds Review
General

humanizer-zh

No summary provided by upstream source.

Repository SourceNeeds Review
General

docx

No summary provided by upstream source.

Repository SourceNeeds Review
General

scientific-slides

No summary provided by upstream source.

Repository SourceNeeds Review