/install learning-digest
Knowledge Digest — Full-Cycle Learning Management / 全流程学习管理系统
Overview / 概述
Knowledge Digest turns every learning session into structured, searchable, long-term knowledge. It handles three scenarios / 三个场景:
- Start a new subject / 开启新学科 — create syllabus, learning log, config entries
- Daily lesson / 每日上课 — review → teach → quiz → prompt to archive
- Post-lesson archive / 课后归档 — update 6 layers: log, syllabus, memory, knowledge base, index, config
First-Run Onboarding / 首次设置引导
Before executing any workflow, check for a config file at:
{workspace}/.knowledge-digest-config.json
If it does not exist, run the onboarding flow / 如不存在则运行引导流程:
Onboarding Flow / 引导问题
Ask the user these questions (one at a time, or all at once if they prefer):
-
Learning root directory / 学习资料根目录 — Where should subject folders be stored?
- Example:
D:\Learning\or~/Documents/Learning/ - This is where syllabus files and learning logs live.
- Example:
-
Knowledge base tool / 知识库工具 — What do you use for long-term notes?
obsidian— wikilinks ([[link]]), vault-basedplain— standard Markdown, folder-based / 纯文件夹notion— notes only (API integration not included)none— skip concept archiving entirely / 跳过概念归档
-
Knowledge base path / 知识库路径 (if tool ≠
none) — Where is your vault/notes root?- Example:
D:\Obsidian\MyVault\or~/Notes/
- Example:
-
Archive depth / 归档深度 — How thorough should post-lesson archiving be?
light— update log + syllabus + memory only / 仅更新记录+大纲+记忆full— light + extract concepts to knowledge base + refresh index / 完整归档含概念入库+索引刷新
-
Preferred language / 内容语言 —
zh(Chinese),en(English),zh-en(bilingual / 中英双语), orauto(follow user's language) -
Knowledge base schema / 知识库规则文件 (if tool =
obsidianorplain) — Do you have a rules file that defines how concepts should be structured, named, and linked?- If yes, provide the path (e.g.,
D:\Notes\WIKI-SCHEMA.md). This file will be read before every concept extraction and its rules take priority over built-in defaults. - If no, the built-in Knowledge Base Rules (see section below) will be used.
- If yes, provide the path (e.g.,
Config File Schema / 配置文件结构
After onboarding, create:
{
"version": "1.0",
"learningRoot": "/path/to/learning/",
"knowledgeBase": {
"tool": "obsidian",
"path": "/path/to/vault/",
"schemaPath": "/path/to/WIKI-SCHEMA.md"
},
"archiveDepth": "full",
"language": "auto",
"subjects": {}
}
The subjects field will be populated as new subjects are added.
Scenario 1: Starting a New Subject / 场景一:开启新学科
Trigger / 触发条件
User says "start learning [subject name]" or "open a new subject: [name]"。 中文触发:"开启[学科名]学习"、"新建学科[学科名]"。
Workflow / 工作流
-
Read config / 读取配置 — Load
.knowledge-digest-config.jsonto getlearningRootand preferences. -
Detect category structure / 检测分类结构 — Scan
{learningRoot}/for existing subdirectories:- If subdirectories exist (e.g.,
大学专业知识/,职业发展/,Academic/,Professional/), they are treated as categories / 分类。Present them to the user and ask which one the new subject belongs to. If none fit, offer to create a new category. - If
{learningRoot}/is flat (no subdirectories), the subject goes directly under{learningRoot}/. - Store the chosen category in the subject's config entry as
category.
- If subdirectories exist (e.g.,
-
Create subject directory / 创建学科目录 — Under
{learningRoot}/{category}/(or{learningRoot}/if no category), create a folder named after the subject. -
Create syllabus file / 创建教学大纲 —
{learningRoot}/{category}/{subject}/syllabus.md- Content: subject overview, learning objectives, phased plan (by day/week), key topics per phase, estimated completion, expected outcomes.
- If the user provides specific goals or a textbook, incorporate them.
- Leave the first phase/day marked as
⏳ Pending / 待学.
-
Create learning log file / 创建学习记录 —
{learningRoot}/{category}/{subject}/learning-log.md- Content: an empty tracking table with columns: Date | Content | Mastery | Issues | Next
- Initial entry: today's date, "Subject initialized", N/A, "None", "Day 1 — start learning"
-
Update config / 更新配置 — Add to
subjects:"subject-name": { "currentDay": 1, "category": "大学专业知识", "syllabusPath": "{learningRoot}/{category}/{subject}/syllabus.md", "logPath": "{learningRoot}/{category}/{subject}/learning-log.md", "status": "active", "startedAt": "YYYY-MM-DD" } -
Update memory / 更新记忆 — If the agent has a memory system (MEMORY.md or equivalent), record the new subject there.
-
Create knowledge base folder / 创建知识库文件夹 (if
archiveDepth=fullandknowledgeBase.tool≠none) — Create an empty subject folder under{knowledgeBase.path}/if it doesn't exist. -
Report / 汇报 (output in configured language,按配置语言输出):
✅ New subject "[Subject Name]" is ready. / 新学科"[学科名]"已开启。
Created / 已创建:
📋 Syllabus: {category}/{subject}/syllabus.md
📝 Learning log: {category}/{subject}/learning-log.md
⚙️ Config updated / 配置已更新
You're all set for Day 1. Say "start learning [subject]" when ready.
Scenario 2: Daily Lesson / 场景二:每日上课
Trigger / 触发条件
User says "start learning [subject]" or "continue [subject]"。 中文触发:"开始[学科名]学习"、"继续[学科名]学习"。
Workflow / 工作流
-
Read config / 读取配置 — Load current progress from
.knowledge-digest-config.json. -
Read syllabus and log / 读取大纲与记录 — Load
syllabus.mdandlearning-log.mdto understand where we are. -
Review previous lesson / 回顾上节课 — Briefly summarize the last session's core content (read from the learning log). Keep it under 3 bullet points.
-
Teach new content / 讲授新知 — Deliver the next topic(s) according to the syllabus. Follow these teaching principles:
- Start with "why this matters" before "how it works" / 先讲"为什么重要"再讲"怎么运作"
- Use concrete examples before abstract definitions / 用具体例子引导抽象定义
- Break complex topics into digestible chunks / 把复杂话题拆成可消化的模块
- Pause for questions between major sections / 大段落之间主动询问
-
Interactive check / 互动测验 (if applicable to the subject) — Ask 2-5 questions to verify understanding. Wait for user's answers, then give feedback and corrections.
-
Session notes / 课堂记录 — Mentally record: what was covered, what the user struggled with, what needs review.
-
End prompt / 课堂结束语 (output in configured language):
📚 Today's lesson on [Subject] (Day [N]) is complete. / 今日课程完成。
Covered / 内容: [brief summary]
Mastery / 掌握: [assessment]
Issues / 问题: [any problems noted]
When you're ready, say "update learning records" and I'll archive everything.
准备好了就说"更新学习记录",我来帮你归档。
Scenario 3: Post-Lesson Archive / 场景三:课后归档
Trigger / 触发条件
User says "update learning records" or "archive today's learning"。 中文触发:"更新学习记录"、"归档今天的学习"。
Workflow / 工作流
This is the most important scenario — it turns a conversation into permanent knowledge. 这是最关键的步骤——把对话变成永久知识。
Step 1: Update Learning Log / 更新学习记录
Append to the learning log (path from config):
## Day [N] — YYYY-MM-DD
**Content / 内容:** [summary of what was covered]
**Mastery / 掌握程度:** [good / okay / needs review]
**Quiz results / 测验成绩:** [scores & wrong answers if applicable]
**Issues / 遇到问题:** [concepts the user struggled with]
**Next / 下一步:** Day [N+1] — [next topic from syllabus]
Step 2: Update Syllabus Progress / 更新大纲进度
In syllabus.md, mark the current phase/day as ✅ Complete / 完成. If a milestone was reached, note it.
Step 3: Update Config / 更新配置
In .knowledge-digest-config.json, update:
"subject-name": {
"currentDay": N+1,
...
}
Step 4: Update Memory / 更新记忆
If the agent has a memory system, update it with the subject's new progress.
Step 5: Extract Concepts to Knowledge Base / 提取概念入库
Only if archiveDepth = full and knowledgeBase.tool ≠ none.
Follow the Knowledge Base Rules section below. If a custom schemaPath is configured, read that file first — its rules take priority over built-in defaults.
从当日课程提炼核心概念,严格按照下方「知识库规则」章节执行。如配置了自定义 schema 文件,先读取它——其规则覆盖内置默认。
If no new concepts were introduced: note this in the report / 如无新概念,在汇报中说明。
Step 6: Report / 汇报 (output in configured language)
✅ Learning records updated. / 学习记录已更新。
📚 Subject: [Subject Name]
📍 Progress: Day [N] → Day [N+1]
🆕 New concepts: [list, or "none"]
📁 Archived to: {path}
🧠 Knowledge base: [updated / no changes]
⚙️ Config updated / 配置已更新
Knowledge Base Rules / 知识库规则(内置默认)
⚠️ If a custom
schemaPathis configured, read that file before every concept extraction — its rules take priority over the defaults below. 如配置了自定义 schema 文件,每次提取概念前先读取它——其规则优先于以下默认。
When extracting concepts from a lesson, follow these rules strictly: 从课程提炼概念时,严格遵循以下规则:
1. One Concept = One File / 一个概念一个文件
- Each core concept gets its own
.mdfile. Never bundle multiple concepts into one file. - File name format:
{NN}-{ConceptName}.md(e.g.,01-Derivative.md,01-导数.md) - Use a numbered prefix to maintain sort order within the folder.
- Place files in the appropriate subject folder under
{knowledgeBase.path}/.
2. File Format / 文件格式
Every concept file must include:
---
aliases:
- ConceptName
- 别名1
- 别名2
---
# ConceptName / 概念名
> One-line summary. 一句话概述。
## Core Content / 核心内容
...
## Related / 关联
- [[path/to/related-concept|Related Concept]] — relationship description
- YAML frontmatter with
aliases— list synonyms and translations for searchability - Output language follows the user's configured
languagesetting - If
language=zh-en, output bilingual (Chinese + English)
3. Naming & Linking / 命名与链接
Obsidian (wikilink) mode:
- Use
[[full/path/to/file|Display Name]]format — full path from vault root, pipe (|) without spaces - Always reference the numbered filename (e.g.,
[[01-Derivative]], not[[Derivative]]) - Cross-discipline links:
[[OtherFolder/SomeFile|Display]]
Plain Markdown mode:
- Use standard relative links:
[Display Name](../folder/file.md)
Bidirectional linking / 双向链接:
- If A links to B, also add a backlink from B to A (create or update B's file)
- Tag cross-discipline links with type hints:
💡 方法借鉴(method reference),💡 思维模型类比(mental model analogy)
4. Duplicate Detection / 去重检查
Before creating any new file, check for existing content:
- Search for files with the same or similar name (including
aliasesin frontmatter) - If an exact match exists → add a wikilink to it, do NOT create a duplicate / 已存在则不新建,直接引用
- If partial overlap → enrich the existing file with new content, do NOT create a duplicate / 部分重叠则补充已有文件
- If contradictory content found → mark
⚠️ 待确认and flag to the user / 发现矛盾则标记待确认
5. Index & Outline Updates / 索引与总纲更新
If the knowledge base has an index file (e.g., 00_概念索引.md) or subject outlines (e.g., XX-XXX总纲.md):
- Add new concepts to the index under the correct subject
- Update the subject outline to include new concept entries with correct wikilink paths
- Verify that outline links point to actual files on disk
- If the knowledge base has a link-checking script, run it after major updates
6. Post-Archive Verification / 归档后验证
After creating or modifying knowledge base files:
- Verify all new wikilinks resolve to existing files
- Check numbering consistency within the subject folder (no gaps or collisions)
- Report any broken links or inconsistencies to the user
Configuration Reference / 配置参考
.knowledge-digest-config.json
| Field | Type | Description |
|---|---|---|
version |
string | Config schema version ("1.0") |
learningRoot |
string | Absolute path to the learning directory / 学习资料根目录 |
knowledgeBase.tool |
string | "obsidian" / "plain" / "notion" / "none" |
knowledgeBase.path |
string | Absolute path to vault/notes root / 知识库路径 |
knowledgeBase.schemaPath |
string | (Optional) Path to custom knowledge base rules file / 自定义规则文件路径 |
archiveDepth |
string | "light" (log + syllabus + memory) or "full" (includes knowledge base + index) |
language |
string | "zh" / "en" / "zh-en" / "auto" |
subjects |
object | Keyed by subject name, each containing currentDay, category, syllabusPath, logPath, status, startedAt |
Directory Structure / 目录结构 (after setup)
{learningRoot}/
├── {Category/分类}/
│ ├── {Subject Name/学科名}/
│ │ ├── syllabus.md
│ │ └── learning-log.md
│ └── {Another Subject}/
│ ├── syllabus.md
│ └── learning-log.md
├── {Another Category}/
│ └── ...
└── ...
{knowledgeBase.path}/
├── {Subject Name}/
│ ├── 01-concept.md
│ ├── 02-concept.md
│ └── ...
└── (existing vault structure preserved / 现有结构保留)
Design Principles / 设计原则
- Progressive disclosure / 渐进展开 — Lightweight onboarding, fully optional deep features
- Tool-agnostic / 工具无关 — Works with Obsidian, plain folders, or no knowledge base at all
- Conversation-first / 对话优先 — The lesson happens in chat; the skill handles the paperwork behind the scenes
- Incremental / 增量式 — Each day builds on the last; the log and syllabus grow together
- Non-destructive / 非破坏性 — Never overwrite existing knowledge base content; always check for duplicates first
- Language-respecting / 语言自适应 — Follow the user's configured language for all generated content
Common Edge Cases / 常见边缘情况
| Situation / 情况 | Handling / 处理方式 |
|---|---|
| User forgot which day they're on / 忘记学到哪了 | Read config → currentDay, confirm with user |
| User wants to skip ahead / 想跳过某天 | Update config to the new day, note in log |
| User restarted a subject from scratch / 重启学科 | Archive old log (rename with date suffix), create fresh files |
| Multiple subjects in one session / 同一会话多学科切换 | Process each archive command independently |
Knowledge base tool is none / 未配置知识库 |
Silently skip Steps 5-6 in Scenario 3 |
| Config file is corrupted/missing / 配置文件损坏或缺失 | Re-run onboarding; old learning files are preserved |
| Subject name has special characters / 学科名含特殊字符 | Sanitize for filesystem: replace \x3C>:"/|?* with - |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install learning-digest - After installation, invoke the skill by name or use
/learning-digest - Provide required inputs per the skill's parameter spec and get structured output
What is Knowledge Digest?
A full-cycle learning management system. 全流程学习管理系统。 Covers "start a new subject → daily lessons → post-lesson archiving"。 覆盖"开新课→每日上课→课后归档"的完整闭环。 Trigger / 触... It is an AI Agent Skill for Claude Code / OpenClaw, with 38 downloads so far.
How do I install Knowledge Digest?
Run "/install learning-digest" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Knowledge Digest free?
Yes, Knowledge Digest is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Knowledge Digest support?
Knowledge Digest is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Knowledge Digest?
It is built and maintained by 玉米哥 (@ben61405); the current version is v1.0.0.