/install adaptive-learning
Adaptive Learning Skill
Create self-contained, browser-based adaptive learning apps from any course material.
Architecture
- FSRS (ts-fsrs): Per-card spaced repetition scheduling (Stability, Difficulty, Retrievability)
- BKT: Per-topic Bayesian Knowledge Tracing for mastery estimation
- Two modes: Breadth-first (cover all topics, weakest first) / Depth-first (drill one topic deep)
- Pure frontend: HTML + CSS + JS, works offline via
file://, no server needed
Workflow
1. Gather Course Material
From a URL:
1. Fetch the course page, extract topic list and resource links
2. Download HW/Discussion/Lecture PDFs to ~/COURSE_NAME/
From a local folder:
1. List files, identify PDFs and documents
2. Read/parse to understand topics and content
2. Generate Question Bank
Create questions.json with this schema:
[{
"id": "unique-id",
"topic": "Topic Name",
"topicIndex": 0,
"difficulty": 1,
"question": "Supports $LaTeX$ via KaTeX",
"answer": "Supports $LaTeX$ and \\
for line breaks",
"tags": ["tag1", "tag2"]
}]
Guidelines:
- 5-8 questions per topic minimum, across 3 difficulty levels
- Difficulty 1 (基础): Definitions, "what is", simple complexity questions
- Difficulty 2 (中等): Apply algorithms, analyze examples, describe procedures
- Difficulty 3 (高级): Proofs, novel problem design, optimization, "why" questions
- Use LaTeX (
$...$inline,$$...$$block) for math - Use
\\for line breaks in question/answer text topicIndexcontrols topic ordering (0-based)
3. Build the App
Run the bundler script:
bash SKILL_DIR/scripts/generate-course.sh \x3Ccourse-id> \x3Cquestions.json> \x3Coutput-dir>
Then register the course in engine.js COURSE_REGISTRY:
{ id: 'course-id', name: 'Course Name', desc: 'Description', school: 'School', term: 'Term' }
4. Verify
Open \x3Coutput-dir>/index.html in a browser. Verify:
- Course appears in selector
- Cards render with KaTeX math
- Flip/rating/FSRS scheduling works
- Mode toggle (breadth/depth) works
Framework Files (assets/framework/)
| File | Purpose |
|---|---|
index.html |
Main page with course selector + learning UI |
style.css |
Dark theme, responsive styles |
engine.js |
FSRS + BKT engine, question selection, state management |
ts-fsrs.umd.js |
FSRS algorithm library (UMD build of ts-fsrs) |
Key Features
- FSRS scheduling: Cards show Stability/Difficulty values; review intervals adapt to performance
- BKT mastery: Per-topic mastery percentage in progress drawer
- Configurable: Target retention (70-97%), daily new card limit
- localStorage: All progress persists across sessions
- Keyboard shortcuts: Space=flip, 1=Good, 2=Hard, 3=Again, f=follow-up, n=next-topic
- KaTeX: Full LaTeX math rendering
- Drag & drop: Import any questions.json directly in the UI
- Multi-course: One framework, multiple course data packs
Adding to Existing Installation
To add a new course to an existing adaptive-learning setup at ~/adaptive-learning/:
- Save
questions.jsonto~/adaptive-learning/courses/\x3Cid>/ - Generate preload:
bash scripts/generate-course.sh \x3Cid> questions.json ~/adaptive-learning/framework/ - Add to
COURSE_REGISTRYinengine.js
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install adaptive-learning - 安装完成后,直接呼叫该 Skill 的名称或使用
/adaptive-learning触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Adaptive Learning 是什么?
Create adaptive learning flashcard apps from course materials (URLs, PDFs, or folders). Uses FSRS (Free Spaced Repetition Scheduler) and Bayesian Knowledge T... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 178 次。
如何安装 Adaptive Learning?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install adaptive-learning」即可一键安装,无需额外配置。
Adaptive Learning 是免费的吗?
是的,Adaptive Learning 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Adaptive Learning 支持哪些平台?
Adaptive Learning 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Adaptive Learning?
由 Tree(@weishuz)开发并维护,当前版本 v1.0.0。