Learning Planner
Personal learning management system that helps set learning goals, create plans, track progress, and provides spaced repetition review features.
Features
1. Learning Goal Management
- Skill tree definition and breakdown
- Knowledge point hierarchy management
- Goal priority settings
- Goal completion time planning
2. Learning Plan Generation
- Daily learning task generation
- Weekly learning plans
- Automatic plan adjustment
- Learning reminder settings
3. Progress Tracking and Visualization
- Real-time learning progress tracking
- Progress visualization charts
- Learning time statistics
- Completion rate analysis
4. Spaced Repetition Review System
- SM-2 algorithm implementation
- Flashcard-based review
- Automatic scheduling
- Forgetting curve optimization
5. Learning Resource Management
- Resource link bookmarking
- Resource categorization
- Resource to knowledge point mapping
- Resource usage statistics
6. Learning Outcome Evaluation
- Self-assessment records
- Test score management
- Learning effectiveness analysis
- Ability growth curves
Installation
cd ~/.openclaw/workspace/skills/learning-planner
pip install -e .
# Add to PATH (optional)
ln -s ~/.openclaw/workspace/skills/learning-planner/src/learning_cli.py ~/.local/bin/learning
Usage
Learning Goals
# Create learning goal
learning goal create "Python Programming" --description "Master Python programming language" --deadline 2024-12-31
# Create sub-goals (knowledge point breakdown)
learning goal create "Python Basic Syntax" --parent 1 --priority high
learning goal create "Python OOP" --parent 1 --priority high
learning goal create "Python Advanced Features" --parent 1 --priority medium
# List goals
learning goal list
# View goal details
learning goal show 1
# Update goal progress
learning goal progress 1 --percent 75
# Complete goal
learning goal complete 1
Learning Plans
# Generate today's learning plan
learning plan today
# Generate this week's learning plan
learning plan week
# View plans
learning plan list
# Mark task complete
learning plan complete 1
# Postpone task
learning plan postpone 1 --days 1
Spaced Repetition Review
# Create review card
learning card create "Python list comprehension syntax" --answer "[x for x in iterable if condition]" --tags python,basics
# Today's review
learning review today
# View review statistics
learning review stats
# Manually adjust card difficulty
learning card difficulty 1 --level hard
Learning Resources
# Add resource
learning resource add "Python Official Documentation" --url https://docs.python.org --type documentation --tags python
# Link resource to goal
learning resource link 1 --goal 1
# List resources
learning resource list
# Search resources
learning resource search python
Progress and Reports
# Learning statistics
learning stats
# Generate learning report
learning report --days 30
# View skill tree progress
learning tree
# Learning time statistics
learning time --days 7
Data Storage
Database location: ~/.config/learning-planner/learning.db
# View database path
learning data path
Tech Stack
- Python 3.8+
- SQLite data storage
- Click (CLI framework)
- Rich (terminal styling)
- SM-2 spaced repetition algorithm
Data Models
Learning Goals Table (goals)
{
id: int
title: str # Goal name
description: str # Description
parent_id: int # Parent goal ID
priority: str # Priority: low, medium, high
status: str # Status: active, completed, paused
progress: float # Progress 0-100
deadline: str # Deadline
estimated_hours: int # Estimated study hours
completed_hours: int # Completed hours
created_at: str
updated_at: str
}
Learning Plans Table (plans)
{
id: int
goal_id: int # Related goal
title: str # Task title
description: str # Description
scheduled_date: str # Planned date
estimated_minutes: int # Estimated duration (minutes)
status: str # Status: pending, completed, postponed
completed_at: str # Completion time
created_at: str
}
Review Cards Table (cards)
{
id: int
goal_id: int # Related goal
front: str # Card front (question)
back: str # Card back (answer)
tags: str # Tags
ease_factor: float # Difficulty factor
interval: int # Interval days
repetitions: int # Repetition count
next_review: str # Next review time
last_review: str # Last review time
created_at: str
}
Review Records Table (reviews)
{
id: int
card_id: int # Card ID
quality: int # Rating 0-5
reviewed_at: str # Review time
time_spent: int # Time spent (seconds)
}
Learning Resources Table (resources)
{
id: int
title: str # Resource name
url: str # Link
resource_type: str # Type: video, article, book, documentation
tags: str # Tags
goal_id: int # Related goal
notes: str # Notes
created_at: str
}
Learning Sessions Table (sessions)
{
id: int
goal_id: int # Related goal
start_time: str # Start time
end_time: str # End time
duration: int # Duration (minutes)
notes: str # Notes
}
SM-2 Algorithm Explanation
Spaced repetition algorithm based on SuperMemo-2:
-
Quality Rating: 0-5 points
- 5: Perfect response
- 4: Correct response, hesitated
- 3: Correct response, difficult
- 2: Incorrect, close to correct
- 1: Incorrect, remembered some
- 0: Completely forgot
-
Ease Factor (EF): Initial 2.5, range 1.3-2.5
- EF' = EF + (0.1 - (5-q) * (0.08 + (5-q) * 0.02))
-
Interval Days:
- First: 1 day
- Second: 6 days
- Nth: Previous interval * EF
