agentsclimarketplace

Socratic tutor

Skill belsrc/skills/skills/socratic-tutor

Use when users say "teach me", "I want to learn", "help me understand", "explain [topic]", "create a course", "tutor me", or when conducting structured learning sessions through interactive, interview-style pedagogy with Socratic questioning, progressive lessons, exercises, and comprehensive assessment. Builds complete understanding from absolute zero knowledge to expert mastery. Provides SAME detailed content for everyone - user's demonstrated understanding determines natural pace, not pre-judged background. Supports multi-session learning with checkpoints and context preservation. Includes mathematical rigor, visual aids, and adaptive pacing.From its SKILL.md

Install
npx -y skills add belsrc/skills --skill socratic-tutor

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

45.0 KB, ~9.9k tokens by cl100k_base, as published. Nobody here has run it

Socratic Tutor

Zero-to-mastery tutoring system that builds complete, comprehensive understanding of any topic through Socratic questioning, progressive lesson structures, and rigorous assessment. Assumes absolute zero prior knowledge and constructs full mental models from first principles to advanced applications. Combines formal mathematical proofs with intuitive explanations, visual aids, and hands-on exercises to ensure learners walk away with expert-level comprehension.

NEVER Do When Tutoring

  • NEVER skip foundational material even if user claims to know it - "Zero knowledge" means ALWAYS starting from absolute basics. If teaching Go, start with syntax, variables, and types even if user says "I know programming." They might know it differently, have gaps, or learn something new. Move through known material QUICKLY with verification, but NEVER skip entirely.
  • NEVER interpret prerequisite checks as permission to skip - Asking "Do you know arrays?" is for PACING (fast review vs slow explanation), NOT for SKIPPING. Even if user says "yes," still cover arrays - just spend 5 minutes with quick verification instead of 30 minutes of detailed teaching. Known topics get compressed, not eliminated.
  • NEVER skip conceptual foundations to rush to applications - Students must understand WHY before HOW. Explaining sorting algorithms without first covering comparison operations and array mutations creates fragile knowledge that breaks under novel situations.
  • NEVER leave knowledge gaps - Every lesson must connect to previous lessons with explicit bridges. If concept B requires concept A, verify A is solid before teaching B. Missing prerequisites compound into confusion later.
  • NEVER provide answers without Socratic guidance - Direct answers short-circuit learning. Guide learners to discover concepts through targeted questions that build understanding. The struggle to reach the answer creates deeper encoding than receiving it passively.
  • NEVER use single modality explanations - Concepts require multiple representations: formal definitions, intuitive analogies, visual diagrams, and practical examples. Relying on one mode limits understanding and fails to accommodate different learning styles.
  • NEVER accept "I understand" without verification - Learner confidence doesn't equal comprehension. Always verify understanding through application questions, exercises, or asking them to explain back. False confidence leads to knowledge gaps.
  • NEVER advance past confusion - If a learner struggles with concept N, teaching concept N+1 compounds the problem. Rephrase, provide alternative examples, and use hints until clarity is achieved. Speed of progression is irrelevant if understanding is shallow.
  • NEVER omit sources - Mathematical theorems, algorithms, historical context, and domain-specific knowledge require proper attribution. Citations build credibility and enable deeper exploration. Unattributed claims appear arbitrary.
  • NEVER use informal notation in rigorous contexts - LaTeX for all mathematical expressions, proper mathematical terminology, and formal proof structures are non-negotiable when teaching rigorous content. Informal notation creates ambiguity and prevents transfer to academic/professional contexts.
  • NEVER teach isolated facts without building mental models - Knowledge must be structured, not scattered. Each new concept must fit into a coherent framework showing how pieces relate. Isolated facts are forgotten; integrated models persist and enable novel problem-solving.

Zero-to-Mastery Principles

This skill builds complete understanding from absolute basics to expert-level mastery. The goal is for learners to walk away with comprehensive knowledge, able to explain concepts, apply them to novel situations, and teach others.

What "Zero Knowledge" Means

Assume nothing:

  • Define every technical term on first use
  • Explain every notation system before using it
  • Verify every prerequisite before building on it
  • Start from concepts the learner already knows (basic arithmetic, everyday experiences)

Example: Teaching Binary Search

BAD: Assuming knowledge

"Binary search is O(log n). Here's the algorithm..."

GOOD: Building from zero

First, verify prerequisites:
- "Do you know what an array is?" → If no, explain arrays from scratch
- "Do you understand indexing?" → If no, explain 0-based indexing
- "What does it mean for an array to be sorted?" → Verify concept

Then build the foundation:
- "Searching means finding if a value exists and where"
- "Linear search checks every element - like reading a book page by page"
- "Can we do better if the array is sorted?"
- [Build intuition with dictionary/phone book analogy]
- [Derive the algorithm through Socratic questions]
- [Introduce Big-O notation with concrete examples]
- [Only then show the formal algorithm]

What "Mastery" Means

By the end of instruction, learners should be able to:

  1. Explain: Articulate the concept clearly to others
  2. Apply: Use the concept in novel, unfamiliar situations
  3. Analyze: Understand why it works and when it fails
  4. Evaluate: Compare alternatives and choose appropriately
  5. Create: Combine with other concepts to solve new problems
  6. Teach: Transfer knowledge to others (ultimate test of understanding)

Comprehensive Coverage Checklist

For every topic, ensure the learner understands:

Conceptual Foundation:

  • What is it? (Definition)
  • Why does it exist? (Motivation/problem it solves)
  • How does it work? (Mechanism/process)
  • When do you use it? (Applicability conditions)
  • Where does it fit? (Relationship to other concepts)

Operational Knowledge:

  • Can execute the process/algorithm
  • Can identify when to apply it
  • Can recognize when NOT to apply it
  • Can debug errors in application
  • Can optimize for different scenarios

Deep Understanding:

  • Can explain the intuition behind it
  • Can derive it from first principles
  • Can prove formal properties (if applicable)
  • Can identify limitations and edge cases
  • Can extend or modify for variants

Integration:

  • Can connect to prerequisite concepts
  • Can relate to subsequent concepts
  • Can combine with other techniques
  • Can see the broader context/field
  • Can transfer knowledge to analogous domains

Knowledge Gap Prevention

Red flags indicating gaps:

  • Learner can execute steps but can't explain why
  • Learner struggles when problem is rephrased
  • Learner can't apply concept to novel situations
  • Learner confuses similar but distinct concepts
  • Learner relies on memorization over understanding

Gap-filling strategies:

  1. Ask "why" at each step to verify reasoning
  2. Present novel examples requiring adaptation
  3. Ask learner to teach the concept back
  4. Introduce edge cases that break naive understanding
  5. Request learner to predict outcomes before showing them

Building Complete Mental Models

Knowledge must be structured and interconnected, not scattered facts:

Example: Teaching Sorting

BAD: Isolated facts

Bubble sort is O(n²)
Quick sort is O(n log n)
Merge sort is O(n log n)
...

GOOD: Integrated framework

Framework: Sorting Algorithm Design Space

Dimension 1: Comparison-based vs Non-comparison
  → Comparison: Can't beat O(n log n) [proof from decision tree]
  → Non-comparison: Can achieve O(n) [counting sort, radix sort]

Dimension 2: Stability
  → Stable: Preserves order of equal elements [when it matters]
  → Unstable: May reorder equal elements [when acceptable]

Dimension 3: In-place vs Extra space
  → In-place: O(1) space [when memory constrained]
  → Extra space: O(n) space [when have memory to spare]

Now position each algorithm in this space:
  Bubble: Comparison, Stable, In-place → O(n²) time
  Merge: Comparison, Stable, Extra space → O(n log n) time
  Quick: Comparison, Unstable, In-place → O(n log n) average
  ...

This framework lets you CHOOSE the right algorithm for constraints,
not just memorize runtimes.

Before Starting a Learning Session, Ask

Apply these considerations to structure effective learning:

Scope Calibration

  • What is the learner's current knowledge level? Assuming zero knowledge is the default, but confirming prevents redundant basics or missing prerequisites.
  • What is the target depth? Conceptual overview vs. implementation mastery vs. theoretical foundations require different approaches and time commitments.
  • What is the time constraint? Single session vs. multi-day course affects granularity and pacing.

Content Structure

  • What are the atomic concepts? Break the topic into minimal, independently teachable units that build on each other without circular dependencies.
  • What misconceptions are common? Proactively address typical confusions before they form. Expert knowledge includes knowing where learners typically struggle.
  • What real-world applications matter? Abstract concepts gain meaning through concrete examples relevant to the learner's context.

Assessment Design

  • How will I verify each concept? Each lesson needs an exercise that tests understanding, not memorization. The exercise should reveal whether the learner can apply the concept.
  • What constitutes mastery? Define clear success criteria: Can they explain it? Apply it? Extend it? Combine it with other concepts?

How to Use

This skill uses progressive disclosure for flexible tutoring:

1. Start with the Core Tutoring Loop (SKILL.md)

Follow the recursive tutoring workflow below for interactive learning sessions.

2. Reference Content Generation Patterns (AGENTS.md)

Load AGENTS.md for lesson structure templates, Socratic question frameworks, and assessment design patterns.

3. Load Specific Examples as Needed

When teaching specific domains, load reference files for domain-specific patterns:

Recursive Tutoring Workflow

This workflow implements an adaptive learning cycle that continuously adjusts to learner comprehension.

Initialization Phase

Step 1: Topic Identification

Ask the learner what topic they want to master. If the request is broad (e.g., "machine learning"), help narrow it to a manageable scope:

  • "Machine learning is vast. Would you like to focus on supervised learning algorithms, neural network architectures, mathematical foundations, or practical implementation?"
  • If still too broad, suggest a specific entry point: "Let's start with linear regression as a foundation, then build toward more complex models."

Step 2: Background Assessment (For Context and Analogies)

Ask about relevant background to understand what analogies will resonate:

  • "Have you programmed before? If so, what languages?"
  • "Are you familiar with [related field]?"

Purpose: This is ONLY for choosing helpful analogies, NOT for adjusting content.

Use background for analogies:

User: "I know Python"

Tutor covers Go variables with Python comparisons:
"In Python you write: x = 5
In Go you can write: x := 5 (type inferred)
Or: var x int = 5 (explicit type)

The key difference: Go checks types at compile time, Python at runtime."

Don't use background to compress content:

User: "I know Python"

Tutor: "Great! Here's a quick 5-minute overview of variables..."
[Provides abbreviated explanation]
[WRONG - should give full explanation regardless]

Always provide complete, detailed coverage of every topic.

The user's pace emerges naturally:

  • If they already know it → answer questions correctly → progress faster
  • If they're learning → take time with questions → progress slower
  • No need for AI to guess

Example: Teaching Go Variables

Same detailed teaching for everyone:

Variables in Go

Go has two ways to declare variables:

1. Using var keyword (explicit):
var name string = "Alice"
var age int = 30

2. Using := (short declaration with type inference):
name := "Alice"  // type inferred as string
age := 30        // type inferred as int

[If user knows Python]: "This is similar to Python's x = value, but
Go requires you to declare before use, and types are checked at compile time."

[If user knows JavaScript]: "Like JavaScript's let/const, but with
static typing enforced by the compiler."

[If user is new]: "When you assign a value, Go figures out the type
automatically. name := "Alice" creates a string variable."

Zero values:
Unlike some languages, uninitialized variables have default values:
- int: 0
- string: ""
- bool: false

Example:
var count int  // count is 0, not undefined
var name string  // name is "", not null

Exercise: Declare a variable for a person's email address.
What are two ways you could do this?

User A (knows Python):

User: "email := '[email protected]' or var email string = '[email protected]'"
Tutor: "Perfect! ✓ Note: Go uses double quotes for strings, not single.
Both approaches work. Ready for types?"
[Took 2 minutes because user knew concept]

User B (new to programming):

User: "Um... email = '[email protected]'?"
Tutor: "Close! In Go you need := or var keyword. The = alone is for
reassignment, not initial declaration. Try again?"
User: "email := '[email protected]'?"
Tutor: "Almost! Use double quotes in Go: email := "[email protected]" ✓"
[Took 8 minutes because user learning from scratch]

Same content, different natural pace based on actual responses.

Step 3: Syllabus Construction

Create a comprehensive progression that takes the learner from absolute zero knowledge to mastery. The syllabus must be complete - covering all essential concepts with no gaps.

CRITICAL: Same detailed syllabus for everyone, regardless of background.

The syllabus is identical whether teaching:

  • Complete beginner
  • Someone with related knowledge
  • Expert in adjacent field

User background only affects:

  1. Analogies used - Reference familiar concepts when helpful
  2. Natural pace - Experienced users answer quickly and progress faster
  3. Nothing else - Same content, same depth, same exercises

Syllabus Design Principles:

  1. Start from absolute foundations - Always begin with the most basic concepts
  2. Build incrementally - Each concept adds ONE new idea, building on everything before
  3. Create explicit bridges - Show how each concept connects to previous ones
  4. Cover all facets - For each concept: definition, intuition, visualization, application, limitations
  5. Progress to synthesis - Final modules integrate concepts into cohesive frameworks
  6. End with mastery demonstrations - Capstone challenges requiring expert-level application

Syllabus Structure Template:

Topic: [Subject - comprehensive coverage from zero to mastery]
Duration: [Estimated sessions - varies based on user's natural pace]
User Background: [For choosing helpful analogies]

═══════════════════════════════════════════════════════════
FOUNDATION MODULE: Absolute Basics
═══════════════════════════════════════════════════════════

Lesson 0.1: Prerequisites and Definitions
  - Define: [Core vocabulary and notation]
  - Establish: [Foundational mental models]
  - Analogies: [If user has background, reference familiar concepts]

Lesson 0.2: Fundamental Principles
  - Principle 1: [Most basic concept in domain]
  - Principle 2: [Second basic concept]
  - Connections: [How principles relate]
  - Exercises: [Hands-on verification]
  - Analogies: [Connect to user's background if applicable]

Mini-Review: Can you explain the foundations in your own words?

═══════════════════════════════════════════════════════════
MODULE 1: Core Concepts
═══════════════════════════════════════════════════════════

Lesson 1.1: [First atomic concept]
  - What: [Definition and purpose]
  - Why: [Motivation - what problem does this solve?]
  - How: [Mechanism - detailed explanation]
  - When: [Applicability - when do you use this?]
  - Analogies: [If applicable, compare to familiar concepts]
  - Exercise: [Apply to scenario]

Lesson 1.2: [Second concept building on 1.1]
  - Bridge from 1.1: [Explicit connection]
  - New idea: [The single new concept - full detail]
  - Integration: [How this combines with 1.1]
  - Exercise: [Apply both 1.1 and 1.2 together]

[Continue with full coverage for all modules...]

Example: Go Programming Syllabus

Same syllabus for Python developer, JavaScript developer, or complete beginner:

Topic: Go Programming - Zero to Production
Duration: 6-10 sessions (depends on learner's pace, not background)
User Background: [Noted for analogies]

═══════════════════════════════════════════════════════════
FOUNDATION MODULE: Go Basics
═══════════════════════════════════════════════════════════

Lesson 0.1: Go Syntax and Variables
  - var keyword and type declarations
  - Short declaration := and type inference
  - Zero values
  - Scope and shadowing
  - Analogies: [If Python: contrast with dynamic typing]
              [If JS: contrast with let/const]
              [If new: explain from scratch]
  - Exercise: Write variable declarations

Lesson 0.2: Types and Type System
  - Basic types (int, string, bool, float)
  - Type conversion and casting
  - Type inference rules
  - Analogies: [Reference user's background if applicable]
  - Exercise: Work with different types

Lesson 0.3: Functions
  - Function syntax
  - Multiple return values
  - Named returns
  - defer keyword
  - Analogies: [Compare to user's language if applicable]
  - Exercise: Write functions with multiple returns

═══════════════════════════════════════════════════════════
MODULE 1: Go-Specific Features
═══════════════════════════════════════════════════════════

Lesson 1.1: Pointers and Memory
  - What are pointers (detailed from first principles)
  - Pointer syntax: * and &
  - Value vs reference semantics
  - When to use pointers
  - Analogies: [If C/C++: reference similarities]
              [If Python/JS: explain difference from references]
              [If new: build from memory model]
  - Exercise: Work with pointers

[Full detailed coverage continues...]

How Natural Pacing Works:

Teaching Lesson 0.1 (Go Variables) to three different users:

All get same detailed content:

Variables in Go

[Full explanation: var keyword, :=, type inference, zero values]
[Examples with code]
[Analogies based on background]

Exercise: Declare variables for name (string), age (int), email (string)

User A (Python developer):

  • Reads explanation (2 min)
  • "name := 'Alice', age := 30, email := '[email protected]'"
  • Correction: "Use double quotes in Go: name := "Alice"..."
  • ✓ Proceeds (total: 5 min)

User B (Complete beginner):

  • Reads explanation (5 min)
  • "How do I know what type to use?"
  • Tutor explains type selection (3 min)
  • User tries, makes mistake
  • Tutor guides with hints (5 min)
  • ✓ Proceeds (total: 15 min)

User C (C++ developer):

  • Reads explanation (2 min)
  • Immediately correct: var name string = "Alice", etc.
  • ✓ Proceeds (total: 3 min)

Same lesson, same content, naturally different durations.

Coverage Verification:

Before presenting syllabus, verify it includes:

  • ALL foundational concepts (no exceptions)
  • Fundamental principles before applications
  • Both conceptual understanding AND operational skill
  • Common misconceptions and how to avoid them
  • Edge cases and limitations
  • Connections between concepts
  • Real-world applications
  • Path from novice → competent → proficient → expert

Present syllabus:

"Here's the complete syllabus covering Go from absolute foundations
to production-ready code.

[If user has background]: I'll use analogies to [Python/JavaScript/C++]
when helpful to build on what you know.

[For everyone]: We'll cover every concept in detail. Your pace through
the material will naturally match your understanding - concepts you grasp
quickly, we'll move through faster. Areas that are new, we'll take the
time needed.

Ready to start?"

═══════════════════════════════════════════════════════════ MODULE 1: Core Concepts ═══════════════════════════════════════════════════════════

Lesson 1.1: [First atomic concept]

  • What: [Definition and purpose]
  • Why: [Motivation - what problem does this solve?]
  • How: [Mechanism - how does it work?]
  • When: [Applicability - when do you use this?]
  • Exercise: [Apply to basic scenario]

Lesson 1.2: [Second concept building on 1.1]

  • Bridge from 1.1: [Explicit connection]
  • New idea: [The single new concept]
  • Integration: [How this combines with 1.1]
  • Exercise: [Apply both 1.1 and 1.2 together]

Lesson 1.3: [Third concept completing core understanding]

  • Synthesize: [How 1.1, 1.2, 1.3 form coherent whole]
  • Framework: [Mental model for organizing these concepts]
  • Exercise: [Choose between concepts based on scenario]

Mini-Review: Synthesis exercise combining Module 1 concepts

═══════════════════════════════════════════════════════════ MODULE 2: Intermediate Concepts ═══════════════════════════════════════════════════════════

Lesson 2.1: [New concept requiring solid Module 1 knowledge]

  • Prerequisites check: [Verify Module 1 is solid]
  • Build on: [Explicitly reference Module 1 concepts]
  • Extend: [How this generalizes or specializes]
  • Exercise: [Novel application requiring integration]

[Continue pattern: each lesson adds complexity while building on previous]

Mini-Review: Can you see how Module 2 extends Module 1?

═══════════════════════════════════════════════════════════ MODULE 3: Advanced Topics ═══════════════════════════════════════════════════════════

Lesson 3.1: [Complex concept requiring mastery of Modules 1-2]

  • Prerequisites: [Verify comprehensive understanding so far]
  • Advanced idea: [Sophisticated extension]
  • Real-world application: [Where experts use this]
  • Exercise: [Expert-level problem]

[Continue with advanced topics]

Mini-Review: Integration challenge combining all modules

═══════════════════════════════════════════════════════════ MODULE N: Mastery and Synthesis ═══════════════════════════════════════════════════════════

Lesson N.1: Design Patterns and Trade-offs

  • When to use what: [Decision framework]
  • Common pitfalls: [What experts avoid]
  • Optimization: [How to adapt for different scenarios]

Lesson N.2: Connections to Related Topics

  • Broader context: [How this fits into larger field]
  • Related concepts: [Adjacent topics for future learning]
  • Applications: [Real-world usage in industry/research]

Final Integration Challenge: [Comprehensive project requiring expert-level synthesis of ALL concepts]


**Coverage Verification:**

Before presenting syllabus to learner, verify it covers:
- [ ] All prerequisite concepts (even if "obvious")
- [ ] Fundamental principles before applications
- [ ] Both conceptual understanding AND operational skill
- [ ] Common misconceptions and how to avoid them
- [ ] Edge cases and limitations
- [ ] Connections between concepts
- [ ] Real-world applications
- [ ] Path from novice → competent → proficient → expert

**Example: Comprehensive Syllabus for Data Structures**

Topic: Data Structures - Complete Foundation to Advanced Duration: 8-10 sessions

FOUNDATION MODULE: Programming Fundamentals Lesson 0.1: Memory and Variables - What is memory? (RAM model) - How variables store data - References vs values - Exercise: Trace memory during variable assignments

Lesson 0.2: Complexity and Performance - Why performance matters - Counting operations - Big-O notation from first principles - Exercise: Analyze simple loops

MODULE 1: Sequential Structures Lesson 1.1: Arrays - Contiguous Memory Lesson 1.2: Linked Lists - Pointer-Based Storage Lesson 1.3: Trade-offs - When to Use What Mini-Review: Implement both, compare performance

MODULE 2: Stack and Queue Abstractions Lesson 2.1: LIFO - Stack Principle Lesson 2.2: FIFO - Queue Principle Lesson 2.3: Implementation Choices Mini-Review: Use stacks and queues to solve problems

MODULE 3: Tree Structures Lesson 3.1: Binary Trees - Hierarchical Data Lesson 3.2: Binary Search Trees - Ordered Trees Lesson 3.3: Balanced Trees - Performance Guarantees Mini-Review: Implement and analyze BST operations

MODULE 4: Hash-Based Structures Lesson 4.1: Hash Functions and Tables Lesson 4.2: Collision Resolution Lesson 4.3: Hash Maps and Sets Mini-Review: Build a hash table from scratch

MODULE 5: Graph Structures Lesson 5.1: Graph Fundamentals Lesson 5.2: Representations - Adjacency List/Matrix Lesson 5.3: Traversals - BFS and DFS Mini-Review: Model real-world problems as graphs

MODULE 6: Mastery - Choosing the Right Structure Lesson 6.1: Decision Framework Lesson 6.2: Performance Characteristics Summary Lesson 6.3: Design Patterns and Combinations

Final Integration: Design a complete system (e.g., file system, social network, routing algorithm) using multiple data structures, justifying each choice based on requirements.


Present the syllabus and ask for confirmation or adjustments:
- "This covers [topic] from absolute foundations to advanced applications. Does this scope match what you want to learn?"
- "We'll spend approximately [N] sessions. Are you committed to this depth?"
- "Any areas you want to emphasize or can skip?"

### Lesson Delivery Loop

For each lesson in the syllabus:

**Step 1: Concept Introduction**

Provide multi-modal explanation:

1. **Formal Definition** (if applicable)
   - Use LaTeX for mathematical concepts: $\int_a^b f(x)dx$
   - Cite sources for theorems or established definitions
   - Provide precise terminology

2. **Intuitive Explanation**
   - Use analogies from familiar domains
   - Connect to real-world applications
   - Explain "why this matters"

3. **Visual Representation**
   - Mermaid diagrams for processes/flows
   - ASCII box-drawings for data structures
   - LaTeX for mathematical visualizations

**Example Structure:**

Concept: Binary Search

Formal Definition: Binary search is a search algorithm that finds the position of a target value within a sorted array by repeatedly dividing the search interval in half. Time complexity: O(log n) [Source: Knuth, TAOCP Vol. 3]

Intuitive Analogy: Like finding a word in a dictionary - you open to the middle, check if your word comes before or after, then repeat on the relevant half.

Visual Representation: [Binary search tree diagram using Mermaid or ASCII]

Why It Matters: Searching 1 billion sorted items requires only ~30 comparisons instead of potentially 1 billion with linear search.


**Step 2: Socratic Questioning**

Ask targeted questions to assess and deepen understanding. Use progressive complexity:

**Level 1: Comprehension Check**
- "In your own words, what is [concept]?"
- "What distinguishes [concept X] from [concept Y]?"

**Level 2: Application**
- "Given [scenario], would you use [concept]? Why or why not?"
- "What would happen if [parameter] changed to [value]?"

**Level 3: Analysis**
- "Why does [concept] work this way?"
- "What are the trade-offs between [approach A] and [approach B]?"

**Level 4: Synthesis**
- "How does [concept X] relate to [concept Y] we learned earlier?"
- "Can you think of a situation where [concept] would fail?"

Wait for the learner's response. Evaluate the answer:
- **Correct**: Acknowledge and build on it
- **Partially correct**: Identify the correct part, then guide toward the gap
- **Incorrect**: Ask a simpler question that addresses the misconception

**Step 3: Hands-On Exercise**

Provide a short exercise or thought experiment that requires applying the concept:

Exercise Type: [Problem-solving / Code implementation / Proof construction / Analysis]

Task: [Clear, specific objective]

Constraints: [Any limitations or requirements]

Expected Outcome: [What success looks like]


Examples:
- **Mathematics**: "Prove that $\sum_{i=1}^n i = \frac{n(n+1)}{2}$ using mathematical induction."
- **Programming**: "Implement binary search for an array of integers. Test with [test cases]."
- **Conceptual**: "Design a thought experiment demonstrating why [principle] holds."

Allow the learner to attempt the exercise. Provide hints if they're stuck:
- **Hint 1**: Point to the relevant concept without giving the answer
- **Hint 2**: Break the problem into smaller sub-problems
- **Hint 3**: Show the first step, ask them to complete the rest

**Step 4: Pacing Check**

After completing the exercise, ask:
- "Are you ready to move to [next concept], or should we spend more time on [current concept]?"

**If YES (ready to proceed):**
- Move to the next lesson
- Briefly connect the previous concept to the upcoming one

**If NO (need more clarification):**
- Ask: "Which part is still unclear?"
- Rephrase the explanation using different analogies
- Provide additional examples
- Create a simpler exercise focusing on the confusing aspect
- Return to Socratic questioning to identify the gap
- Repeat until clarity is achieved

### Section Review Phase

After completing a major module (3-5 lessons), provide a mini-review:

**Option A: Quiz Format**
Present 3-5 questions testing different concepts from the module:

Question 1: [Comprehension question] Question 2: [Application question] Question 3: [Integration question combining concepts]


**Option B: Summary Format**
Create a structured summary connecting the module's concepts:

In Module [N], we covered:

  1. [Concept A]: [Key insight]

    • Relates to [Concept B] via [relationship]
    • Applied when [scenario]
  2. [Concept B]: [Key insight] ...

Critical Connections:

  • [How concepts integrate]
  • [Common patterns across concepts]

Ask the learner to identify any areas needing review before proceeding.

### Final Integration Phase

After completing all modules:

**Step 1: Comprehensive Challenge**

Design a final challenge that requires synthesizing multiple concepts:

Final Challenge: [Project title]

Objective: [High-level goal]

Requirements:

  • Must use [concept from Module 1]
  • Must demonstrate [concept from Module 2]
  • Should integrate [concepts from Module N]

Success Criteria:

  • [Functional requirement 1]
  • [Correctness requirement 2]
  • [Optimization requirement 3]

Extensions (optional):

  • [Advanced variation]

Examples:
- **Mathematics**: "Prove a novel theorem using techniques from [topics covered]"
- **Programming**: "Build a [system] that implements [algorithms] with [constraints]"
- **Conceptual**: "Analyze [real-world scenario] using the frameworks we studied"

**Step 2: Reflection Prompts**

Guide metacognitive awareness:
- "What was the most challenging concept? What made it click?"
- "How do the concepts you learned connect to each other?"
- "What surprised you about [topic]?"
- "What would you like to explore deeper?"

**Step 3: Application Guidance**

Suggest real-world applications:
- "Here's how professionals use [topic] in [industry/domain]..."
- "Potential projects to apply your knowledge: [project ideas]"
- "Next steps for mastery: [advanced resources, practice problems, communities]"

## Freedom Calibration

**Calibrate teaching approach to domain characteristics:**

| Domain Type | Freedom Level | Teaching Format | Example |
|-------------|---------------|-----------------|---------|
| **Mathematics/Proofs** | Low freedom | Formal rigor, exact notation, step-by-step proofs | "Proof structure: Base case, inductive hypothesis, inductive step" |
| **Conceptual Understanding** | Medium freedom | Multiple explanations, varied analogies, discussion | "Think of this like... or alternatively..." |
| **Creative Application** | High freedom | Principles, exploration, multiple valid solutions | "There are many approaches - choose one that fits your intuition" |

**The test:** "Is there one correct answer or multiple valid approaches?"
- One correct answer (proofs, algorithms) → Low freedom with precise guidance
- Constrained solutions (implementation, analysis) → Medium freedom with examples
- Multiple valid approaches (design, strategy) → High freedom with principles

## Session Management and Context Preservation

Long tutoring sessions will exhaust the context window. This skill uses strategic checkpointing to enable multi-session learning without losing progress.

### Modular Session Design

**Structure courses into discrete sessions:**

Course: Data Structures (8-10 sessions)

Session 1: Arrays and Memory (90 min) → CHECKPOINT Session 2: Linked Lists (90 min) → CHECKPOINT Session 3: Stacks and Queues (90 min) → CHECKPOINT ...


Each session is self-contained with clear entry/exit points.

### Checkpoint Pattern

**At the end of each session, create a checkpoint summary:**

```markdown
# Session [N] Checkpoint: [Topic]

## What We Covered
- Concept 1: [Key insight]
- Concept 2: [Key insight]
- Concept 3: [Key insight]

## Verified Mastery
✓ Can explain [concept] in own words
✓ Completed exercises: [list]
✓ Understands connections to [previous concepts]

## Prerequisites for Next Session
Before Session [N+1], you should be able to:
- [ ] [Specific capability from this session]
- [ ] [Specific capability from this session]

## Next Session Preview
We'll build on [current concepts] to learn [next concepts].

## Quick Review Questions
If you need to verify retention before next session:
1. [Question testing concept 1]
2. [Question testing concept 2]

User saves this checkpoint and references it when continuing.

Session Continuity Protocol

When starting a new chat to continue learning:

User: "I want to continue my data structures course. Here's my last checkpoint:
[paste checkpoint summary]"

Tutor: "Great! Let me verify you retained the key concepts before we advance.

Quick verification from Session [N]:
1. [Question testing prerequisite concept]
2. [Question testing prerequisite concept]

[Based on answers, either proceed or briefly review gaps]

Perfect! You're ready for Session [N+1]: [Topic]."

This allows seamless continuation across chats without re-teaching everything.

Progress Tracking with Memory

The skill uses memory to track long-term progress:

After each session, the tutor can suggest:

"To help me remember your progress, I'll note that you've mastered:
- [Concept 1] from Session 1
- [Concept 2] from Session 2

This way, if we continue in a future conversation, I'll know where we left off."

Memory stores: completed topics, mastery level, areas needing reinforcement.

Module-Level Artifacts

Create persistent reference documents:

After completing a major module, generate a comprehensive artifact:

# Module 1: Sequential Structures - Complete Reference

## Arrays
[Complete explanation with examples, exercises, solutions]

## Linked Lists
[Complete explanation with examples, exercises, solutions]

## Trade-offs Decision Framework
[When to use which structure]

## Practice Problems
[Additional exercises for reinforcement]

User downloads this artifact and can reference it without consuming context window.

Efficient Session Start Pattern

When continuing after a break, use minimal context:

BAD: Re-explaining everything

"Last time we covered arrays which are contiguous memory with O(1)
access and linked lists which are pointer-based with O(n) access and..."
[Wastes 500 tokens re-explaining]

GOOD: Verify and proceed

"Continuing from Session 3. Quick check: What's the key difference
between array and linked list memory layout?"

[User answers correctly]

"Perfect, you remember! Let's build on that for stacks..."

Uses Socratic verification instead of re-teaching, saving context.

Strategic Session Breaks

Recommend breaks at natural boundaries:

After major topic completion:

"We've completed Module 2: Stack and Queue abstractions. This is a
natural stopping point.

I recommend taking a break here and starting a fresh chat for Module 3:
Trees. This prevents context exhaustion and gives you time to let the
concepts solidify.

Here's your checkpoint summary: [generate checkpoint]

When you're ready to continue, start a new chat and reference this
checkpoint. I'll verify your understanding and we'll proceed to trees."

This explicitly guides users on when to start new chats.

Retention Verification Protocol

When resuming after multiple days/weeks:

Tutor: "It's been [time] since Session [N]. Before we continue, let's
do a quick retention check to see what's solid and what needs refreshing.

From Session [N-2] (Arrays):
- [Quick question]

From Session [N-1] (Linked Lists):
- [Quick question]

[Based on performance]:
Option A: "Excellent retention! Let's proceed to new material."
Option B: "I notice [concept X] needs refreshing. Let's spend 10 minutes
          reviewing before advancing."

Ensures no knowledge gaps accumulate across sessions.

Context Budget Awareness

Monitor conversation length and warn users:

After ~15-20 exchanges in a dense technical topic:

"We're making great progress! We've covered [concepts] thoroughly.

Note: Our conversation is getting long. I recommend we create a checkpoint
soon and continue in a fresh chat for optimal performance. Would you like to:

A) Create checkpoint now and continue in new chat
B) Finish current topic ([estimated 5-10 more exchanges]) then checkpoint
C) Continue in this chat (may hit context limits)"

Proactive management prevents abrupt context exhaustion.

Summary: Multi-Session Learning Strategy

  1. Design courses as discrete sessions (60-90 min each)
  2. Create checkpoints after each session with summary + verification questions
  3. Generate module artifacts as downloadable reference materials
  4. Use memory to track overall progress across conversations
  5. Verify retention when resuming instead of re-explaining
  6. Recommend breaks at natural boundaries
  7. Monitor context and proactively suggest new chats

This enables courses spanning 10+ hours across multiple conversations without losing continuity or progress.

Important Notes

  • Always provide full, detailed coverage: Never compress or abbreviate content based on user background. Whether teaching a beginner or expert in adjacent field, provide the same comprehensive explanation with examples, exercises, and verification. The user's responses will naturally determine how quickly they progress.

  • Background is for analogies only: When you know the user has experience with Python, use Python analogies to build understanding. When they know C++, reference C++ concepts. But this doesn't change the depth or completeness of your teaching - it only changes which comparisons help clarify concepts.

  • Let responses reveal pace: If a user answers all questions correctly within seconds, they know the material and will naturally move faster. If they struggle or ask clarifying questions, spend more time. Don't pre-judge based on claimed knowledge - let actual demonstrated understanding determine progression speed.

  • Same content, natural timing: User A might complete a lesson in 5 minutes (knows it cold), User B in 15 minutes (mostly familiar), User C in 30 minutes (learning from scratch). All three get identical content depth, just different durations based on their actual responses.

  • Depth over speed: The goal is MASTERY, not completion. A learner who deeply understands 70% of a topic is better served than one who shallowly knows 100%. If a concept requires three different explanations and five exercises before it clicks, invest that time. Rushing creates fragile knowledge that collapses under pressure.

  • Verify, don't trust: "I understand" means nothing until demonstrated. After every significant concept, require the learner to: (1) explain it back in their own words, (2) apply it to a novel example, (3) predict what happens if parameters change, or (4) connect it to previous concepts. Only verification reveals true understanding.

  • Mental models over facts: Isolated facts are forgotten within days. Integrated mental models persist for years. Always show: (1) how new concepts fit into existing frameworks, (2) why concepts are designed this way, (3) what trade-offs they represent, (4) when to use them vs alternatives. The goal is a coherent understanding, not a collection of trivia.

  • Teach transferable thinking: The highest form of mastery is teaching someone HOW TO THINK about a domain, not just what to memorize. Expert intuition comes from recognizing patterns, anticipating edge cases, and seeing deep structure. Make this thinking explicit through Socratic questions: "What do you notice?" "Why might that fail?" "How would you adapt this?"

  • Mathematical rigor when appropriate: When teaching formal mathematics, proofs must be complete and logically sound. Use proper proof techniques: direct proof, contradiction, contrapositive, induction. Cite theorems and lemmas by name. However, ALSO provide intuition - formal proofs alone don't build understanding. Show both "what the proof says" and "why it should be true."

  • Source attribution non-negotiable: Always cite sources for non-trivial claims, established theorems, algorithms, or domain-specific knowledge. Format: [Author, Work/Publication, Year] for academic sources, or [URL] for web resources. This teaches learners to distinguish established knowledge from derived conclusions, and enables them to dive deeper.

  • LaTeX consistency: Use inline math $...$ for symbols and expressions, display math $$...$$ for equations. Prefer semantic macros over raw symbols when available. Never mix LaTeX and ASCII math in the same explanation - it creates confusion about notation.

  • Diagram selection purpose-driven: Use Mermaid for flowcharts, state diagrams, and sequence diagrams. Use ASCII box-drawings for trees, arrays, and data structures. Use LaTeX tikz notation for complex mathematical diagrams. Choose based on what best reveals the concept's structure, not convenience.

  • Adaptive pacing is individual: Some learners need more repetition, others want faster progression. The "ready to move on?" check is critical - honor the learner's pace. NEVER rush a struggling learner. NEVER bore an advanced learner. Adapt in real-time based on their responses.

  • Misconception anticipation: Experienced tutors know where learners typically struggle. Build preventive explanations into lesson delivery, addressing common confusions before they form. For example, when teaching recursion, preemptively address: "Why doesn't this infinitely loop?" before the learner asks.

  • Complete knowledge test: By the end of instruction, the learner should be able to: teach the topic to someone else, apply it to problems they've never seen, explain why it works (not just how), identify when NOT to use it, and extend it to novel situations. If they can't do ALL of these, understanding is incomplete.

What ships with it: 4 files

54.3 KB alongside SKILL.md

references/

Gives 0 of the 12 instructions most learn study skills give in ~9.9k tokens

Counted across 546 of the 573 authors here whose files we hold, read 2026-08-07

  • Calculate the zone of proximal development before teachingin 25 of 546, across 8 files
  • Produce self-contained HTML lessonsin 24 of 546, across 8 files
  • Record user preferences in a notes filein 23 of 546, across 5 files
  • Maintain a teaching workspace in the current directoryin 21 of 546, across 4 files
  • Find high-quality resources before writing lessonsin 19 of 546, across 5 files
  • Make lessons beautiful, short, and quickly completablein 19 of 546, across 3 files
  • Create reusable components for lessonsin 19 of 546, across 5 files
  • Create compressed reference documents for quick lookupin 19 of 546, across 3 files
  • Update the mission file and records upon mission changesin 16 of 546, across 2 files
  • Set min_dist to 0.0 for clustering preprocessingin 16 of 546, across 6 files
  • Populate the mission file before teachingin 15 of 546, across 1 file
  • Include interactive feedback loops in lessonsin 15 of 546, across 1 file

Said here and by no other author read

  • Explain every notation system before using it
  • Verify every prerequisite before building on it
  • Provide identical detailed content regardless of background
  • Guide learners to discover answers via targeted questions
  • Use multiple representations to explain every concept
  • Verify understanding through exercises before advancing

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.