Install
openclaw skills install @kaixiad/retaincraftSpaced repetition & FSRS-5 AI learning assistant with active recall, Feynman technique, interleaved practice, causal questioning. 间隔重复FSRS-5 AI学习助手,整合主动回忆、费曼学习法、交错练习、因果追问。 Evidence-based: distributed practice d=0.85, practice testing d=0.74, AI tutoring 0.63-1.3 SD. Multi-platform compatible: OpenClaw, WorkBuddy, Claude Code, Hermes Agent. Features: FSRS-5 spaced repetition (default), SM-2 fallback, forgetting curve, burnout detection, learning contract, weekly report. 169 tests, 24 CLI commands, 14 academic citations, zero external dependencies.
openclaw skills install @kaixiad/retaincraftEvidence-based AI-assisted interactive learning protocol 基于循证学习科学的 AI 辅助互动学习协议
Combines 5 scientifically validated methods + self-assessment + diagnostic test + customized learning path 结合 5 种科学验证方法 + 自我评价 + 摸底考试 + 定制化学习路径
📦 Source Code (源码): https://github.com/kaixiad/RetainCraft
⚠️ Permissions required (所需权限):
This skill requires: file read/write (~/learn/), Python script execution, web search (for test questions & fact-checking), and platform-specific reminder scheduling. All data stored locally. No external API calls.
本技能需要:文件读写(~/learn/)、Python 脚本执行、网络搜索(出题和事实核查)、平台提醒调度。所有数据本地存储,无外部 API 调用。
RetainCraft by kaixiad — 170 unit tests, 14 academic citations, zero dependencies. If you find this useful, a ⭐ on GitHub would mean a lot. 📖 Detailed workflow (详细流程): references/full-workflow.md
⭐ If this skill helps you, please give a Star on GitHub! 如果这个 skill 对你有帮助,欢迎在 GitHub 上给个 Star!
All commands use paths relative to this SKILL.md's directory. 以下所有命令路径相对于本文件所在目录。
Must read before each learning session (每次学习开始前必须读)
Must execute after module test (模块测试结束后必须执行):
python3 scripts/srs.py record-test <topic> <total> <correct>
Not executing = module test invalid, level not updated. 不执行此命令 = 模块测试无效,等级不更新。
Feynman Check - L5 required (费曼检验 - L5 必需):
Scoring Discipline (评分纪律 - 不可违反):
Level-up Restrictions (逐级升级限制):
Ensure learning reminder is active (确保学习提醒已生效):
Manual reminder if not received (未收到提醒可手动执行):
python3 scripts/srs.py reminder
Check reminder status (检查提醒状态):
python3 scripts/srs.py check-reminderSwitch reminder channel (切换提醒渠道 — OpenClaw only):
python3 scripts/srs.py switch-channel
| Method (方法) | Effect Size (效果量) | 执行层 | v1.5.0 目标 | Source (来源) |
|---|---|---|---|---|
| Distributed Practice → 间隔重复 | d=0.85 | 🟢 代码级 | 🟢 | Donoghue & Hattie 2021 |
| Practice Testing → 主动回忆 | d=0.74 | 🟢🟡 混合级 | 🟢🟡 | Donoghue & Hattie 2021 |
| Self-Explanation → 费曼学习法 | d=0.54* | 🔵 AI协议级 | 🔵 | Donoghue & Hattie 2021 |
| Interleaved Practice → 交错练习 | d=0.47 | 🔵 AI协议级 | → 🟢 代码级 | Donoghue & Hattie 2021 |
| Elaborative Interrogation → 因果追问 | d=0.56 | 🔵 AI协议级 | 🔵 | Donoghue & Hattie 2021 |
| AI Tutoring (AI 辅导) | 0.63-1.3 SD | 🟢🟡 混合级 | 🟢🟡 | Kestin et al. 2025 RCT |
Note (注): *d=0.54 corresponds to "Self Explanation" in original paper, mapped to Feynman technique here. *d=0.54 对应原文"自我解释",此处映射为费曼学习法。 Execution Layer (执行层): 🟢 代码强制执行 | 🟢🟡 代码框架+AI内容 | 🔵 AI在会话中执行
Output format (输出格式):
📅 学习时间
- 每周学习天数:周一到周五(5 天)
- 每天学习时间:晚上 8:00 - 9:00(1 小时)
- 休息日:周六、周日(轻量复习)
📚 学习节奏
- 每个模块预计:3-5 天
- 每天新概念:2-3 个
- 每天复习:根据间隔重复算法(SM-2/FSRS-5)到期情况
🎯 目标
- 目标等级:L4 熟练
- 预计总时长:30 小时
- 预计完成日期:2026-06-15
请确认以上计划,或告诉我需要调整的地方。
你可以:
1. 输入"确认"接受计划
2. 输入"修改"调整学习时间
3. 输入"跳过"使用默认设置
Estimated duration formula (预计时长公式):
预计总时长 = 模块数 × 每模块平均Phase数 × 每Phase平均时长
预计完成日期 = 当前日期 + 预计总时长 / (每日学习时长 × 每周学习天数)
Scientific basis (科学依据): Gollwitzer (1999) - Implementation intentions. Specific plans increase execution rate by d=0.65.
Reminder creation (提醒创建): After user confirms the learning contract, AI MUST create a timed reminder:
python3 scripts/srs.py setup-reminder (auto-detects channel + delivery target)Reminder check at session start (会话开始时提醒检查): Every time a learning session starts, check if the user has a timed reminder.
| Level (等级) | Standard (标准) | Behavior (行为特征) |
|---|---|---|
| 🔴 L1 Entry (入门) | No test history or first <20% | Start from zero (从零开始) |
| 🟠 L2 Beginner (初学) | First >=20% | Has concepts but not systematic (有概念但不系统) |
| 🟡 L3 Intermediate (进阶) | 2 consecutive >=40% | Can apply independently (能独立应用) |
| 🟢 L4 Proficient (熟练) | 2 consecutive >=70% | Can solve complex problems (能解决复杂问题) |
| 🔵 L5 Mastery (精通) | 2 consecutive >=90% + Feynman check | Can teach others (能教会别人) |
| Item (项目) | Review (复习) | Module Test (模块测试) |
|---|---|---|
| Purpose (目的) | Strengthen memory (强化记忆) | Phase assessment (阶段性评估) |
| Impact (影响) | No level change (不影响等级) | Determines level (决定等级升降) |
| Command (命令) | srs.py rate | srs.py record-test |
Decision rule (判定规则):
record-test)record-test)rate)python3 scripts/srs.py duepython3 scripts/srs.py dueTriggers (触发条件 - 任一):
Response (响应): Lower difficulty, suggest break, switch to easy mode 响应:降低难度、建议休息、切换轻松模式
Iron rule: AI must search before answering any knowledge question 铁律:AI 助手回答任何知识性问题前,必须先搜索验证
| Scenario (场景) | Must Search? (必须搜索?) |
|---|---|
| User asks "what is XX" (用户问"XX 是什么") | ✅ |
| Correct answer for test (出测试题的正确答案) | ✅ |
| Feynman check judgment (费曼检验时判断对错) | ✅ |
| Planning learning path (规划学习路径) | ✅ |
| Basic common knowledge (基础常识) | ❌ |
| Flow conversation (流程性对话) | ❌ |
Rule (规则): Factual statements must include source links 规则:事实性陈述必须附来源链接
□ Current phase core output completed? (当前 Phase 核心产出已完成?)
□ If module test: record-test called? (如果模块测试:已调用 record-test?)
□ Key progress written to session notes? (关键进展已写入会话笔记?)
python3 scripts/srs.py check-session [topic] # Check unrecorded tests
python3 scripts/srs.py check-burnout <topic> # Analyze burnout risk
| System (系统) | Stores (存什么) | Location (位置) |
|---|---|---|
| Platform notes (平台笔记) | Progress summary, weak points (进度摘要、薄弱点) | Use your platform's native notes/memory |
| ~/learn/ | SRS data, concept mastery (间隔重复数据、概念掌握度) | ~/learn/topics/{topic}/concepts.json |
concepts.json > session notes (concepts.json > 笔记)
The critical data is in concepts.json. Session notes are supplementary — use any storage mechanism your platform provides. 关键数据在 concepts.json。会话笔记是辅助性的——用你平台自带的任何存储方式。
AI receives heartbeat → python3 scripts/srs.py due → Has due content → Notify user
AI 助手收到心跳 → python3 scripts/srs.py due → 有到期内容 → 通知用户
Delivery (投递): When sending reminders, use your platform's native messaging to the user's active channel. Do not rely on implicit target resolution. 发送提醒时:使用你平台的原生消息机制发送到用户的活跃渠道。不要依赖隐式目标解析。
~/learn/config.json
{
"algorithm": "fsrs", // fsrs (default) / sm2
"fsrs_weights": null, // Personalized FSRS weights (optimize-params generates)
"learning_depth": "standard", // shallow / standard / deep
"learner_type": "practical", // visual / practical / theoretical
"daily_review_limit": 20,
"session_duration": 60,
"burnout_threshold": 3,
"mastery_threshold": 0.8,
"level_thresholds": { "L2": 0.2, "L3": 0.4, "L4": 0.7, "L5": 0.9 },
"learning_contract": {}, // Saved by sign-contract (time, days, duration, target_level)
"reminder_channels": [], // Managed by setup-reminder
"active_channel": null // Current reminder channel
}
FSRS-5 支持个性化参数优化,让算法适应每个用户的记忆特征。
python3 srs.py optimize-params
前置条件:
优化过程:
fsrs_weights 字段何时触发:
optimize-paramsCore: init, add, review, rate, due, status
Analytics: today, streak, analyze, weekly-report, reminder
Tests: record-test, test-history, record-simulation, simulation-history
Config: config, sign-contract, setup-reminder, optimize-params
Diagnostics: profile, check-session, check-burnout
Full CLI reference with examples: README.md
| Priority (优先级) | Description (描述) | Example (示例) |
|---|---|---|
| 1-Urgent (紧急) | Deadline approaching (截止日期临近) | Exam prep (考试准备) |
| 2-Important (重要) | Core skills (核心技能) | Programming (编程语言) |
| 3-Regular (常规) | Daily learning (日常学习) | New tech (新技术) |
| 4-Extended (扩展) | Broaden horizons (拓宽视野) | Related fields (相关领域) |
| 5-Reserve (储备) | Future use (未来可能用到) | Learning list (待学习清单) |
_is_openclaw_available() platform detection + automatic fallbackFull changelog: CHANGELOG.md on GitHub