/SKILL.md
Explains academic text, LaTeX, and Typst files with three modes. Auto-generates notes to user-specified files, reduces PDF/syntax learning burden.
npx skillsauth add lvyuemeng/reading-tutor Reading TutorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill enables AI agents to transform dense academic text into accessible, learner-appropriate explanations. It provides three distinct interaction modes that adapt to different learning needs: comprehensive teaching, concise note-taking, and guided hint-based discovery.
| Input Type | How to Invoke | Description |
|------------|---------------|-------------|
| Plain text | Direct paste | Standard text explanation |
| LaTeX (.tex) | "Read this LaTeX file: <path>" | Parse syntax, explain output. See rules/latex.md |
| Typst (.typ) | "Read this Typst file: <path>" | Parse syntax, explain output. See rules/typst.md |
| PDF (.pdf) | "Read this PDF: <path>" | Extract text, explain content. See rules/pdf.md |
| Mixed | Any combination above | Handle multiple inputs |
PDF → Notes: User provides PDF path → AI extracts content → generates Note mode output → writes to user-specified file
LaTeX → Understanding: User provides .tex file → AI parses commands → explains what the document will render
Typst → Understanding: User provides .typ file → AI parses markup → explains the structured document
Semantics Learning: AI explains LaTeX/Typst syntax patterns so user learns by example
When user specifies an output file:
Generate notes from <input> and save to <output.md>
The AI must:
For PDF extraction with page control, use scripts/pdf_reader.py. See scripts/README.md for detailed usage.
Quick reference:
cd scripts
uv run pdf_reader.py paper.pdf --pages 5-10 --output temp.txt
When invoked, determine which mode best serves the user's needs:
| Mode | Use Case | Output Style | |------|----------|--------------| | Teach | Deep understanding needed | Comprehensive, step-by-step explanation with examples | | Note | Quick review, summary needed | Concise bullet points, key concepts only | | Hint | Learner wants to figure it out | Socratic questions, guiding pointers |
Default output: Markdown
Custom formats (when user specifies): | Format | Invoke | |--------|--------| | LaTeX | "Generate notes in LaTeX" or "output: .tex" | | Typst | "Generate notes in Typst" or "output: .typ" |
When format specified:
For detailed output format rules: See rules/latex.md and rules/typst.md
For mathematical, code, or technical passages:
For detailed handling rules, load the appropriate rules/*.md file:
| File Type | Rules File |
|-----------|------------|
| .pdf | rules/pdf.md |
| .typ | rules/typst.md |
| .tex | rules/latex.md |
Always use this format when responding:
[MODE INDICATOR] Teaching Mode | Note Mode | Hint Mode
[CONTEXT] Brief framing of what will be covered
[BODY] Mode-specific content
[CHECK-IN] Ask if more detail needed (teach) or if hints are helpful (hint)
Input: "The mitochondria are the powerhouse of the cell."
Output:
Teaching Mode
What this means: Mitochondria are tiny structures inside cells that generate most of the cell's energy supply.
Why it matters: Think of mitochondria like a power plant for a city. Just as a power plant converts raw materials (coal, gas) into electricity that powers homes and factories, mitochondria convert nutrients from your food into ATP — a form of energy your cells can use.
Key facts:
- Every cell has hundreds to thousands of mitochondria
- They have their own DNA (inherited from your mother)
- They can self-replicate when cells need more energy
- Dysfunction is linked to diseases like diabetes and Parkinson's
Would you like me to explain how mitochondria convert nutrients into energy in more detail?
Input: "Photosynthesis converts light energy into chemical energy..."
Output:
Note Mode
Key Takeaways:
- Photosynthesis: Process where plants convert light → chemical energy
- Inputs: CO2 + H2O + Light
- Outputs: Glucose (C6H12O6) + O2
- Location: Chloroplasts (contains chlorophyll)
- Equation: 6CO2 + 6H2O + light → C6H12O6 + 6O2
- Importance: Foundation of food chains, produces O2 we breathe
Input: "How does binary search work?"
Output:
Hint Mode
Let me guide you there step by step:
Step 1: Imagine you have a sorted list of 100 numbers and you're looking for one specific number. What's the first thing you'd check?
(Wait for answer, then continue based on response)
Hint: Instead of checking each number one by one from the beginning, what if you checked the middle first?
Try describing what happens when you check the middle number and it's larger than your target. What does that tell you about where to look next?
Input: User provides path to math-notes.tex with content:
\documentclass{article}
\usepackage{amsmath}
\title{Quadratic Equations}
\begin{document}
\section{Definition}
A quadratic equation is of the form $ax^2 + bx + c = 0$.
\section{Solution}
The quadratic formula:
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$
\end{document}
Output:
Note Mode
Document Structure:
- Type: Article (academic paper format)
- Packages: amsmath (enhanced math typesetting)
- Sections: Definition, Solution
Key Content:
- Quadratic Equation: $ax^2 + bx + c = 0$ — polynomial of degree 2
- Quadratic Formula: $x = (-b ± √(b²-4ac)) / 2a$
- Purpose: Solving for roots of quadratic polynomials
Syntax Explained:
$...$→ inline math mode$$...$$→ displayed (centered) math mode\frac{num}{den}→ fraction\sqrt{expr}→ square root
Input: User provides path to report.typ:
#set document(title: "Physics Notes", author: "Student")
#let important(body) = text(red, weight: "bold")
= Introduction
This document covers *Newton's Laws*.
#important[Key Concept]: Force equals mass times acceleration.
Output:
Note Mode
Document Structure:
- Type: Standard document with metadata
- Custom Function:
important()— makes text red and boldContent Breakdown:
- Heading level 1: "Introduction"
- Emphasis:
*Newton's Laws*(italic)- Custom call: Red bold text for key concepts
Syntax Explained:
#set→ document configuration#let→ define custom function=→ heading (not a command, like LaTeX)[...]→ content block*text*→ italic (no backslash needed)
Input:
Generate notes from paper.tex and save to notes.md
Process:
paper.texnotes.mdOutput:
✓ Notes generated:
notes.mdSummary: 3 sections, 2 equations, 1 figure, 15 key concepts extracted
Would you like me to explain any section in Teach mode?
rules/latex.md)rules/typst.md)rules/pdf.md)testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).