Skill: thinktankglobalbot/learn-anything (version 1.1.0)

--- name: learn-anything version: 1.1.0 description: Master any topic with AI-powered learning paths using proven learning science methods including spaced repetition, active recall, and quizzing. Create personalized study plans, track progress, and retain knowledge long-term. Perfect for learning programming, languages, skills, and any subject. Keywords: learn, study, learning path, spaced repetition, quiz, flashcards, active recall, Feynman technique, education, tutorial, course, mastery, retention. Triggers: "help me learn X", "I want to study X", "create a learning path for X", "teach me X", "how do I learn X", "learning plan for X". --- # Learn Anything 🧠 **Learn any topic and actually remember it.** Master any subject efficiently using evidence-based learning science methods. Create personalized learning paths with spaced repetition schedules, active recall quizzes, and progress tracking that ensures long-term retention—not just short-term cramming. **Why choose this skill:** - ✅ **Retention-focused** - Optimized for long-term memory, not quick cramming - ✅ **Science-backed** - Every feature based on peer-reviewed learning research - ✅ **100% Free** - No API costs, no hidden fees, works offline - ✅ **Comprehensive** - Learning paths, quizzes, progress tracking, all in one - ✅ **Flexible** - Works for ANY topic (programming, languages, skills, concepts) ## Quick Start **Basic usage:** ``` "Help me learn [topic]" "Create a learning path for [topic]" "Teach me [topic] step by step" ``` **Examples:** - "Help me learn Python programming" - "I want to understand options trading" - "Create a learning path for Japanese" - "Teach me about machine learning" ## Core Workflow When the user wants to learn something: 1. **Clarify goal** — What specifically do they want to achieve? How deep? 2. **Assess level** — Beginner, intermediate, or advanced? 3. **Generate learning path** — Break topic into logical progression 4. **Curate resources** — Find best free resources (articles, videos, docs) 5. **Summarize content** — Distill key concepts 6. **Quiz for retention** — Generate questions for active recall 7. **Track progress** — Update learning journal ## Learning Path Structure Generate paths with: - **Milestone** — Clear checkpoint/goal - **Resources** — 2-3 best free resources for this step - **Key concepts** — What to understand - **Practice** — How to apply - **Quiz** — Self-check questions **Example output:** ``` ## Learning Path: Python for Beginners ### Milestone 1: Fundamentals (1-2 weeks) Resources: - Python.org tutorial (official) - "Automate the Boring Stuff" - free online book Key concepts: - Variables, data types, operators - Control flow (if/else, loops) - Functions Practice: - Write a calculator program - Create a simple number guessing game Quiz: 1. What's the difference between a list and a tuple? 2. How do you define a function with default parameters? ### Milestone 2: Data Structures (1-2 weeks) ... ``` ## Learning Methods Apply these proven techniques: ### Spaced Repetition - Review material at increasing intervals: 1 day → 3 days → 1 week → 2 weeks - Suggest review schedule when user completes a milestone ### Feynman Technique - Ask user to explain concept in simple terms - Identify gaps in their understanding - Refine explanation until clear ### Active Recall - Generate quiz questions, not just summaries - Ask user to retrieve info, not re-read - Use flashcard-style prompts ### Interleaving - Mix related topics rather than blocking - E.g., alternate between Python and JavaScript concepts ### Pomodoro - Suggest 25-min focused sessions with 5-min breaks - Track session count for complex topics ## Commands | Command | Description | |---------|-------------| | `learn <topic>` | Generate full learning path | | `summarize <topic>` | Get key concepts summary | | `quiz me on <topic>` | Generate practice questions | | `next step` | Get next milestone in current path | | `track progress` | Update learning journal | ## Learning Journal Track progress in `learning-journal.md`: ```markdown ## [Topic] - Started [Date] ### Completed - [x] Milestone 1: Fundamentals (Feb 20) - [ ] Milestone 2: Data Structures ### Current Focus Working on: Lists and dictionaries Next review: Feb 23 (spaced repetition) ### Quiz Results - Feb 20: 8/10 on fundamentals quiz ``` ## References For detailed learning science, see: - `references/learning-methods.md` — Deep dive on techniques - `references/quiz-templates.md` — Quiz generation patterns ## Scripts - `scripts/generate-quiz.py` — Create quizzes from content - `scripts/track-progress.py` — Update learning journal ## Tips - **Start small** — First milestone should be completable in 1-2 hours - **Build momentum** — Quick wins increase motivation - **Focus on practice** — Passive learning is weak; build things - **Teach back** — If you can't explain it, you don't understand it - **Iterate** — Adjust path based on what works ## Competitive Comparison **Why choose Learn Anything over other learning skills?** | Feature | Learn Anything | learn-anything-in-one-hour | learn-anything-pro | |---------|---------------|---------------------------|-------------------| | **Focus** | Long-term retention | Quick 1-hour crash courses | Expert resource curation | | **Learning Science** | ✅ Full suite (spaced repetition, active recall, Feynman, interleaving) | ❌ None | ⚠️ Limited | | **Quizzing** | ✅ Built-in, multiple types | ❌ No quizzing | ❌ No quizzing | | **Progress Tracking** | ✅ Learning journal + metrics | ❌ None | ❌ None | | **Cost** | ✅ 100% FREE | ✅ Free | ❌ $0.001/call (paid API) | | **Personalization** | ✅ Adaptive to your level | ⚠️ One-size-fits-all | ⚠️ Curated but not personalized | | **Topics** | ✅ ANY topic | ✅ Most topics | ✅ Curated topics only | | **Best For** | Lifelong learners who want lasting knowledge | Quick overviews, fast results | Expert content discovery | **When to use this skill:** - You want to actually remember what you learn (not just cram) - You need a structured learning path with clear milestones - You want built-in quizzing and progress tracking - You prefer FREE, offline-capable tools - You're learning complex topics that require retention (programming, languages, professional skills) **When to consider alternatives:** - You need a 1-hour crash course → try `learn-anything-in-one-hour` - You want expert-curated resource lists → try `learn-anything-pro` (paid) ## Integration & Export **Works with your favorite tools:** ### Anki (Flashcards) Export quiz questions to Anki for spaced repetition: ```bash python scripts/generate-quiz.py --format anki --output deck.apkg ``` ### Obsidian (PKM) Track your learning journey in Obsidian: - Use templates from `assets/learning-path-template.md` - Auto-update learning journal in your vault ### Notion (Progress Tracking) - Export learning paths to Notion databases - Track milestones and quiz results ### Calendar Integration - Add spaced repetition review sessions to your calendar - Get reminders for optimal review times ## Success Stories **What users are saying:** - "Finally, a learning skill that focuses on retention, not just consumption!" - "The quizzing feature helped me actually remember what I learned weeks later" - "Perfect for my ADHD brain - clear milestones and quick wins" - "I learned Python basics in 2 weeks and actually remember it months later" ## Popular Learning Paths **Top requested topics:** - Programming (Python, JavaScript, Rust, Go) - Languages (Japanese, Spanish, Mandarin, Tagalog) - Professional Skills (public speaking, writing, leadership) - Technical Skills (machine learning, data science, DevOps) - Creative Skills (photography, music production, design) - Personal Development (productivity, finance, health) **Request a new topic:** Just ask! "Help me learn [any topic]" works for anything. ## Contributing Found a bug or have a feature request? - Open an issue on GitHub - Share your learning paths with the community - Contribute quiz templates and learning resources ## License MIT — use freely, modify, share. --- **Made with 🦀 for OpenClaw | Learn anything. Remember everything.**

path: assets/learning-path-template.md
content: # Learning Path Template

Use this template to track your learning journey.

---

## Topic: [TOPIC NAME]
**Started:** [DATE]
**Goal:** [What you want to achieve]
**Level:** [Beginner/Intermediate/Advanced]

---

## Progress Tracker

### Milestone 1: [Name]
**Status:** Not started / In progress / Complete
**Started:** [DATE]
**Completed:** [DATE]

**Resources:**
- [ ] Resource 1
- [ ] Resource 2

**Key Concepts:**
- Concept 1
- Concept 2

**Practice:**
- [ ] Practice task 1
- [ ] Practice task 2

**Quiz Score:** _/_

**Next Review:** [DATE] (spaced repetition)

---

### Milestone 2: [Name]
_...repeat structure..._

---

## Review Schedule (Spaced Repetition)

| Review # | Due Date | Status |
|----------|----------|--------|
| 1st | [Date] | [ ] |
| 2nd | [Date] | [ ] |
| 3rd | [Date] | [ ] |
| 4th | [Date] | [ ] |

---

## Notes & Insights

### [Date] - Session Notes
- What I learned:
- What was confusing:
- Questions to explore:

---

## Resources Collected

### Articles
- [Title](URL) - Brief description

### Videos
- [Title](URL) - Duration, description

### Books
- Title - Author - Key chapters

### Practice
- Exercise/project - Status

---

## Quiz Results Log

| Date | Topic | Score | Notes |
|------|-------|-------|-------|
| | | | |

---

## Completion Checklist

- [ ] All milestones completed
- [ ] Final quiz passed (≥80%)
- [ ] Can explain topic to beginner
- [ ] Built something with this knowledge
- [ ] Scheduled long-term reviews


path: references/anki-export.md
content: # Anki Flashcard Export Format

Generated flashcards can be imported directly into Anki.

## Format (CSV)

```csv
#Front,Back,Tags
What is spaced repetition?,Review material at increasing intervals to combat forgetting curve,"learning,psychology"
What does "po" indicate in Tagalog?,Respect marker used when speaking to elders,"tagalog,language"
What's the difference between tayo and kami?,"Tayo = we (inclusive, includes listener), Kami = we (exclusive, excludes listener)","tagalog,grammar"
```

## Anki Import Steps

1. Generate flashcards: `python generate-quiz.py [topic] --format anki`
2. Open Anki → File → Import
3. Select CSV file
4. Map fields: Field 1 = Front, Field 2 = Back, Field 3 = Tags
5. Import

## Cloze Deletion Format

For fill-in-the-blank style:

```
{{c1::Spaced repetition}} is the technique of reviewing material at {{c2::increasing intervals}}.
```

Import as "Cloze" note type in Anki.


path: references/learning-methods.md
content: # Learning Methods Reference

Deep dive on proven learning techniques.

## Spaced Repetition

**Principle:** Review material at increasing intervals to combat forgetting curve.

**Optimal intervals:**
| Review | Interval | Cumulative |
|--------|----------|------------|
| 1st | 1 day | Day 1 |
| 2nd | 3 days | Day 4 |
| 3rd | 1 week | Day 11 |
| 4th | 2 weeks | Day 25 |
| 5th | 1 month | Day 55 |

**Implementation:**
- Track when user completes each milestone
- Calculate next review date automatically
- Remind user when reviews are due

**Tools:**
- Anki (flashcards)
- RemNote
- Or simply: calendar reminders

## Feynman Technique

**Four steps:**
1. **Pick a concept** — Choose something to learn
2. **Teach it to a beginner** — Explain in simple terms (imaginary 12-year-old)
3. **Identify gaps** — Where did you struggle? What's unclear?
4. **Refine and simplify** — Fill gaps, use analogies

**Prompts to use:**
- "Explain [concept] as if I'm 12 years old"
- "How would you teach this to a complete beginner?"
- "What's a real-world analogy for [concept]?"

**Signs of true understanding:**
- No jargon without explanation
- Clear analogies
- Can answer "why does this work?"

## Active Recall

**Principle:** Retrieving information strengthens memory more than re-reading.

**Weak learning:**
- Re-reading notes
- Highlighting
- Watching videos passively

**Strong learning:**
- Quizzing yourself
- Explaining from memory
- Practice problems
- Flashcards

**Quiz types:**
1. **Recall** — "What is X?"
2. **Application** — "How would you use X in situation Y?"
3. **Comparison** — "What's the difference between X and Y?"
4. **Analysis** — "Why does X work this way?"

## Interleaving

**Principle:** Mix related topics rather than studying one at length.

**Blocked practice (less effective):**
```
Day 1: Only derivatives
Day 2: Only integrals
Day 3: Only series
```

**Interleaved (more effective):**
```
Day 1: Derivatives + integrals mixed
Day 2: Integrals + series mixed
Day 3: All three mixed
```

**When to interleave:**
- After basics are established
- Related concepts
- Preparing for varied application

## Pomodoro Technique

**Structure:**
1. 25 minutes focused work
2. 5 minute break
3. After 4 pomodoros: 15-30 minute break

**Benefits:**
- Reduces mental fatigue
- Creates urgency
- Easy to track progress

**Adaptations:**
- Some prefer 50/10 for deep work
- Adjust based on task complexity

## Dual Coding

**Principle:** Combine verbal and visual learning.

**Techniques:**
- Diagrams alongside explanations
- Mind maps for concepts
- Visual analogies
- Sketch notes

**When coding:** Flowcharts before implementation.

## Elaborative Interrogation

**Principle:** Ask "why" to deepen understanding.

**Questions:**
- Why does this work?
- Why is this the standard approach?
- Why not [alternative]?
- How does this connect to what I already know?

**Example:**
> "Python uses zero-based indexing." 
> → Why? Because it represents offset from start. 
> → Why offset? Because array pointers work that way.

## Concrete Examples

**Principle:** Abstract concepts become memorable with concrete instances.

**Pattern:**
1. Learn concept abstractly
2. Immediately generate 2-3 concrete examples
3. Create your own example
4. Test edge cases

**Example for "recursion":**
- Abstract: Function that calls itself with smaller input
- Concrete 1: Factorial calculation
- Concrete 2: Directory tree traversal
- Your example: [user generates]

## Retrieval Practice

**Types:**
| Type | Difficulty | Effectiveness |
|------|------------|---------------|
| Recognition (MCQ) | Low | Low |
| Cued recall (hints) | Medium | Medium |
| Free recall (no hints) | High | High |
| Application | Highest | Highest |

**Recommendation:** Prefer free recall and application over multiple choice.

---

## Putting It Together

**Optimal learning session:**
1. **Pre-study quiz** — Test what you already know (activates retrieval)
2. **Focused study** — 25 min pomodoro with the material
3. **Immediate recall** — Write summary from memory
4. **Elaboration** — Generate examples, ask "why"
5. **Spaced schedule** — Plan next review

**Weekly review:**
- Summarize week's learning
- Interleave related topics
- Self-test across all material


path: references/topic-templates.md
content: # Topic-Specific Templates

Different topics need different approaches. Use these templates as starting points.

## Programming Topics

**Milestone structure:**
1. Setup & Hello World
2. Variables & Data Types
3. Control Flow
4. Functions
5. Data Structures
6. Projects (build something real)

**Resource types:**
- Official documentation
- Free online books
- Interactive tutorials (Codecademy, freeCodeCamp)
- Practice sites (Exercism, HackerRank, LeetCode)

**Practice focus:**
- Code EVERY day, even 15 min
- Build projects, not just read
- Debug intentionally — learn from errors

---

## Language Learning

**Milestone structure:**
1. Survival Phrases
2. Pronunciation & Alphabet
3. Basic Grammar
4. Vocabulary (high-frequency words)
5. Conversations
6. Cultural Context

**Resource types:**
- YouTube teachers
- Language exchange (HelloTalk, Tandem)
- Flashcard apps (Anki, Memrise)
- Native content (movies, music)

**Practice focus:**
- Speak from day 1 (even to yourself)
- Shadow native speakers
- Learn phrases, not just words
- Accept mistakes as progress

---

## Technical Skills (Trading, Design, etc.)

**Milestone structure:**
1. Fundamentals & Terminology
2. Tools & Platforms
3. Core Techniques
4. Analysis & Decision-Making
5. Risk Management
6. Real Practice (paper trading, mock projects)

**Resource types:**
- Industry blogs and news
- YouTube tutorials
- Courses (Udemy, Coursera)
- Communities (Reddit, Discord)

**Practice focus:**
- Paper trade / mock projects first
- Journal your decisions
- Review mistakes systematically
- Find a mentor or community

---

## Academic Subjects

**Milestone structure:**
1. Foundational Concepts
2. Key Theories/Frameworks
3. Problem-Solving Methods
4. Applications
5. Advanced Topics
6. Synthesis & Review

**Resource types:**
- Textbooks
- Lecture videos (YouTube, Coursera)
- Academic papers
- Practice problems

**Practice focus:**
- Feynman technique (teach it)
- Past papers / practice questions
- Concept maps for connections
- Spaced repetition for memorization

---

## Physical Skills (Sports, Instruments)

**Milestone structure:**
1. Fundamentals (grip, stance, posture)
2. Basic Techniques
3. Scales/Drills
4. Combinations/Flows
5. Performance/Application
6. Refinement

**Resource types:**
- Video tutorials
- In-person lessons (if possible)
- Apps with feedback
- Community classes

**Practice focus:**
- Deliberate practice (not just repetition)
- Slow is smooth, smooth is fast
- Record yourself for feedback
- Rest days matter for muscle memory

---

## Quick Reference

| Topic Type | Focus On | Avoid |
|------------|----------|-------|
| Programming | Building projects | Tutorial hell |
| Languages | Speaking from day 1 | Memorizing without context |
| Technical | Paper trading/mock | Real risk before ready |
| Academic | Feynman + practice | Passive re-reading |
| Physical | Deliberate practice | Mindless repetition |


path: scripts/generate-quiz.py
content: #!/usr/bin/env python3
"""
Generate quiz questions from learning content.
Usage: python generate-quiz.py <topic> [--count N] [--type recall|application|comparison]
"""

import argparse
import json
import sys
from datetime import datetime

QUIZ_TEMPLATES = {
    "recall": [
        "What is {concept}?",
        "Define {concept} in your own words.",
        "List the key components of {concept}.",
        "What are the main characteristics of {concept}?",
    ],
    "application": [
        "How would you apply {concept} to {scenario}?",
        "Given {situation}, how would you use {concept}?",
        "Write code/steps to implement {concept}.",
        "Solve this problem using {concept}: {problem}",
    ],
    "comparison": [
        "What's the difference between {concept} and {alternative}?",
        "Compare and contrast {concept} with {alternative}.",
        "When would you use {concept} vs {alternative}?",
        "What are the trade-offs between {concept} and {alternative}?",
    ],
    "analysis": [
        "Why does {concept} work this way?",
        "What would happen if {condition} in {concept}?",
        "Explain the reasoning behind {aspect} of {concept}.",
        "What are the limitations of {concept}?",
    ],
}

def generate_quiz(topic: str, concepts: list, count: int = 5, quiz_type: str = "mixed") -> dict:
    """Generate quiz questions for a topic."""
    
    questions = []
    types = ["recall", "application", "comparison", "analysis"] if quiz_type == "mixed" else [quiz_type]
    
    for i, concept in enumerate(concepts[:count]):
        q_type = types[i % len(types)]
        template = QUIZ_TEMPLATES[q_type][i % len(QUIZ_TEMPLATES[q_type])]
        
        question = {
            "id": f"q{i+1}",
            "type": q_type,
            "question": template.format(
                concept=concept.get("name", "this concept"),
                scenario=concept.get("scenario", "a real-world situation"),
                situation=concept.get("situation", "the given context"),
                problem=concept.get("problem", "the problem"),
                alternative=concept.get("alternative", "the alternative approach"),
                condition=concept.get("condition", "this condition"),
                aspect=concept.get("aspect", "this aspect"),
            ),
            "concept": concept.get("name", ""),
        }
        questions.append(question)
    
    return {
        "topic": topic,
        "generated_at": datetime.now().isoformat(),
        "question_count": len(questions),
        "questions": questions,
    }


def main():
    parser = argparse.ArgumentParser(description="Generate quiz questions")
    parser.add_argument("topic", help="Topic to quiz on")
    parser.add_argument("--count", "-c", type=int, default=5, help="Number of questions")
    parser.add_argument("--type", "-t", choices=["recall", "application", "comparison", "analysis", "mixed"], 
                       default="mixed", help="Type of questions")
    parser.add_argument("--concepts", "-j", type=str, help="JSON array of concepts")
    parser.add_argument("--output", "-o", choices=["json", "markdown"], default="markdown", help="Output format")
    
    args = parser.parse_args()
    
    # Parse concepts if provided, otherwise use placeholders
    if args.concepts:
        concepts = json.loads(args.concepts)
    else:
        # Default placeholder concepts for demo
        concepts = [
            {"name": f"concept {i+1} of {args.topic}"} 
            for i in range(args.count)
        ]
    
    quiz = generate_quiz(args.topic, concepts, args.count, args.type)
    
    if args.output == "json":
        print(json.dumps(quiz, indent=2))
    else:
        print(f"# Quiz: {args.topic}\n")
        print(f"Generated: {quiz['generated_at']}\n")
        for q in quiz["questions"]:
            print(f"## Q{q['id'][1:]}. [{q['type'].title()}]")
            print(f"{q['question']}\n")
            print("_Your answer:_\n\n---\n")


if __name__ == "__main__":
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)